1.はじめに
今回ご紹介するのは、たった1枚の顔画像で、動画の顔を入れ替える事が出来るfacefusionという技術です。同種の技術であるSberSwapを2022.1にご紹介しましたが、これはその進化版です。
2.コード
この[リンク]をクリックするとcolabが動かせます。なお、このコードは、@smokiazo氏によって作成されたものです。
まず、セットアップを行います。
1 2 |
!git clone https://github.com/facefusion/facefusion !pip install onnxruntime-gpu && pip install -r /content/facefusion/requirements.txt |
次に、facefusionを起動します。下記のようなログが表示されたら赤枠をクリックします。すると、別のタブに操作画面が表示されます。
1 2 3 4 |
%cd "/content/facefusion" !ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa <<<y >/dev/null 2>&1 !ssh-keyscan -t rsa remote.moe >> ~/.ssh/known_hosts !python run.py --execution-providers cuda & ssh -R 80:localhost:7860 remote.moe |
下記が操作画面です。SOURCEにソース画像(この顔にしたい画像)、TARGETにターゲット画像あるいは動画をドラッグ&ドロップします。しばらくすると、REFERENCE FACEにターゲットの対象となる顔、PREVIEWに画像あるいは最初のフレームの顔を置き換えた画像が表示されます。
STARTボタンをクリックします。しばらくすると、赤枠点線内に顔を置き換えた画像あるいは動画が表示されます。処理時間は5秒の動画で1分くらい(GPUがT4の場合)です。
GUIで簡単に操作出来るので便利です。ぜひ一度お試しを。
(オリジナルgithub)https://github.com/facefusion/facefusion
最近roopという仕組みが出てきましたが、
さらにそれの上位互換な感じがしますねこれは。
roopは横顔とかもいけてトレーニング不要の仕組みでしたが、
これはそれよりも顔が崩れる頻度がかなりへってます。
roopが出たのも6月くらい?ってこと考えると、やっぱし進化速度恐ろしいスピードですなぁ~。。。
また新しい物が出てきたらぜひご紹介いただきたいです!