最近でこそDeepFake アプリがいろいろ登場していますが、今から4年前の 2020年 は FaceSwap と DeepFakeLab の2種類しか存在しなかったように思います。
FaceSwap はインストーラーが用意されているので非常に簡単に始められるのが特徴で、2024年3月現在もバージョンアップが続けられています。
今回は、DeepFakeでは老舗といえる FaceSwap について、ダウンロードとインストール方法、使い方についてスクリーンショット付きで解説します。
尚、「【生成AI入門】ディープフェイクの作り方と有名アプリ一覧(パソコン編)」の記事では、他の DeepFake アプリについても紹介していますので、興味のある方は併せてご覧ください。
FaceSwap とは
FaceSwapは、ディープフェイク技術を使用して、動画や画像中の顔を入れ替えることができるオープンソースのソフトウェアです。
主な特徴として次の内容があります。
- 無料:無料で使用できます。
- オープンソース:誰でもソースコードを閲覧、編集、配布できます。
- 高品質:高品質なディープフェイク動画を作成できます。
- 多機能:様々な機能が搭載されています。
- 活発なコミュニティ:活発なコミュニティがあり、情報交換やサポートを受けることができます。
- トレーニングデータ:入れ替える顔を学習させるため、 500 ~ 10,000枚の顔画像が必要となります。
- 学習時間:PCの性能やGPUの有無、動画にもよりますが、数時間~数週間のトレーニング時間が必要です。
公式ドキュメントページ | URL |
---|---|
インストール(Installation) | https://forum.faceswap.dev/viewtopic.php?f=4&t=20 |
顔画像抽出(Extraction) | https://forum.faceswap.dev/viewtopic.php?f=25&t=27 |
トレーニング(Training) | https://forum.faceswap.dev/viewtopic.php?f=6&t=146 |
コンバート(Convert) | https://forum.faceswap.dev/viewtopic.php?f=24&t=1083 |
FaceSwap のダウンロード方法
Windowsユーザー向けのインストーラーが用意されており、これを使えば難しい環境構築は不要です。
まず、下記のページに移動してください。
https://github.com/deepfakes/faceswap/releases
赤枠でか囲ったリンクをクリックすると、最新のインストーラー(faceswap_setup_x64.exe)がダウンロードできます。
FaceSwapのインストール方法
ダウンロードした faceswap_setup_x64.exe をダブルクリックすると次の画面が表示されるので、「Next」をクリックします。
次に、FaceSwapをどこで計算させるかを聞いてきます。NVIDIAのGPUを搭載している場合はこのまま「Install」をクリックします。もしNVIDIA以外のGPUを搭載している場合は Setup for DirectMLを選択してください。
インストールが完了すると次の画面になりますので「Close」をクリックして閉じましょう。デスクトップにはFaceSwapのアイコンが作られているので、次回からはこれを使って起動します。
ちなみに、FaceSwapはユーザーフォルダの中にインストールされます。 xxxxx はご自身のWindowsユーザー名と置き換えてください。
FaceSwap の使い方
使い方については FaceSwapのフォーラムがあるので、ここが参考になります。英語表記なのでブラウザ機能を使って日本語に変換してご利用ください。本章では簡単な使い方を説明します。
https://forum.faceswap.dev/viewforum.php?f=26
前提条件
今回は Input A で指定した動画を、Input B の動画の顔で入れ替える操作になります。
以降の説明で登場するフォルダの概要は次の通りです。
手順1.顔画像の抽出
動画から顔画像を抽出します。Extractタブを選択し、①顔を抽出したい動画ファイルと②抽出した顔の保存先フォルダを指定したら、Extractボタン(③顔の抽出開始)をクリックします。
顔の抽出を開始すると顔画像のサムネイルが表示され、動画から全ての顔画像の抽出が終わると movie フォルダに
<元のファイル名>_alignments.fsa というファイルが生成され、 face_images フォルダに抽出した顔画像が保存されます。
同じように、今度は置き換え先の顔画像を抽出します。まず置き換え先が含まれる動画を①に、抽出した顔画像の出力先を②に指定し、Extractボタン(③の顔抽出開始)をクリックします。
動画から全ての顔画像の抽出が終わると movie フォルダに <元のファイル名>_alignments.fsa というファイルが生成され、 target_images フォルダに抽出した顔画像が保存されます。
抽出された画像の中には、誤って顔以外のものが顔として認識されたり、ブレが発生しているものが含まれる場合があります。
このような低品質な画像がトレーニングに含まれると、モデルの性能が著しく劣化します。
特に誤認識された顔以外の画像や、ブレた画像については、この段階でフォルダから削除してください。
手順2.トレーニング(学習)
次はトレーニング(学習)です。Trainタブを選択し、置き換え元の顔画像が置かれたフォルダ(最初に抽出した顔画像)を①に、置き換え先の顔画像がおかれたフォルダ(2回目に抽出した顔画像)を②に指定します。
最後にモデルファイルの出力先フォルダを③に指定しましょう。
次は、タイムラプス画像を指定を行います。
これは、学習途中の状態をスナップショットとして定期的に保存してくれる機能です。必須ではありませんが、指定しておくと、どこまで学習が進んだかが一目瞭然なので便利です。
まず、上記の Input A で指定したフォルダを④に、Input Bで指定したフォルダを⑤に指定して、Timelapse画像の出力先を⑥に指定します。
最後に、Trainボタン(⑦のトレーニングの開始)をクリックします。
トレーニングが開始されると次の画面が表示されます。トレーニングはかなりの時間が必要となります。GPUの有無や性能によって数倍~数十倍ほど掛かる時間が違いますが、数分程度の動画でも数時間~十数時間は覚悟しておいてください。
トレーニングの進み具合は画面から確認できます。次の画面のように置き換えの顔がはっきりしてきます。
トレーニングは自動で終了しないので、自分が良いと思ったタイミングでストップボタンをクリックしてください。
トレーニングの進み具合はグラフによっても確認できます。これはトレーニング時間と誤差をグラフにしたもので、ゆるやかな右肩下がりのカーブになっていますが、ある時点は今度は右肩上がりになります。
右肩上がりになる直前(カーブが下がりきった時点)にトレーニングを停止させるのが理想です。
尚、モデルは自動で定期的にスナップショットが作成されます。
グラフが右肩上がりになったことに後から気づいた場合は、スナップショットの中から最適なモデル(右肩上がりになる直前)を選択して、それを動画作成時のモデルとして指定しましょう。
Timelapseの設定をしているのであれば、その出力先フォルダに定期的の保存されていますので、これを確認すると視覚的に進み具合がわかります。
手順3.コンバート(変換&動画作成)
Convertタブを選択し、顔を入れ替えたい動画ファイルを①に、完成した動画ファイルの出力先フォルダを②に、先ほどトレーニングしたモデルのフォルダを③に指定します。
初期状態では、 Writer に Opencv が選択されており、Output Dir には顔が入れ替わった画像が出力されます。
動画として出力したい場合は Ffmpeg を選択しておきましょう。
以上の設定が終わったら、④コンバートボタンをクリックして、動画が作成し終わるのを待ちましょう。
アップデート方法
Helpをクリックするとメニューが表示されるので、ここから Update Faceswap...をクリックすると、最新にアップデートされます。
まとめ
DeepFakeでは老舗といえる FaceSwap について、ダウンロード方法、インストール方法、使い方について解説しました。
FaceSwap はインストーラーが用意されているため、事前の環境構築が必要なく簡単に始められます。また、2024年3月時点でも更新が行われており、マニュアルの充実度や活発なコニュニティーの存在など、他のFaceSwapには無い強みがあります。
その反面、顔画像を1人当たり500枚~1000枚程用意しなければならないことや、GPUを利用しても数分の動画でさえ数時間~十数時間のトレーニングが必要になるなど、気軽に顔を入れ替えるには向いていません。
気軽に試したいのであれば、顔画像が1枚で済む Rope、roop-unleashed、FaceFusion を、本格的に行いたい場合は FaceSwap という具合に使い分けが必要です。
コメント