顔入替ソフトのインストール方法、使用例、How to、TIPS、FAQ等です

DFLとは

AutoEncoderで顔を再生成できるようにAとBそれぞれの特徴量を学習し、decoderを入れ替えることにより、AとBの顔を交換する手法。

作成にどれくらいかかる?

パラメータやパソコンスペックにより異なるがはじめは2日から1週間程度学習させる必要がある。
2回目からはmodelの再利用により学習時間を大幅に短縮できる。但しmodelの再利用については賛否両論あり。
lossについて
A→A'、B→B'の学習具合の目安にできる。データセットやtrainer、パラメータに左右されるので具体的な数値目標を設けるのは間違い。学習具合はプレビューで判断する。

0.2だとアップには耐えられないかも
0.1台でもsharpnessとsuperresolutionをONにすれば十分いける

src枚数が増えるほどloss値は下がりにくい

障害物(手や髪や笛)があるdstの場合は、loss値は落ちにくいが(0.2とか)画質的には実用的になっている

注意事項

権利者に許可を得ていないコンテンツの二次利用は著作権法に違反。
また、所謂フェイクポルノを不特定多数が見れる場所に公開すれば名誉毀損(侮辱罪)に該当。
有名人の顔を使用して経済的利益を得ればパブリシティ権の侵害になる。

DFLのマニュアルの機械翻訳から

理解:このプログラムは、すべての場合において人の完全な交代を保証するものではありません!
それはソースデータの品質、それらの光源の互換性などに依存します。
また、最近登場したテクノロジー(2018年2月)は、額や髪のない人だけに置き換えられるため、理想からはほど遠いです。
多くの時間と労力を費やすことができますが、最終的には何も得られません!
成功した偽物を最初の試みにできる可能性は低いですか。
さまざまな人とFakeを作成しようと多くの試みを行った場合にのみ、すべてのニュアンスを理解できます。
DeepFaceLabは、1人の純粋な熱意で作成されました。したがって、エラーを見つけた場合は、理解してこれを扱ってください。

上手くいかないsrc顔画像

前髪が眉毛にかかっており、顔のパーツである眉毛がよく見えないアイドル、女優
顔認識の仕組み上、上手くいきません。どうしてもやりたい場合は手動作業が必須です
膨大で長時間の手作業が嫌な人には不向きです。諦めましょう

インストール方法

ダウンロードした
DeepFaceLab_NVIDIA_build_date.exe をダブルクリックし自己解凍形式)、D:\(Dドライブなどルート)などに解凍する。

動画制作のおおまかな流れ

  1. 素材を準備する
  2. 素材動画を全フレーム画像で書き出し
  3. 顔部分のみを抽出
  4. 誤検出された画像を削除
  5. src顔画像の厳選
  6. 学習させる(train)
  7. 顔を移植した画像を書き出し(convert)
  8. 書き出した画像を動画にする

結果に満足できない場合は、さまざまなコンバートオプションを試すか、ボケ具合を改善するためにトレーニングを続けるか、別のモデルを試すか、別のSrcを試すことができます

DFLでの最初の動画作成

  • 最初から入っているサンプルで一通り作成だけしてみる
  • 最初から好みのsrcでやらない。前髪ありなんかはもってのほか
  • data_src.mp4は、インタビュー動画、割と高解像度、照明条件良好、色々な画角あり、または正面に近いsrcがおすすめ
  • 顔が小さかったり、角度が厳しかったりしたら顔認識、顔抽出できません
  • 最初はDFとかH64とか軽いモデルにしてみる。dstの顔のどアップ、srcの前髪あり、dstの笛などは避ける
  • Trainが始まらないとかの場合は、バッチ数を1にしてみる
  • data_dst.mp4はできるだけ正面顔、主観動画、短いシーンを動画編集ソフトで切り出す
  • data_dst.mp4は動画編集ソフトで、540p以下に縮小
  • alignedの下の顔を確認。顔では無い物は削除。別人は削除
  • aligned_debugの下の顔画像のランドマークを確認。必要なものは手動で再抽出
  • srcとdstの選定、編集を頑張りましょう

フォルダ構成


DeepFaceLab_NVIDIA\workspace
作業用データーを置くフォルダです。

DeepFaceLab_NVIDIA\workspace\data_src
src(移植する顔のパーツ側)データーが置かれるフォルダです。
data_src.mp4から2) extrac images from video data_src.batで静止画にします。1〜3fps推奨

