参考文献
-
[SFW] [GUIDE] - DeepFaceLab 2.0 EXPLAINED AND TUTORIALS (recommended)
- iperov/DeepFaceLab からリンクがある英語版ガイドです
-
【最新版】DeebFaceLab 2.0を使ったDeepfakeの作り方
- パラメータの説明など詳しいです、どういう項目があるのかだけでも読んでおいた方が良さそうです
-
顔入替ソフト使用例
- チューニングの Tips などがあります
DFL-Colab
iperov/DeepFaceLab の Releases 中にリンクがあった、DeepFaceLab を Google Colab で動かせる chervonij/DFL-Colab を試します。chervonij/DFL-Colab の Works with latest DFL version から Google Colab を開いて実行していきます。(Works with latest DFL version のソースはこちら)
グラボが無いけど学習したい時や、あっても Google Colab より遅い時、とりあえずどんなもんか試したいだけなどの場合に有用そうです。
1. データの準備
DFL-Colab 用の入力動画 2 つ(顔入れ替え元・顔入れ替え先)を zip で固めて、Google Drive に置いておきます。アーカイブ名は Google Colab 上のフォームで指定することもできますが、デフォルトで入力されている以下のファイル名・ディレクトリ名で固めておいた方が面倒が無さそうです。
-
workspace.zip
-
workspace/
-
data_src.mp4
(入力動画、顔入れ替え元) -
data_dst.mp4
(入力動画、顔入れ替え先)
-
-
ディレクトリが1個挟まっています。
後述しますが、この Google Drive 上の workspace.zip
は Export to Drive
の時やバックアップの度に上書かれ、前処理後のデータが入る data_src
data_dst
ディレクトリや、学習中モデルが入った model
など全部入りの zip になります。
2. DFL-Colab の実行
2020/09/21 時点の最新版では、以下の章があります。「すべてのセルを実行」などで上から順に実行すれば OK … という構成にはなっていないので注意が必要です。
Prevent random disconnects
Check GPU
Install or update DeepFaceLab
Manage workspace
Extract, sorting and faceset tools
Train model
Merge frames
以下メモです。
2.1. Prevent random disconnects
Google Colab の接続が切れないようにするだけです。ただ実行します。
2.2. Check GPU
GPU を表示するだけです。ただ実行します。
GPU が出てこない時は、Google Colab のランタイム>ランタイムのタイプの変更で GPU を選択します。
2.3. Install or update DeepFaceLab
環境をロードするだけです。ただ実行します。
2.4. Manage workspace
ここは必要な時に、自分で実行する形になります。
この章の Import from Drive
や Export to Drive
が、それぞれ Google Drive のロード・セーブになっています。自分はこの 2 つぐらいしか使いませんでした。最初はそのまま Import from Drive
して workspace.zip
を展開します。
2.5. Extract, sorting and faceset tools
学習の前処理です。実行中のコンソールに、パラメータのユーザ入力を求めるところが出てきます。その際はそのまま Enter することで []
内にあるデフォルト値が勝手に使われますが、たまに []
が無いものが出てくるので適宜入力します。(チューニング等は自分も詳しくありませんので参考文献等を参照ください。)
[0] Enter FPS ( ?:help ) :
0
[png] Output image format ( png/jpg ?:help ) :
png
この章の処理はターゲットがデフォルトで data_src
になっていますが、data_dst
側にも実行します。なので計 2 回実行することになります。
そこそこ時間がかかるので、適宜 Export to Drive
でバックアップ推奨です。
2.6. Train model
この処理もユーザ入力をたくさん求められますが、だいたいデフォルト []
が設定されています。パラメータの入力後、data_src
data_dst
両方の前処理が問題なければ、学習が開始します (前処理が足りないと ValueError('No training data provided.')
などが出ます)。Backup_every_hour
にチェックがついていれば、バックアップタイミングで Google Drive 上の workspace.zip
に上書き保存されます(チェックがなくても 11 時間後にはバックアップされるようですが、不安なのでチェックをつけずに試したことはないです)。ちなみに長い時間実行していると定期的に出力される進捗表示がバッファの最大に達して出力が止まることがありますが、グルグルしてれば Google Colab の実行自体は続いています(学習は行われていて、workspace.zip
のバックアップも問題なく行われる)。
Google Colab の起動時間の制限に達して途中で終わってしまったら、再度 Install or update DeepFaceLab
で環境をインストール → Import from Drive
でバックアップされた workspace.zip
を復元して、Train model
から実行することになります (前回の途中から継続される)。復元後 2 秒間の間に、コンソールのユーザ入力で Enter を押すと、そのタイミングからパラメータを更新して学習を進めることもできます。
Target iteration
のデフォルト 0 では学習は無期限に実行されるため、ある程度 loss が収束してきたと思ったタイミングで、自分で学習を停止する必要があります (workspace/model の *_preview_SAEHD.jpg 出力などを参考にする)。その後、以下のマージ処理で動画を出力します。
2.7. Merge frames
こちらもユーザ入力がいろいろありますが、Merge
→ Get result video
と進めれば result.mp4
を Google Drive に保存できます。
マージ処理は各種パラメータを修正して確認してを繰り返す作業なので、Google Colab 上がキツければ iperov/DeepFaceLab からネイティブクライアントを落として workspace.zip
を展開し、7) merge SAEHD.bat
を実行すると、インタラクティブにパラメータ反映後のフレームが確認できて便利です。