DeepFaceLab_NVIDIA\workspac\data_src\aligned
srcから、4) data_src extract faces S3FD best GPU.batで顔部分の画像だけを取り出したデーターが置かれます。

DeepFaceLab_NVIDIA\workspace\data_dst
dst(移植される体、顔の輪郭、髪型側)データーが置かれるフォルダです。
data_dst.mp4から3.2) extract images from video data_dst FULL FPS.batで静止画にします。

DeepFaceLab_NVIDIA\workspace\data_dst\aligned
dstから、5) data_dst extract faces S3FD best GPU.batで顔部分の画像だけを取り出したデーターが置かれます。

DeepFaceLab_NVIDIA\workspace\data_dst\aligned_debug
dstから、5) data_dst extract faces S3FD best GPU.batで全身画像の顔部分の認識がわかります。
顔認識に失敗した画像を削除して、
5) data_dst extract faces MANUAL RE-EXTRACT DELETED RESULTS DEBUG.batで手動で顔認識させます。

DeepFaceLab_NVIDIA\workspace\data_dst\merged
convertすると作成されます。作成されるresult.mp4の1コマ1コマの静止画データーです。
顔入れ替えで、類似度はここで決まっています。

DeepFaceLab_NVIDIA\_internal
動作に必要なプログラム等が入っています。
pythonはインタープリタ型でソースのテキストファイルが入っているので、
好みによりバッチ入力の初期値等カスタマイズもできます。

バッチファイル(一部)


2) extract images from video data_src.bat
data_src.mp4を静止画にします。1〜3fps程度推奨。尺の短い動画は全フレームでも書き出し

3.2) extract images from video data_dst FULL FPS.bat
data_dst.mp4を静止画にします。顔入れ替え動画作成に必要なので、自動的に全フレームで書き出し

4) data_src extract faces S3FD best GPU.bat
静止画にしたsrcから顔部分だけを抽出。顔学習に必要です。

5) data_dst extract faces S3FD best GPU.bat
静止画にしたdstから顔部分だけを抽出。顔入れ替えに必要です。

6) train H128.bat
H128モデルで顔学習します

7) convert H128.bat
顔学習後、modelからdstの静止画を作成します

8) converted to mp4.bat
converted後、顔入れ替えされたmp4動画を作成します。

4.2.2) data_src sort by similar histogram.bat
srcの顔を類似度順にソートします。顔認識に失敗した画像の削除、ボケた画像の削除、違う人物の顔の削除等に役立ちます。

4.2.1) data_src sort by blur.bat
srcのボケた顔が後、後ろの方に来ます。ボケた画像の削除等に役立ちます。
ボケ具合は、動きが激しくて二重になっている画像等は検出しないので、
エクスプローラーで特大または大アイコンのプレビュー等で、手動で削除の必要があります。

4.2.5) data_src sort by face pitch.bat
srcの顔の上向き度、下向き度順にソートします。dst動画に極端な上向き、下向き顔が無い場合は、
極端な上向き、下向き顔を別フォルダに退避でもして、顔学習枚数を減らしておくと、学習が高速になります。

4.2.5) data_src sort by face yaw.bat
srcの顔の横向き度順にソートします。dst動画に極端な横向き顔が無い場合は、
極端な横向き顔を別フォルダに退避でもして、顔学習枚数を減らしておくと、学習が高速になります。

4.2.other) data_src sort by black.bat
顔がカメラから見切れて、黒いピクセルが多い画像がsortされてエクスプローラーで下に来ます。
顔のパーツが全て入っていない画像は、一般的には顔学習に不要なので、削除または別フォルダに退避します。

4.2.other) data_src sort by brightness.bat
顔を明るさの順にsortします。あまりに明るい画像、暗い画像は顔学習に有害かもしれないので(未確認)
削除または別フォルダに退避した方がいいかもしれません。
顔認識はモノクログレースケールにして、モノクロ二値化して、エッジ、輪郭を抽出しているだけだと思うので、
顔画像のパーツのエッジ、輪郭が鮮明であればかまいません

5.3.other) data_dst sort by final.bat
srcの顔学習枚数は、公式では2000〜5000枚程度が推奨されているので、
それ以上多くても学習時間がかかるだけで、あまり顔枚数が多くても顔学習の効果は薄いとされているので、
各種sortの後で、srcの学習顔画像枚数を減らすのに使用します。
顔学習は枚数より質。ボケた画像、顔がカメラから見切れた画像等は削除または退避します。


DFL 2.0(01_23_2020版)でも、ほとんどの各種sortツールはそのまま使用可能です。前版の物をコピーして使用可能
DFL 2.0 注意事項


DFLで使用しないであろうバッチファイル


バッチファイル詳細

重要事項


srcとdstの顔の輪郭が似通っている事
srcとdstの相性
srcはdstの髪型になるが、違和感の無いこと
srcはdstの体型になるが、違和感の無いこと
顔の交換が目的なら特徴ある顔を選ぶこと
顔の復元が目的だと、パーツの位置、輪郭、おでこの広さ、髪型が同じでないと、仕組み上復元できません
輪郭、髪型、表情が重要
srcはハッキリした顔、彫りの深い顔とかだと似せやすいです。逆にsrcがアッサリした顔、淡白な顔だと顔に特徴がなく、似せにくいです。

srcの顔の画角、カメラアングルがdstに対して十分な事
srcの表情がdstに対して十分な事
srcのまばたき、目の開閉具合、視線の向き
srcの口の開閉具合
srcの顔の横向き具合、上向き、下向き具合

srcが高解像度画像であること

srcはほぼ同じ画像は必要ないから間引いて問題ない

前髪があるsrcは原則不可
目のあたりまで前髪があるとtrainしても無理。convertした時に両津勘吉状態になる可能性大。眉間のあたりに髪が掛かってなく、片眉だけでも見えてるのが好ましい。

dstがあまり高解像度であると、顔がボケる原因になる
dstは動画編集ソフトなどで縮小することを検討

最初はカメラ目線も多い、正面顔が作成が楽
最初は顔の前に障害物(前髪など)の無い動画が作成が楽

最初はdstが尺の短い動画が作成が楽
Convertオプションのお試しは、尺の短い動画がおすすめ

deepfake動画を制作する上で

modelの使いまわしについて

srcが変わらない時は、モデルは使い回せます。
srcを変更しても、新規にtrainするより、変更前のsrcから継続trainした方が速いです
model配下のファイル
全て使い回せます。

srcは、それぞれ女優さんの名前でものフォルダを作成して保存しておくといいです。
dstは、それぞれ女優さんの名前でものフォルダを作成して保存しておくといいです。
modelは、それぞれ女優さんの名前でものフォルダを作成して保存しておくといいです。

必要なPCのスペック



用語(一部)

src:source 源の略
dst:destination 目的地の略
extract :抽出
blur:ぼかす
similar:似た
pitch:傾斜度; 勾配、顔の上下向き具合
ヨーイング (yawing) とは、乗り物など前後・左右・上下が決まった物体が、上下を軸として(つまり、水平面内で)回転すること。ヨー (yaw) とも
なお、左右を軸にした回転がピッチング (pitching) またはピッチ (pitch)
brightness:明るさ、輝き、鮮明さ
hue:色合い、色調、色、特色、傾向
landmark:目印(となるもの)
SAE:Style Auto Encoderの略
FPS:Frame Per Second。フレームレート。1秒あたりのコマ数

顔認識、顔抽出とは?

DeepFaceLabでの顔の範囲は、aligned_debugの顔画像のグレーの範囲
またはMask Editorでの顔画像のグレーの範囲
DeepFaceLabでの顔のパーツの輪郭は、aligned_debugの顔画像の緑のもの
顔のパーツは、眉、目、鼻、口、髪のかかっていない頬から顎

顔のパーツ扱いでは無い物
髪、舌、耳、指、手など。上記顔のパーツ以外のもの

\_internal\DeepFaceLab\docの下にある、landmarks.jpgとlandmarks_98.jpgがDeepFaceLabその他顔認識での顔の定義です

参考URL(雰囲気だけ把握すればいいかと)

DFL変更点(changelog_en.txtのGoogle翻訳)

DFLその他顔認識での顔の定義


参考リンク

Google検索で自分では検索できなかった場合など。DeepFaceLab、DFLの質問厳禁。それ以外

外部リンク




寄付(任意)について

Amazon.jpギフト券での寄付は受け付けています
  1. AmazonでE-Mailタイプのギフト券を購入(金額は任意)
  2. 自分のアカウントに登録はしない
  3. 下記メールアドレスにAmazonギフト券番号を記載し、通知
  4. tomoe.magica@gmail.com


Seesaa Wiki関連リンク

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます