ゆっくりお家でDeepFakeを作ろう! #StayAtHome #COVID19

DeepFaceLabを使った、Deepfakeの作り方

この記事では実際にDeepFaceLabを使って動画を制作する方法を解説していきます。

Deepfake系のソフトはDeepFaceLabの他にFakeappというものがありますが、 DeepFaceLab のほうが高機能ですし、途中で落ちることもなく、train(学習)途中でセーブもされるので、 DeepFaceLab のほうが優秀です。


2020年に新たにDeepFaceLab 2.0がリリースされました。DeepFaceLab 2.0の使い方はこちらの記事をご覧ください。

DeepFaceLabを使うのに必要なもの

vRAMが2GB以上のNVIDIAもしくはAMDのビデオカード推奨となっています。

性能の高いGPUほど、vRAMの大きいGPUほど、高品質な動画を制作することができます。一応、ビデオカードなしでも、できなくはないみたいですが、難しいのではないかなと思います。時間があったらまた試してみます。

DeepFaceLabの種類

DeepFaceLabには環境に合わせて下記の3つの種類が用意されています。

DeepFaceLabCUDA9.2SSE – GTX 1080 TiまでのNVIDIA GTXシリーズのビデオカード用

DeepFaceLabCUDA10.1AVX – NVIDIA製 RTXシリーズのビデオカードとAVX対応のCPU用

DeepFaceLabOpenCLSSE – AMDまたはIntelの 64-bit CPU用

私の環境はGTX 1080 Tiですので、今回「 DeepFaceLabCUDA9.2SSE 」を例に解説していきます。

CUDA9.2のインストール

NVIDIA製のGTXシリーズのビデオカードで、DeepFaceLabを使用する場合、CUDA9.2をインストールする必要があります。

CUDA9.2以外がインストールされている場合はアンインストールして、CUDA9.2をインストールします。

下記のNVIDIAのWebサイトからインストーラーをダウンロードし、インストールします。

https://developer.nvidia.com/cuda-92-download-archive

RTXシリーズの場合はCUDA10.1をインストールします。

DeepFaceLabをダウンロードする

下記のリンク先からDeepFaceLabをダウンロードします。ご自身の環境に合った.exeをダウンロードしてください。

DeepFaceLabCUDA9.2SSE – GTX 1080 TiまでのNVIDIA GTXシリーズのビデオカード用

DeepFaceLabCUDA10.1SSE – NVIDIA RTXシリーズのビデオカード用

DeepFaceLabCUDA10.1AVX – NVIDIA RTXシリーズのビデオカードとAVX対応のCPU用 (Intel 第2世代 Sandy Bridge以降のCPUはAVXに対応していますので、RTXシリーズのGPUをお使いの方は基本的にこちらでよいと思います。)

DeepFaceLabOpenCLSSE – AMDまたはIntelの 64-bit CPU用

DeepFaceLabのダウンロード

「build_06_20_2019」を使用してください
2019年11月現在、「build_10_27_2019」までリリースされていますが、「build_08_19_2019」以降は顔合成の品質が低下しています。具体的には、顔を合成した部分に正方形のエッジが明らかに見えたり、Convertする際にOverlayを使用すると、周りに黒いスジが入ってしまします。現時点では「build_06_20_2019」が一番高品質な動画を制作することができます。

ダウンロードしたらダブルクリックして解凍します。最初は「実行」ボタンが表示されないので、詳細情報を押すと「実行」ボタンが表示されます。

適当な場所に解凍します。場所はどこでも構いません。

解凍したフォルダを開きます。

フォルダを開くとこんな感じになっています。これを見ると「なんかややこしそう」と思ってしまいますが、意外と簡単なので安心してください。

DeepFaceLabはソフトをインストールしてアプリケーションとして利用するタイプのものではなく、工程ごとにバッチファイルを実行していく形になります。

たくさんあって、ややこしそうに見えますが、ザックリと説明すると、素材を準備して、順番にバッチファイルを実行していくだけです。

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

1.素材を準備する

素材となる動画を準備します。素材は何でも構いませんが、まずは1~2、3分程度のもので試してみるのが良いかと思います。

素材は顔を移植する側とされる側の2種類が必要です。

data_src – 「別の人物の体に移植する顔となる素材」

data_dst – 「別の人物の顔を移植される素材」

例えば「ニコラス・ケイジの顔を、ドナルド・トランプに移植する」場合は、ニコラス・ケイジの動画がdata_src、ドナルド・トランプの動画がdata_dstとなります。

用意した素材は、それぞれ上記の例のようにdata_srcとdata_dstに名前を変更し、workspaceフォルダに入れておきます。

最初からサンプルの動画が入ってますので、サンプルは消しましょう。

素材動画の注意点

使用する素材にはいくつか注意が必要です。場合によっては事前に動画編集ソフトで、編集する必要があります。

動画に複数の人物の顔が映っていないこと

この後の工程で人物の顔部分のみを画像で書き出しますが、動画内のすべての顔と認識されるものが書き出されますので、動画には一人の人物の顔しか映らないようにしましょう。

人物の顔が十分なサイズで写っていること

素材となる動画(特にdata_src)は人物の顔がある程度の大きく映っている必要があります。具体的には顔部分の画像の書き出しは256×256ピクセルの正方形なので、動画上の人物の顔のサイズがこの程度のサイズで写っていることが望ましいでしょう。(train時の解像度は最大でも128×128ピクセルなので、この程度でも良いかもしれません)


こんな感じなので、ドラマや映画を素材にする場合は、素材にする人物の顔がある程度大きいサイズで写っているカットのみを抽出して、ひとつの動画につなげておく必要があります。また、同じ画面上に別の人物の顔が映りこんでいる場合は顔と認識されないよう、モザイクをかけておく等の処理も必要になります。

2.素材動画を全フレーム画像書き出し

2) extract images from video data_src.bat」を実行し、data_srcの動画を画像で書き出します、data_srcは顔を移植する側、つまり画像は学習にしか使用しないないので、全フレーム書き出す必要はありません。書き出すフレームレートを選択できます。素材が短い場合は全フレーム書き出したほうが良いかもしれません。

3.2) extract images from video data_dst FULL FPS.bat」を実行し、data_dstの動画を全フレーム画像で書き出します。こちらは顔を移植される側なので、最後に顔を移植して動画にする際に全フレーム必要になるので、自動的に全フレーム書き出しとなります。

途中、アルファチャンネル(透過)ありのPNGで書き出すオプションを尋ねられます。data_dstの動画に透過部分があり、DeepFaceLabで制作した動画を、あとで動画編集ソフトで合成する際などはyにします。通常はnで良いです。

書き出された画像はそれぞれ、workspaceフォルダの中の「data_src」「data_dst」のフォルダの中に書き出されます。

3.顔部分のみを抽出

前の工程で書き出した画像から、さらに顔部分のみを抽出し画像で書き出します。

4) data_src extract faces S3FD best GPU.bat」を実行しdata_srcの画像から顔部分のみを抽出します。

5) data_dst extract faces S3FD best GPU.bat」を実行しdata_dstの画像から顔部分のみを抽出します。

書き出された画像は、それぞれ「data_src」「data_dst」のフォルダ内の「aligned」というフォルダに書き出されます。

4.誤検出された画像を削除

前工程での顔部分のみの抽出ですが、残念ながら必ず何かしらの誤検出があります。これらが学習時に入っていると悪影響を及ぼすので、削除する必要があります。よくあるのは「耳」や「グーにした状態の手」、「家具の模様」など思わぬものが顔として認識されいます。

「4.2.2) data_src sort by similar histogram.bat」を実行すると、data_srcフォルダの中のalignedに入っている、画像がヒストグラムで並べ替えられます。ここではヒストグラムが何なのかは説明しませんが、これを実行すると似た画像で並べ替えられるので、誤検出された画像を見つけやすくなります。並べ替えが終わったら、フォルダを開き誤検出された画像を削除します。

data_dstも同様に「5.2) data_dst sort by similar histogram」を実行し、並べ替えた後、誤検出された顔画像を削除します、

5.学習させる(train)

ここで肝心の機械学習です。学習には「6) train H64.bat」もしくは「6) train H128.bat」のどちらかを使用します。

6) train H64.bat

64×64ピクセルで学習させます。顔が正面を向いているシーンなどはこちらで十分とのこと。vRAM2GB以上 推奨。

6) train H128.bat

128×128ピクセルで学習させます。当然こちらのほうが「 6) train H64.bat 」よりも高解像度なため高品質になりますが、学習に時間がかかります。欧米人よりも顔が平たいアジア人にはこちらのほうが適しているようです。vRAM3GB以上 推奨。

「6) train H64.bat」もしくは「6) train H128.bat」 を実行すると、まず下記のオプションを尋ねられます。

train時のオプション

Model first run. Enter model options as default for each run.
Write preview history? (y/n ?:help skip:n) :

yにすると、プレビュー画面を保存してくれるそうですが、不要なのでいつもnにしています。


Target iteration (skip:unlimited/default) :

無限に学習させるので、Enterでskipします


Batch_size (?:help skip:0) :

バッチサイズが大きいほどモデルの精度が高くなりますが、その分学習が遅くなります。またバッチサイズの値が大きすぎると、trainが始まらない場合もあります。私の環境(GTX 1080 Ti)だと、バッチサイズ64にするとtrainが始まりませんでした。いつもはバッチサイズを32にしています。


Feed faces to network sorted by yaw? (y/n ?:help skip:n) :

data_dstと比較してdata_src画像が少ない場合にyにしておくと良いそうです。通常はnです。


Flip faces randomly? (y/n ?:help skip:y) :

垂直軸で画像を反転することで、反対側にから見た場合もカバーしようというものですが、人間の顔はピッタリ左右対称という訳はないので、通常はnにしておきましょう。左右どちらか片方から見た素材しかない、という場合には有効かもしれません。


Use lightweight autoencoder(y/n ?:help skip:n) :

軽量版のエンコーダーを使用するかのオプションです。vRAMの使用が少なく済みますが、品質が低下します。vRAMが4GB以下の場合はy選択する必要があります。vRAMが4GBよりも大きい場合はnにします。


Use pixel loss? (y/n, ?:help skip: n/default ) : ?

ピクセルロスをオンにすると、モデルが崩れたり壊れたりする危険性が高まるため推奨されないようです。通常はnにします。

train開始

上記のオプションを選択し終えると、Train Preview ウィンドウが立ち上がりTrainがはじまります。 Train Preview ウィンドウ選択中に、下記の操作をすることができます。

Pキー – プレビューのリフレッシュ、プレビューを最新の状態に更新してくれます。何も押さなくてもプレビューは15分おきに自動的に更新されます。

Sキー – Sキーを押した時点のTrainをセーブしてくれます。何も押さなくても15分おきに、自動的にセーブしてくれます。

Enterキー – Trainをセーブして終了します。Trainを後で再開する場合は、「6) train H64.bat」もしくは「6) train H128.bat」を実行すると、自動的に前回セーブされたところから、Trainを再開してくれます。

Trainの時間ですが、マシンのスペックや素材にもよりますが、数時間から数十時間はかかります。

6.顔を移植した画像を書き出し(convert)

Trainを終了したら、学習したモデルを使って、data_dstの動画を書き出した画像に、顔を移植していきます。

「6) train H64.bat」 でTrainしたmodelなら「7) convert H64.bat」を、 「6) train H128.bat」 でTrainしたmodelなら「7) convert H128.bat」を 使ってconvertします。

実行すると、下記のオプションが尋ねられます。

convert時のオプション

Choose mode: (1) overlay, (2) hist match, (3) hist match bw, (4) seamless, (5) raw. Default – 4 :

モードによって下記のような違いがあります。詳しくは引用元のページを読んでみてください。

https://mrdeepfakes.com/forums/thread-deepfacelab-explained-and-usage-tutorial

convertのモードですが、 (1) overlay が一番違和感なく仕上がるかと思います。1を入力してEnterを押します。


Mask mode: (1) learned, (2) dst . Default – 1 :

通常は (1) learned で問題ありません。 1を入力してEnterを押します。


Choose erode mask modifier [-200..200] (skip:0):

通常は0で良いので、Enterでskipします。

https://mrdeepfakes.com/forums/thread-deepfacelab-explained-and-usage-tutorial

Choose blur mask modifier [-200..200] (skip:0) :

顔を移植したときの、境界のぼかしですが、ぼかしが弱くても、ぼかしが強すぎても変なので、通常は中間の0で良いので Enterでskipします。

https://mrdeepfakes.com/forums/thread-deepfacelab-explained-and-usage-tutorial

Choose output face scale modifier [-50..50] (skip:0) :

顔を移植する際の大きさを調整できます。通常は0で良いので Enterでskipします。 明らかにdata_srcとdata_dstの人物の顔の大きさが異なる場合は、微調整するとよいかもしれません。

https://mrdeepfakes.com/forums/thread-deepfacelab-explained-and-usage-tutorial

Apply color transfer to predicted face? Choose mode ( rct/lct skip:None ) :

顔を移植する際に肌の色の違いを補正してくれます。rctもしくはlctを入力してEnterを押します。ここをNoneにしてしまうと、肌の色が異なって不自然になります。

https://mrdeepfakes.com/forums/thread-deepfacelab-explained-and-usage-tutorial

Apply super resolution? (y/n ?:help skip:n) :

通常はnで良いです。data_dstの動画が低品質の場合にyにすると良いらしいです。


Degrade color power of final image [0..100] (skip:0) :

値を大きくすると、移植した後の顔の鮮やかさが上がります。ただし基本的に階調が悪化してしまうため、通常は0のほうが良いです。Enterでskipします。


Export png with alpha channel? (y/n skip:n) :

画像をアルファチャンネル(透過)ありのpngで書き出すオプションです。data_dstの動画に透過部分があり、DeepFaceLabで制作した動画を、あとで動画編集ソフトで合成する際などはyにします。通常はnで良いので、Enterでskipします。


オプションを選択し終えると、data_dstに顔を移植された画像の書き出しがはじまります。画像は「data_dst」のフォルダ内に自動的に「merged」というフォルダが作成され、ここ書き出されます。

7.書き出した画像を動画にする

あとは前の工程で書き出した画像をつなげて動画にするだけです。

「8) converted to mp4.bat」を実行します。オプションはEnterでskipして構いません。

アルファチャンネルを利用する場合は「8) converted to mov(lossless+alpha).bat」もしくは「8) converted to mp4(lossless+alpha).bat」を実行します

動画は「workspace」フォルダ内にresult.mp4という名前で出力されます。

さいごに

これで一通りDeepFaceLabを使って動画を制作することができると思います。私もこの手の専門家ではないので、うまくいかないところや、間違っているところがありましたら、指摘していただけると幸いです。

質問・コメントなどもありましたら、私の答えられる範囲で回答させていただきます。

Deepfakeを作るのに必要なマシンのスペック等については、こちらの記事に詳しく書いてますので、併せてご覧ください。

また、学習する素材に写真・静止画も使うことができます。詳細はこちらの記事をご覧ください。

DeepFaceLabの最新版、DeepFaceLab2.0の使い方はこちらの記事をご覧ください。

147 COMMENTS

trainは終わったら自動でコマンドプロンプトは閉じられるのでしょうか?
それともある程度学習したと判断したら自分で閉じてconvertに移っても問題ありませんか?

返信する
deepfake.xyz

返信遅くなりまして申し訳ないです。
この記事の解説だと、エンドレスに学習するようにしているので、ある程度学習したら、trainを終了する必要があります。
train中に画像が表示されているウィンドウを一度クリックしてから、Enterキーを押すと任意のところでtrainを終了できます。
その後にconvertを開始してください。

返信する
ゆーた

6番まではうまくいったのですが、最後の7番で「reference_file not found.」と出て処理されません。。。
「data_dst」内の「merged」に合成された画像群もできていて、あとはつなげて動画にするだけなんですが。。。

返信する
deepfake.xyz

ここで不具合が起こったことがないので、なんとも言えません…。
何かしらのファイルがないのは明白なのですが。何回か別の学習もやってみて、再発するようでしたら、またコメントしてください。

返信する
アキョウ

build_06_20_2019置いて戴いてありがとうございます。こちらでH128でtrain開始したらCUDA_ERROR_OUT_OF_MEMORY: out of memoryの表示は無くなりました。

以前のものはH128ではバッチサイズ変更しても表示が出て、H64ではバッチサイズ4位なら表示が出ない様でした。

ありがとうございました。

返信する
deepfake.xyz

解決してよかったです。buildの問題だったんですね。
RTXシリーズのビデオカードは持ち合わせてないので、参考になります、ありがとうございます。

返信する
名無し

使用OS:windows10 Home
CPU :Core i7 4770K
RAM :16GB
GPU :GeForce760(2GB)
CUDAバージョン:9.2
使用したDeepFaceLabバージョン:DeepFaceLabCUDA9.2SSE

上記条件でどのエグゼを実行しても
「No CUDA devices found with minimum required compute capability: 3.5. Falling back to OpenCL mode.」「Running on[CPU]」と表示され、またタスクマネージャーで確認してもCPUの占有率は98パーセント以上になるのにGPUは殆ど使われていません。これはGPUでの処理ができていなとの認識で間違いないでしょうか。

返信する
deepfake.xyz

DeepFaceLabのbatはすべてのbatでGPUを必要とする訳ではなく、CPUだけで処理するものもあります。
ただ質問者さんの言う通り「No CUDA devices found with minimum required compute capability: 3.5. Falling back to OpenCL mode.」と表示されているということは、CUDAが正常に動作してないものと思われます。

返信する
ちょっぷ

工程ごとに
No CUDA devices found with minimum required compute capability: 3.5. Falling back to OpenCL mode
と出ますが作業は普通に進んでいきました
これが普通なのかはわかりませんが
一応作れましたのでご報告です
お騒がせしました

返信する
deepfake.xyz

No CUDA devices found with minimum required compute capability: 3.5. Falling back to OpenCL modeと表示が出ているとのことですが、
ビデオカードを積んでいるマシンを使用されてないのでしょうか。
ビデオカードを積んでいるのにこの表示が出るのであれば、ビデオカードが正常に使用されてないのではないかと思います。

返信する
ちょっぷ

自分もこの方と同じ状態です
もし解決できていたなら教えていただけたら幸いです

返信する
Otis

初めまして。
こちらのページを参考に動画を一つ作ることが出来ました。ありがとうございます!
試しに作ってみたところ精度がかなり悪かったので素材選びも少し考えた方が良さそうでした…。ところで、1度学習に使った動画または画像をそのままに、追加で学習させて精度を上げるというようなことは可能なのでしょうか??答えにくい質問だったらすみません。

返信する
deepfake.xyz

返信遅くなりまして、申し訳ないです。
お役に立ってよかったです。精度については素材の選び方もありますが、trainの時間によっても変わってくるので、いろいろ試してください。
学習に使ったmodelを別の学習で使用することはできませんが、学習に使用するalignedのフォルダに入っている、顔の画像は他の学習で使用することができます。
data_srcを別のもので使用する場合は、alignedのフォルダの中に顔の画像が入っていればOKです。
data_dstを別のもので使用する場合は、動画にする際に顔画像以外もも必要なのでdata_dstの中身が丸々必要です。

ここまで素材がそろっていればいきなりtrainから始めても問題ありません。

また、分からないことなどありましたら、お気軽にご質問ください。

返信する
KENKEN

明日、1060、6GBをメモリ16GBのPCに実装して始めます。
一通り拝見しましたがsrc側の素材に静止画を使う場合はどのように放り込めば良いのでしょうか?静止画で一旦スライドショーを作り、動画素材と連結させて作った動画を連結させて放り込めば理屈的には出来そうですが、そういうことしなくてもこうやって放り込めば静止画のまま使えるよ、と言うのがあれば教えて頂きたいです。

返信する
deepfake.xyz

静止画は簡単に素材に追加することができます。
まず「DeepFaceLabCUDA9.2SSE」のDeepFaceLab本体のフォルダを複製して、作業用にひとつフォルダを作りましょう。
(必須ではないですが、分けておいたほうが便利かなと思います。)

次に、素材に使用したい画像をすべて「workspace/data_src」の中にいれます。
そして「4) data_src extract faces S3FD best GPU.bat」を実行すれば、data_src内に入れた画像から、顔部分のみを切り出した画像が「workspace/data_src/aligned」のフォルダ内に出力されます。
その静止画だけで、学習することもできますし、他の動画素材から切り出したalignedの画像と混ぜて使用することもできます。画像のファイル名は連番でも、何でも構いません。

返信する
KENKEN

早々のご返信ありがとうございます!
また大変丁寧にご教授いただいて幸甚です!
今後ともよろしくお願いいたします!

返信する
やっく

お世話になります。貴重な記事ありがとうございます。以下記事をチェックしたのですが今回の同じアルゴリズムを適用していると思われますか?GANについて詳しくなく本技術がgithubにあれば教えて頂きたいです。またこの技術解説もぜひしてください!待ってます!

顔写真1枚で簡単にディープフェイク映像を作成できる無料アプリ登場、中国で大人気に
https://gigazine.net/news/20190903-iphone-deepfake-app-zao/

返信する
deepfake.xyz

私は情報分野の人間ではありますが、実は深層学習・機械学習についてはあまり詳しくないので、断言はできませんが、
この「ZAO」というアプリでは、DeepFaceLabのようにAさんの顔をBさんの顔に変換するように学習させるというよりかは、
サーバー側に、アップロードされた1枚の顔画像をどのように動画に合成するか、事前に学習させてあり、それに従って動画に合成しているのではないかなと思います。
いちいちGANで学習させていては、大量のユーザーに対応できませんし、時間もかかるので。

DeepFaceLabについては、Githubでも公開されています。
https://github.com/iperov/DeepFaceLab

返信する
KENKEN

お世話になっております。
顔素材の抽出までは上手くいったのですがTRAIN段階になってつまづいています。
具体的にはTRAINが始まらない事。
コマンドプロンプトの中では動きがあるのですが、決定とした後コマンドの画面は閉じてしまいエラーも出ず、しかし待てど暮らせどTRAINのプレビューが表示されません。
src側の素材数が多すぎるのかなと思い(14,000点ほど)、試しにソフトに付いてくるヒゲのおっさんのサンプルで試してみたのですが、やはり学習段階で同様の症状が起きます。
CUDAは9.2、メモリ16GBでグラボはgtx10606GBです。
バッチ数を落としてみても同様の症状です。
何か必須の事が出来ていない気がするのですが考えられる原因はありますでしょうか。

返信する
KENKEN

失礼しました。
私、結局ご指示頂いた手順のとおりに進めていませんでした。
今後ともよろしくお願いいたします!

返信する
初心者

src側alignedフォルダの顔が合成されるわけですが、convertの際にその顔の「鼻から上を使う(口はdst側を使用する)」などといった範囲指定の様な事は可能なのでしょうか?

返信する
deepfake.xyz

ユーザーがマニュアルで顔の位置合わせをする機能はあるようですが、data_dstも、data_srcも「鼻から上」だけを使って学習するというのは、できないかと思います。

返信する
ザック

コメント(質問)を失礼します。
2点質問がありまして、お知恵を拝借したいです。

1)trainについて
100000ほど反復させると毎回パソコンがフリーズしてしまうのはなぜでしょう。

2)GPUの使用率について
NVIDIA 1660 Tiを使用していますが、全体の使用率がtrain時に5%程しか使っていません。
CUDAの使用率は99%程なのですが、これはGPUをちゃんと使えているのでしょうか?

初心者なものでよろしければご教授お願いします。

返信する
deepfake.xyz

>1)trainについて
100000ほど反復させると毎回パソコンがフリーズしてしまうのはなぜでしょう。

なぜかは分からないです。少し海外のフォーラムを漁ってみます。
ただ8万回程度の学習でも、そこそこ高品質なものができているのではないでしょうか。
あとはフリーズした後に強制終了等して、再度trainのbatを実行すれば前回のセーブしたところから再度学習をスタートできますが、これでもフリーズしてしまうでしょうか。

2)GPUの使用率について
NVIDIA 1660 Tiを使用していますが、全体の使用率がtrain時に5%程しか使っていません。
CUDAの使用率は99%程なのですが、これはGPUをちゃんと使えているのでしょうか?

GTX 1660 Tiは使ったことがないので、何とも言えませんがCUDA使用率が99%なら、正常に動いているような気もするのですが・・・
Train中は以下のような表示が出ていると思います。
このような表示の左から3列目の数字は一度の学習にかかる時間なのですが、ここはだいたい何msの表示になっているでしょうか。
あとはフリーズする時点でLOSS値(左から4列目・5列目の数字)どの程度の値になっていますでしょうか。
例)
[19:10:52][#045254][1336ms][0.4241][0.3113]
[19:25:55][#045889][1323ms][0.4229][0.3116]
[19:40:59][#046524][1320ms][0.4204][0.3099]
[19:52:31][#047009][1377ms][0.3849][0.2987]

返信する
ザック

お返事ありがとうございます。

1)trainについて
再開すると2時間ほど稼働し、フリーズする感じです。
trainは進んでいるのですが、パソコンの電源の切り方がコンセントから抜くしか方法がなくなるのでフリーズしない方法はないかと思いまして。

2)GPUの使用率
値は下記のような感じです。
[11:44:15][#123799][0278ms][0.6070][0.3700]
[11:59:17][#127254][0277ms][0.6023][0.3625]
[12:14:20][#130709][0274ms][0.5993][0.3593]
[12:29:22][#134165][0277ms][0.5948][0.3572]
となります。
よろしくお願い致します。

NEON

mergedのフォルダをみると、顔の移植ができていません。

移植がうまくいかない時の改善点などはありますか

返信する
deepfake.xyz

うまく移植(合成)できていないというのは、まったく合成されてないのか、合成はされているが、顔がぼやけている・不鮮明等どちらでしょうか。

後者であれば学習が十分でない可能性や、data_srcの素材が十分でない場合があります。
素材が十分でないというのは、例えばdata_dstに横顔の画像があれば、data_srcにも横顔から写した画像がないと、横顔の学習・合成がうまくいきません。

学習についてですが、学習中下記のような表示が黒い画面に表示されていると思いますが。

例)
[19:10:52][#045254][1336ms][0.4241][0.3113]
[19:25:55][#045889][1323ms][0.4229][0.3116]
[19:40:59][#046524][1320ms][0.4204][0.3099]
[19:52:31][#047009][1377ms][0.3849][0.2987]

2列目の[#045254]は学習した回数を表します、最低でも3万~4万回程度は必要かと思います。
参考程度に、海外のフォーラムには12万まで、やれば十分といった表記もありました。
3列目の[1336ms]は1回の学習にかかる時間です。
4・5列目の[0.4241][0.3113]学習の進行度合い(進むにつれて減少する)を表します。
[0.2000]近くまで行くと良いそうですが、少なくとも[0.4000]~[0.3000]くらいまでいかないと、合成しても、不鮮明かもしれません。

返信する
仗助

お世話になっております。
現在build_06_20_2019がMEGAに上がっておらず、他の種類を使用しているのですが、もうbuild_06_20_2019は手に入らないのでしょうか。
もしくはどこかにあるけど見つけられてないのか・・・。
手順にある通り、オーバーレイだと黒い枠線が出てきてしまって困っております。
今でもDLできるのかどうか、もしできるのならば教えていただけると幸いです。

返信する
deepfake.xyz

確認しました。本当ですね、もうダウンロードできなくなってますね。
とりあえず、記事内に「DeepFaceLabCUDA9.2SSE_build_06_02_2019」のダウンロードリンク設置しました。

どうやら「build_09_13_2019」がリリースされたようで、現在テスト中です。
こちらで改善されていると良いのですが。

返信する
KENKEN

素晴らしい、そして迅速なご対応に感謝します。
特に学習中のcmd画面の説明や旧バージョン入手のリンクは自分がまさに質問しようとしていたコンテンツで完全に神、でした(笑)
また具体的な学習回数についても最低ライン、理想ラインを示して頂いて本当にありがたいです。
バッチサイズが32では全然ダメだったので試しに4から始めたのですが自分の環境では12万回まで学習するのは単純計算で20時間ほどかかるもよう。
ですが、「この辺かな」と言うラインを示していただけたのがとてもありがたいです。
どうやらコマンド画面の説明になって中の4列目、5列目の数字がいわゆる「ロス値」にあたるもののようですね。
この情報もありがたいです。

ちなみにプレビュー画面の見方ですが、何やら合成を試みているようなものも散見されるプレビューが、更新されるうちほぼ同一人物のものの連続に見えて来る、と言うようなことでしょうか?
また上の波形データのようなものが何を表しているのかご教授頂けたら幸甚です。

返信する
KENKEN

あ、このグラフがつまり4~5列目の推移を示してるんでしょうか。
つまり学習が進むにつれ下に張り付いてきてさらに進めると荒い波が徐々に収束してくるとか。
もちろん一本の線になったりゼロになることは絶対にないのでしょうけれども。

返信する
deepfake.xyz

>このグラフがつまり4~5列目の推移を示してるんでしょうか。
おっしゃる通りです。グラフはLOSS値の変化の推移を表しています。
基本的には徐々に下がっていきますが、素材が少なかったり、悪かったりすると
途中で下がりにくくなったり、安定しなくなります。

>ちなみにプレビュー画面の見方ですが、何やら合成を試みているようなものも散見されるプレビューが、更新されるうちほぼ同一人物のものの連続に見えて来る、と言うようなことでしょうか?

こちらもおっしゃる通りです。
プレビュー画面の画像が5列あると思いますが、
左から1列目が元のdata_src、2列目は学習したデータを使ってdata_srcを生成したもの。
3列目は元のdata_dst、4列目は学習したデータを使ってdata_dstを生成したもの。
最後5列目が学習したデータを使って、data_dstをdata_srcに変換したものになります。
ですので、プレビュー画面では視覚的に学習の進行度合いを確認することができます。

返信する
KENKEN

ありがとうございます!
cmd画面の4、5列目の数字が0.2あたりを割ってきて、プレビュー画面の5列目がsrc側の本人に見えてきた時が作り時、という事ですね。
とてもご丁寧に、また分かりやすくありがとうございました。

返信する
ひろぼう

使用時の疑問、質問でなくて申し訳ありません…
何度も繰り返し結果をチェックすれば自分で把握できることなのかもしれませんが
もしご存じでしたら教えて下さい

AIですと「この表情が一番なんだ」といった各人の主観的な部分には不介入だと思います

trainの際には「動画を均等にコマ切りした顔部分」の画像が素材になると思いますがいくつか不明点があります

例えば…(基本的には同一被写体で同一照明条件が望ましいのだと思いますが)

途中から化粧で眉毛の太さが変わったとしたら…
中間になるのでしょうか…
太さは抽出画像の比率で変わったりするのでしょうか…
それともベースや変化中といった区分けがされたりする?
(私のsrc動画の相手は口を尖らせる癖があり、抽出画像のほとんどがおちょぼ口になりそう)

動画で変顔が多い場合に、変顔の抽出画像を削ってからtrainに進んだ方が良いのか、それも学習に入れ込んだ方が良いのか…
真顔や笑顔と比べて、変顔が多い場合は、その変顔を全削除もしくは画像量を減らすべきでしょうか?

画像の中で一番多い位置や角度で顔のベースが確立されるなら表情によって画像量を変えないとならないですが
尖らせた口や鼻を伸ばした顔を、ベースの顔のそういった表情である認識してもらえるものなのでしょうか?

的違いな質問になっていたらごめんなさい
もし知っている部分がありましたら教えてもらえると助かります

返信する
deepfake.xyz

例えば、data_dstの動画の人物が泣いている表情場合、data_srcの動画の人物も泣いている表情が映っている動画にしたほうが、より良いと思います。

というのも、一度、data_dstの人物が泣いている動画で、data_srcの動画の人物は笑顔でインタビューを受けている動画で、学習させたことがありますが、
学習させ合成した動画を観てみたところ、泣いているというのは分からなくもないですが、合成した顔の口角が上がっていて、泣いているにも関わらず、笑っているような動画になっていました。
つまり、本来は泣いているはずだけれども、data_srcに笑顔で写っている場面しかなかったため、これにひっぱられてしまったんだと思います。

他にも色々と試してみましたが、現状のdeepfakeでは、学習させればどんな表情でも違和感なく生成するということは不可能なようで、感覚的には、data_srcの画像から似ている画像を探してきて上手く合成しているというような感じに近い気がします。

ですので、data_srcの中にdata_dstの動画と同じ角度で、同じ表情で映っている部分があるのが一番良いと思います。
data_srcに変顔の画像等が入っていても、真顔や普通の表情で映っている部分があれば、合成後の真顔や普通の表情が変顔に影響を受けることは少ないんじゃないかなと思います。

返信する
ひろぼう

丁寧で分かりやすい説明ありがとうございます

確かに以前、srcを少し上からの撮影だけで進めてdstが下からのアングルが多かった際は合成後は歪な仕上がりになってました

勝手に(画像)素材からお互いの顔が生成されていく?…なんて思っていましたが
どちらかというと近い画像を引っ張ってからコンバートしていく感じなんですね(確かに進行時はそういった処理がみれてます)

素材が足りないと何かしらで生成して進んでしまう…だから色々と入れ込んでおいた方がいいという事ですよね
不要(類似していない)な素材は置いておいてもあまり影響がでない感覚で進めていきます

もう一つ、もし分かる部分があれば教えて下さい

抽出後に顔データとして置いておかない方が良い、(なるべく)フォルダから削除した方が良い画像ってどんなものがあります?
(現在は全く顔でない画像のみ削除してます)

思い当たるのは
顔の1/3や半分ちかく見切れてる
ピントが合っていない
ブレで被写体がはっきりしない(伸びていたり)

やはり処理時間の問題なだけで、不要(不一致)な画像データは触らなく結果に影響がないといった感じなのでしょうか?

そして気になるのは
サイズや色、光などパラメーターとして一括設定しますよね

サイズに関しては抽出時に同一サイズにしているのでFACE SCALEはすべてのコマに同じ状況となりますよね
境界ぼかしやconvertのモードに関しても同じと思われます

そこで肌色の補正に関しても全コマ同一の処理となったりしますか?

色補正の方法やコマごとに補正をかけているのか分からないので、
光源の位置や肌の色合いや撮影時の明るさなど違うものが混在しない方が良いのでしょうか?

返信する
隆一

まだ始めてばかりですがいつも参考にさせていただいております。
これからもよろしくお願いします。
いくつか質問よろしいでしょうか?
まず、dst側の顔データをよみこんだときに生成される赤と青の四角い枠?は何を表しているのでしょうか?
それからH128をコンバートするときに選択できるmask modeで通常はlearnedという事ですが、dst にするとどう言う働きがあるのでしょうか?
よろしくお願いします。

返信する
deepfake.xyz

>まず、dst側の顔データをよみこんだときに生成される赤と青の四角い枠?は何を表しているのでしょうか?
顔の画像を切り出したり、学習させたmodelを使って合成する際などに、顔の傾きや、目がどの位置なのか、目が閉じているか開いているか、口角が上がっているかとか、口が開いているか閉まっているかとかも、必要になってきますよね。そうでないと表情まで再現できなくなってしまいますからね。そのためにDeepFaceLabがこれらの結果(どのように顔を認識しているか)を、data_dstのフォルダ内aligned_debugというフォルダに画像で出力しているものになります。青い枠線は単に顔の部分を、画面に対して水平・垂直の四角形で囲ったもので、赤の四角い枠は顔の角度に合わせて囲ったものでしょう。

>それからH128をコンバートするときに選択できるmask modeで通常はlearnedという事ですが、dst にするとどう言う働きがあるのでしょうか?
mask modeは簡単に言うと、modelを使って合成する際(convert時)に、どこからどこまで元の顔の部分を使って、どこからどこまでmodelで生成しした画像を合成するのかのマスク範囲のことです。
learnedはその通り学習したmodelからマスク範囲決めていますが、dstにすると、dstに写っている人物の顔画像から生成したマスク範囲を使用して、合成を行います。
基本はlearnedで問題ないと思いますが、learnedを使用したときにdstの人物のオリジナルの口や目が飛び出て写ってしまう場合などに、mask modeをdstにすると、多少マスク範囲が広がって、改善されるかもしれません。

リポD

はじめまして
「build_06_02_2019」もしくは「build_06_20_2019」が一番高品質な動画を制作することができます。との事でしたが、サイトにはリンクが無く最新版のを試してみましたが輪郭部分に四角の枠がハッキリ移ってしまいうまく制作出来ませんでした。

「DeepFaceLabCUDA9.2SSE_build_06_02_2019」のダウンロードリンクはありますがCUDA10.1のリンクも貼って頂けますでしょうか。

宜しくお願い致します。

返信する
deepfake.xyz

あいにく、「build_06_20_2019」以前のCUDA10.1のダウンロードリンクがもうないようで、現在 海外の管理者の方に、過去のバージョンを再度アップロードしていただけないかお願いしています。
進捗ありましたら、また返信もしくは新しい記事でお知らせさせていただきます。

現在の新しいバージョンのものではConvertする際にoverlayを使用すると上手くいかないようで、seamlessを使用するとまだ綺麗に合成することができます。
ただ「build_06_20_2019」のorverlayほど違和感なく合成はできないです。

返信する
リポD

迅速な対応ありがとうございます。

seamlessを使用しましたが綺麗なものと比較するとやはり劣ってしまいますね。

build_06_20_2019が再アップの知らせを待ちつつ、綺麗に作成できる方法を模索したいと思います。

返信する
ma-oma-o

自分は6の工程までAVX10.1でやって7以降の工程をSSEのbuild_06_20_2019で実行してきれいにできました!ありがとうございます!

返信する
すない

【一部コメントの内容を変更させていただきました】
食事等の口にものを運ぶシーンで、合成しても口元の部分が不自然にならない動画を作りたいです。

返信する
deepfake.xyz

色々と方法がありますが、私なら動画編集ソフト(PremierProなど)で合成前と合成後のを重ねて、口元の部分だけ合成前のものを使用するようにマスクをかけるなどするのが良いのではないかと思います。

返信する
すない

質問のしかたが愚かですみませんでした!そのやりかたでためしてみます!

返信する
すない

あと、このサイトにはすごく感謝しています。完成度が2%ぐらいですが、作品ができたとき、感動しました!あらためて、ありがとうございます!

返信する
すない

言われた通りにやったらできました!ありがとうございます(*^^*)

KENKEN

この件、自己解決しました。
長文で見苦しいので削除頂けるとありがたいです。
今後ともよろしくお願いいたします。

返信する
くるた

初めまして。
無知な質問で申し訳ないのですが、deepFacelabをダウンロードするには登録が必要とのことですが、登録したことによって料金が発生したり何か損害を被ることがあるのでしょうか?
海外のサイトなので心配で┏〇゛

返信する
deepfake.xyz

特にお金を請求されたり、スパムメールが送られてくる等は発生していません。
当記事内に「DeepFaceLabCUDA9.2SSE_build_06_02_2019」のダウンロードリンク設置していますので、GTXシリーズのビデオカードをご使用でしたら、こちらからダウンロードもできます。

返信する
くるた

ご返答ありがとうございます┏〇゛
機械音痴なのでどっかで躓くかもしれませんか、こちらのサイトを参考に頑張ってみます。

返信する
ナンタン

data_srcでの顔部分のみの抽出のところなんですが、うまくいきません。
動画に映っている人は一人のみにしているのですが、顔がアップにならず、デフォルトの画像になってしまいます。
サンプルで試してみると顔のみ抽出してくれるのですが…
どうすれば良いのでしょうか?

返信する
deepfake.xyz

顔が、顔として認識されてないとしか考えられないですね。
顔が顔として認識されない、人物がいるんでしょうか?…
素材の問題ではないかなと思いますが…

返信する
アキョウ

はじめまして
train時
from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory
と出てしまうのですが、train自体は進んでいる様です。これは問題ないのでしょうか?

また、DeepFaceLabのダウンロードページにCUDA10.1AVXとCUDA10.1SSEの2つ有るのですがこれは何が違うのでしょうか?初心者のためくだらない質問ですいません。

スペックはRTX2070SUPER、HP内でご教示戴いているCUDA10.1を入れれたと思います。という状態です。宜しくお願いします。

返信する
deepfake.xyz

AVXについてはこちらのWebサイトをご覧いただければと思います。
http://blog.livedoor.jp/ocworks/archives/52088704.html
AVXはIntel 第二世代Coreプロセッサー(Sandy Bridge)以降のCPUがサポートしている拡張命令セットのひとつです。

恐らく最近のCPUを搭載したマシンをお使いだと思いますので、CUDA10.1 SSEではなく、CUDA10.1 AVXで問題ないと思います。

「from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory」については、バッチサイズが大き過ぎるのが原因かもしれません。
一度、バッチサイズを小さくして試してみてください。

返信する
なんたん

8の工程までできて、とりあえず動画完成することができたのですが、作り終わった動画を開いてみると「このアイテムは、サポートされていないフォーマットでエンコードされています。」という表示がでて、音声しか再生されませんでした。
どうすればよいのでしょうか?教えていただけると幸いです。

返信する
deepfake.xyz

動画の再生ソフトの問題ではないでしょうか。
しかし、mp4で書き出していれば、どんな再生ソフトでも再生されるはずなので不思議ですね。
その前の段階のdata_dst内のmergedフォルダには、顔を合成された画像は正常に書き出されているでしょうか。

返信する
なんたん

もう一度エンコードしたら映像が映りました。
お騒がせして申し訳ないです。

返信する
隆一

こんにちは!
dst側のファイルについてなのですが、顔側のファイルは関係ないものは削除するとありますよね。
対して体側(顔にポイントや四角が書かれているやつ)も例えば顔が映っていない画像などでグチャグチャな検出をしているものも削除して構わないのでしょうか?

返信する
けろ

コメントを失礼します。

srcで読み出した顔の画像をtrainに使用したら、エラーになってしまいました。

どちらも256ピクセルですが、元々の画像サイズが11.0KBで編集後が36.2KBと大きくなっていました。
編集して大きくなってしまった画像はtrainに使えないのでしょうか?

元々読み出した画像は問題なく読み取れます。

よろしくお願いします。

返信する
deepfake.xyz

>元々の画像サイズが11.0KBで編集後が36.2KBと大きくなっていました
もの元の画像サイズというのは動画から1フレーム書き出した画像が11.0KBで、顔画像を切り出した画像が36.2KBになったという理解で合ってますでしょうか。
「編集後」というのが、どういう編集を指してるのかよく分かりませんが、画像の保存形式(jpgかpngか)による変化ではありませんか。

返信する
けろ

返信ありがとうございます。

顔画像を切り出した画像が11KBで、その画像を加工アプリでシャープに編集したものが36.2KBになっていました。
保存形式は顔画像と同じjpgで保存しました。

よろしくお願いします。

返信する
あさ

from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory
私もアキョウさんと同じ環境(2070S)なのですがtrain時に同様のエラーが出ます。バッチサイズを下げてもエラーはなぜか出るという感じで、勝手に4にされる。(4以下にしていてもエラーが出て、4になるのが謎)
そして、Train自体は問題なく進むものの、そのあとのConverterでは処理が始まらなくなります。
その時出るエラー文ぽいのは
no faces found for 00001.png, copying without faces

このエラー?

返信する
deepfake.xyz

>no faces found for 00001.png, copying without faces
まず、これ自体はエラー文ではなく、顔を合成する際に、data_dst側の動画から書き出した画像に人物の顔が見つからなかった時に出る表示です。
この場合は顔の合成は行われず、data_dstから書き出した画像がそのまま使用されます。
だた、data_dst/00001.pngに人物の顔が写っているのにこの表示が出ているのであれば、何から問題があるかもしれません。

>from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory
これについては、詳しい原因かは分かりませんが何かしらがメモリを占有してるのが原因でしょう。
私も色々と探しては見ましたが、決定的な解決法のようなものは見つかりませんでした。
DeepFaceLabではないですが、DeepFaceLabでも用いているTensorFlow関係で「CUDA_ERROR_OUT_OF_MEMORY: out of memory with RTX 2070」というページがgithubにありました。
ここでは、「なぜかは分からないが、DDU (Display Driver Uninstaller)を使って、グラフィックドライバーをアンインストールして、再インストールしたら正常に動いた」とは書かれていますが、、、

返信する
クマシロ

すみません、trainが開始されたのかどうかはどこで判別すればいいのでしょうか。
コマンドプロンプトで顔画像が読み込まれ、プレビュー画面が表示されるまではしているのですがそこから特に動きがありません。
一応、convertも試してみたのですが元の画像にぼやけた四角形が乗っているだけでした。数時間しかやってないので単純に学習不足の可能性もあるとは思います…。
プレビューが表示された時点でtrainが開始されていると考えてもよいのでしょうか。

返信する
deepfake.xyz

Trainを開始すると、コマンドプロンプトのような黒いウィンドウに下記のような、表示が出るかと思います。
例)
[19:10:52][#045254][1336ms][0.4241][0.3113]
正常にTrainが行われていれば、この5項目すべての値が、一度の学習毎に絶えず更新されます。
ちなみにこの表示は
1列目は「時刻」、2列目の[#045254]は学習した回数を表します、もちろん最初は#000001から始まります。最低でも3万~4万回程度は必要かと思います。
参考程度に、海外のフォーラムには12万まで、やれば十分といった表記もありました。
3列目の[1336ms]は1回の学習にかかる時間です。
4・5列目の[0.4241][0.3113]学習の進行度合い(進むにつれて減少する)を表します。
[0.2000]近くまで行くと良いそうですが、少なくとも[0.4000]~[0.3000]くらいまでいかないと、合成しても、不鮮明かもしれません。

返信する
クマシロ

すみません、スペックを下げたところtrainが開始され試行回数などが表示されるようになりました。
当方、corei7 9700 GTX1660 メモリ16gbを使用しているのですがスペック的には足りていないということでしょうかね。
また、train時に一度入力してしまったパッチ数などの設定は後から変更することは可能なのでしょうか。
お暇があるときにでもお答えくだされば幸いです。よろしくお願いします。

返信する
deepfake.xyz

CPUは申し分ないと思いますし、メインメモリも16GBあれば十分ではないかと思いますが、GTX 1660ですとVRAMが6GBしかないのが原因ではないかと思います。
バッチサイズは、一度に学習する画像の数を設定するものですので、一度Trainを終了して、再度実行する際にバッチサイズを変更しても問題ないと思います。

返信する
クマシロ

とてもご丁寧で分かりやすいご回答ありがとうございます。お陰さまで、出来が良いとは言えませんがとりあえずの動画を作成することができました。
やはり、GPU性能の問題だったんですね。6GBあれば足りると思っていましたが、なかなか難しいものですね。
バッチサイズの変更についてですが、一度trainしたmodelを再度trainしようとすると続きからのスタートになってしまいます。
再度バッチサイズを変更してtrainをする場合はmodelのデータを削除して最初からやり直さなければいけないのでしょうか。
また、128HでtrainさせたmodelはSAE等のほかのtrainでも流用できるものなのでしょうか。
度々の質問で申し訳ありません。可能な範囲でお答えいただけたら幸いです。よろしくお願いします。

返信する
deepfake.xyz

返信遅くなりまして申し訳ないです。

>バッチサイズの変更についてですが、一度trainしたmodelを再度trainしようとすると続きからのスタートになってしまいます。
再度バッチサイズを変更してtrainをする場合はmodelのデータを削除して最初からやり直さなければいけないのでしょうか。

再度trainのbatを実行し、続きからバッチサイズを変更することができますが、最初から異なるバッチサイズで学習をさせたい場合は、クマシロさんのおっしゃる通り「model」フォルダの中身をすべて削除しなくてはいけません。

>また、128HでtrainさせたmodelはSAE等のほかのtrainでも流用できるものなのでしょうか。度々の質問で申し訳ありません。可能な範囲でお答えいただけたら幸いです。よろしくお願いします。

異なるtrainのbatで作ったmodelについては、別のタイプのtrainでは流用できないと思います。

返信する
こむ

コメント失礼します。

4) data_src extract faces S3FD best GPU.bat以降の段階全てでバッチファイルを実行すると

Traceback (most recent call last):
File “C:\DeepFaceLab_CUDA_9.2_SSE\_internal\DeepFaceLab\main.py”, line 272, in

File “C:\DeepFaceLab_CUDA_9.2_SSE\_internal\python-3.6.8\lib\site-packages\sci
py\linalg\__init__.py”, line 195, in
from .misc import *
File “C:\DeepFaceLab_CUDA_9.2_SSE\_internal\python-3.6.8\lib\site-packages\sci
py\linalg\misc.py”, line 5, in
from .blas import get_blas_funcs
File “C:\DeepFaceLab_CUDA_9.2_SSE\_internal\python-3.6.8\lib\site-packages\sci
py\linalg\blas.py”, line 214, in
from scipy.linalg import _fblas
ImportError: DLL load failed: ネットワーク名が見つかりません。
続行するには何かキーを押してください . . .
といったエラーが発生してしまいます。

使用環境は
CPU: Intel Core i5-4590
メインメモリ: 16GB
GPU: GeForce GTX 760
OS:Windows 8.1 (64bit)

DeepFaceLabCUDA9.2SSE
CUDA9.2

同様のエラーは掲示板等でも見当たらず、GPUの性能不足によるエラーではないのかと思いますがいかがでしょうか。
動作を確認してからGPUを買い替えようと考えているのですが、このエラーの原因が分からずコメントさせていただきました。
よろしくお願いします。

返信する
deepfake.xyz

返信遅くなりまして申し訳ないです。

DeepFaceLabのを使用するにはCompute Capability 3.5以上のビデオカードが必要になります。
こむさんがお使いのGeForce GTX 760はCompute Capability 3.0ですので、このため正常に動作しないものと思われます。

どのGPUが、どのCompute Capabilityなのかはこちらのページ表がありますので、ご覧ください。
https://en.wikipedia.org/wiki/CUDA#GPUs_supported

返信する
なんたん

いつもお世話になっております。
trainの学習時にPCにどれだけの負荷がかかっているのかを確認するためにタスクマネージャーを開いたのですが、その際、「タスクの終了」というところをクリックしたところ学習がストップしてしまいました。
もう一度、セーブされたところから学習を始めようとしたのですが、「No CUDA」というエラーが出てきてしまいます。
改善策教えていただくとありがたいです。

ちなみに、CUDA9.2を使用しており、再インストールも試してみましたが、学習時にエラーが出てしまいます。

返信する
umi

お世話になります。
合計が上手く行かず困っているため、アドバイス頂けますでしょうか。
学習後、上記の方法で動画の書き出しをしているのですが
オリジナルと合成部分の境に黒い筋が入ってしまい
合成が上手く行ってないのですがどのようにすれば、解消できるのでしょうか。

返信する
deepfake.xyz

返信遅くなり申し訳ありません。
どのbuildのものをお使いでしょうか?

「build_08_19_2019」以降については、umiさんのおっしゃる症状が確認されています。
もし「build_08_19_2019以降」のものをお使いでしたら、一度「build_06_20_2019」を試してみてください。

CUDA9.2 / CUDA10.1 SSE / CUDA10.1 AVX / OpenCL SSE の各バージョンのダウンロードリンクを設置しましたのでご利用ください。
https://www.deepfake.xyz/deepfacelab/deepfacelab-build-06-20-2019/

返信する
クマシロ

お世話になっております。
すみません、こちらの問題ですが自己解決いたしました。
お忙しいとは思いますが、これからもブログの更新を楽しみにしております。
ありがとうございました。

返信する
やさ

初めまして
新しい素材でtrainするときは前の学習データはフォルダから移動した方がいいですか?
また、学習したデータの再利用は可能でしょうか
初心者の質問ですいません。

返信する
あさ

ちなみにですが、どのようにして解決されましたか?
私の方でもCUDA系のエラーが出てまして…

返信する
リポD

お世話になっております。

トレインH64では起動するのにH128では起動しない原因ってわかりますでしょうか

返信する
美香子

はじめまして。
こちらを参考にやってみているのですが、batファイルが何一つ動きません。
コマンドプロンプトが出てすぐ消えてしまいます。
環境はGTX760 icore7 8GB です。
cudaも含め必要なファイルはインストールしたのですが。。。
初歩的な質問ですみませんが、原因がわかりますでしょうか。

返信する
deepfake.xyz

返信遅くなりまして申し訳ないです。

DeepFaceLabのを使用するにはCompute Capability 3.5以上のビデオカードが必要になります。
美香子さんがお使いのGeForce GTX 760はCompute Capability 3.0ですので、このため正常に動作しないものと思われます。

どのGPUが、どのCompute Capabilityなのかはこちらのページ表がありますので、ご覧ください。
https://en.wikipedia.org/wiki/CUDA#GPUs_supported

返信する
カル

Trainが終わりSAEHDでConvertしようとしたら
No frames to convert in input_dir.
というエラーが出ました
原因はわかりますでしょうか?

返信する
ぽむぽむ

初めまして、早速質問なのですが trainをしてオプション選択してもrain Preview ウィンドウが立ち上がりません。学習出来てなさそうです、エラーメッセージが表示されてます。

Error: OOM when allocating tensor with shape[32,512,64,64] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc

mergedフォルダは生成されて画像も作成出来てますが、やはり合成はほとんど出来てないようです。
途中でやめて生成できた画像のみで、コンバートしてみたら動画は出来ました(ほとんど元の動画と変わらない)

CPU raizen5 3600
グラボ GTX1070
DeepFaceLabCUDA9.2SSE
CUDA9.2

翻訳ソフトかけてみましたが、エラーの内容を理解できませんでした。
原因は何なんでしょうか? 返信お待ちしております。

返信する
タロウ

DeepFaceLab_CUDA_10.1_AVX_build_10_19_2019
を使って制作してみたのですがサイトに記載してあるように
このバージョンでは、顔を合成した部分に正方形のエッジが明らかに見えたりしてしまいます
DeepFaceLabCUDA9.2SSE_build_06_20_2019.exeはサイトリンクからDLできますが
CUDA10.1の06_20_2019.exeは入手することはできないのでしょうか?
またそれ以外の方法で顔の周りの四角を自然な感じにする事はできないのでしょうか?

返信する
mabo

リポD様

バッチサイズを下げたらうまくTRAIN H128が起動したとのことですが、いくつからいくつへ変更されたのでしょうか。
当方、H64は起動しますがH128は学習が始まらない状況のためお教えいただけると幸いです。

返信する
ぽむぽむ

色々調べてグラボの性能不足(おそらくメモリ不足)と判明し、軽量版を使用したら動きました、バッチサイズを落としても動作するのかはまだ試していませんが、とりあえず解決しました。

お騒がせしました、すみません。

返信する
lol

train時のオプションにてSrc face scale modifier %というものが表示されますがどういったものなのでしょうか。

返信する
Noob

行程3の顔の抽出がうまくいきません。
以下4) data_src extract faces S3FD best GPU.bat開始後のログです。

Performing 1st pass…
Running on Advanced Micro Devices, Inc.. Recommended to close all programs using
this device.
Using plaidml.keras.backend backend.
Exception: Traceback (most recent call last):
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\DeepFaceLab\joblib\S
ubprocessorBase.py”, line 59, in _subprocess_run
self.on_initialize(client_dict)
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\DeepFaceLab\mainscri
pts\Extractor.py”, line 79, in on_initialize
self.e = facelib.S3FDExtractor(do_dummy_predict=True)
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\DeepFaceLab\facelib\
S3FDExtractor.py”, line 17, in __init__
self.model = nnlib.keras.models.load_model ( str(model_path) )
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\keras\engine\saving.py”, line 419, in load_model
model = _deserialize_model(f, custom_objects, compile)
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\keras\engine\saving.py”, line 225, in _deserialize_model
model = model_from_config(model_config, custom_objects=custom_objects)
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\keras\engine\saving.py”, line 458, in model_from_config
return deserialize(config, custom_objects=custom_objects)
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\keras\layers\__init__.py”, line 55, in deserialize
printable_module_name=’layer’)
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\keras\utils\generic_utils.py”, line 145, in deserialize_keras_object
list(custom_objects.items())))
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\keras\engine\network.py”, line 1032, in from_config
process_node(layer, node_data)
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\keras\engine\network.py”, line 991, in process_node
layer(unpack_singleton(input_tensors), **kwargs)
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\keras\engine\base_layer.py”, line 457, in __call__
output = self.call(inputs, **kwargs)
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\keras\layers\core.py”, line 687, in call
return self.function(inputs, **arguments)
File “D:\DFLBuild\DeepFaceLab\test.py”, line 558, in
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\plaidml\keras\backend.py”, line 432, in constant
return variable(np_value, dtype=dtype, name=_prepend_name_scope(name, ‘const
ant’))
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\plaidml\keras\backend.py”, line 1667, in variable
_device(), plaidml.Shape(_ctx, ptile.convert_np_dtype_to_pml(dtype), *value.
shape))
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\plaidml\keras\backend.py”, line 88, in _device
devices = plaidml.devices(_ctx)
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\plaidml\__init__.py”, line 1066, in devices
_setup_fail(“No devices found.”, enumerator.invalid_devs)
File “C:\jww\DeepFaceLab\DeepFaceLab_OpenCL_SSE\_internal\python-3.6.8\lib\sit
e-packages\plaidml\__init__.py”, line 1054, in _setup_fail
message, available))
plaidml.exceptions.PlaidMLError: No devices found. Please run plaidml-setup. The
following devices are available:
b’opencl_cpu.0′
b’opencl_amd_oland’
b’opencl_cpu.1′

PlaidMLErrorとありますが疎いもので何の事やらさっぱり…

返信する
ここ

初めまして。新参者ですが、参考にさせていただいてます。

自分もあささんやアキョウさんと同じく下記が出ます。
from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory

PCスペックは同じ環境16G 2070S です。
DDU行いましたが、変わらずでした。

しかし問題なく作業は進み、動画状態までいくことは可能でした。

パッチサイズ20で設定しているのですが4?に変更されてさ行されているのかどうかの判断ができないのでわかりませんが、パッチサイズ4の場合は画像プレビューが4*5列の20マスになる であってますでしょうか?

また、パッチサイズが小さいとクオリティ的には下がるようですが、4で学習度合い0.2と
32で学習度合い0.2では別のクオリティ内容で別のものなのでしょうか?
バッチサイズ4でも32でもトータル的な数値で学習度合いが0.2で同じクオリティなるのでしょうか?

ご教授お願い致します。

返信する
ココ

投稿更新される前に連投で申し訳ございません。

私もあささんとアキョウさんと同じくfrom device: CUDA_ERROR_OUT_OF_MEMORY: out of memoryなのですが、

コマンドプロンプトでnvidia-smiと入力するとメモリのほとんどを一つのプロセスで使用してるとでませんか?(私の場合は8GB中7GB以上を使っていると出ました)

tensorflowのプロセスの使用制限を設定してやるとうまくいくかもしれません。

というところまでは分かったのですが、なにぶん素人ですので、ここまでが限界でどうしたらいいかわからない状況ですw
以降の方法どなたかにパスしますので、ご解説お願いいたします。

参考サイト載せておきます。
https://blog.amedama.jp/entry/2017/06/07/220723

CUDA_ERROR_OUT_OF_MEMORY: out of memory
の上記エラーと全く原因と関係無いようでしたら申し訳ないです。

返信する
deepfake.xyz

DeebFaceLabはbuildいくつのものをお使いでしょうか。

私はGTX 1080 Tiを使用しているので、環境が異なるので参考になるか分かりませんが、最近のbuildのものを使うと「CUDA_ERROR_OUT_OF_MEMORY: out of memory」のエラーが出ました。
「build_06_20_2019」だとエラーは出ないので、私の環境ですとbuildの違いによるものかと思われます。

https://www.deepfake.xyz/deepfacelab/deepfacelab-build-06-20-2019/
こちらのページに「build_06_20_2019」のCUDA9.2 / CUDA10.1 SSE / CUDA10.1 AVX / OpenCL SSE の各バージョンのダウンロードリンクを設置いたしましたので、お時間ありましたら、一度「build_06_20_2019」も試してみてください。

返信する
deepfake.xyz

新しく学習を始める場合は、まずworkspaceフォルダ内をどこか別のフォルダに退避させます。次に「1) clear workspace.bat」を実行するとworkspaceフォルダが初期化されますので、ここに新しい素材data_src.mp4とdata_dst.mp4を入れて新しい作業を始めます。

DeepFaceLabのフォルダはいくつ作っても問題ないので、わざわざ上記のように移動させるより、DeebFaceLab本体のフォルダを別の学習用に新しく用意したほうが便利かもしれません。

返信する
まさ

いつも参考にさせていただいており、ありがとうございます。
精度の高い動画ができず悩んでおります。
正面を向いた顔は、ある程度見られるものができるのですが、顔を斜めに向けたり下を向いたりすると、とたんに歪んだ顔になってしまいます。
学習回数は12,000回、4,5列目は0.2に近い数字まで学習させています。
Deepfacelabは正面だけしか難しいでしょうか。
アドレスいただけますと幸いです。

返信する
deepfake.xyz

ご覧いただきありがとうございます。

まず、学習回数が12,000回だと少ないと思います。
私の環境では4~5万回学習すると、顔全体が若干ぼやけていますが、ある程度見れるものになります。
これをさらに学習して10万回ぐらいまで学習すると、4~5万回あたりだと発生していた、顔のぼやけがほぼなくなり、目鼻立ちや、顔のパーツの輪郭がしっかりしてきます。

ただ顔が横や斜めを向いたときに、しっかりと顔を再現できるかは、素材に次第になります。
例えばdata_srcに正面ばかりを向いた画像しかないのに、data_dstで横顔などがあれば、その部分はうまく再現することはできません。
DeepFaceLabは機械学習とはいえ、真正面の顔画像から、横顔や上下から見た顔を生成するなんてことはできません。

ですので、data_dstで横顔があるのであれば、data_srcにも同じような角度から見た画像が必要です。
それも数枚とかだけではなく、そこそこの量が必要かと思います。

色々な角度から写した時のボヤけや歪み等の問題は学習回数を重ねれば改善されるという問題ではないです。

返信する
まさ

管理人様

ご回答ありがとうございます。
お礼が遅くなり申し訳ございません。

これからも参考にさせていただきます!

返信する
ぴよ

参考にさせていただきながら使用しています。
train実行後、いくつかの設定が終わった後に「Runnning CPU」と出てきてGPUでtrainを行っていません。
どのようにすればGPUを使用できるのでしょうか。

返信する
deepfake.xyz

よろしければ、PCの構成等を教えていただけますでしょうか。
加えてDeepFaceLabはbuildいくつの、どのバージョンをお使いでしょうか。

コマンド画面をコピーしたものを貼っていただいても構いません。

返信する
kyouko_magica

DeepFaceLab (H128) 境界線問題
境界線問題解決した
MODEL.py見ると前までのやつはデフォルトでerodeとblurが+100になってたみたい

返信する
deepfake.xyz

なるほど、そういうことなんですか。
最近のbuildでもblurを+100にすれば良いんですね、また試してみます。
ありがとうございます。

返信する
kyouko_magica

最新版になると、グラボの要求スペックが上がっている気がします。
主にSAEHDモデルとかSAEモデルの話で
H128やDFは大きな差は無いかもしれません。
バッチ数を下げないと、同じ設定では動作しないかも知れません。
その替わり、モデルの完成が速くなった様な気もします。
これは自分が、ソフト使用当初より、src画像を厳選する様になったからかも知れません。
途中の版から顔抽出の精度が上がっています。
抽出も、し直してみるといいかもしれません。
途中の版からConvertオプションにFAN-dstとかできたので、
顔の前に前髪などの障害物がある動画の処理も、ある程度いまくいきます。
顔の前に前髪などがかかると、従来はそこにも顔を合成しようとして、
ボケボケ、前髪が消える感じになりましたが、
顔の前の障害物はdstの物を生かそうとする様です。
H128とかなら、旧版で作成したモデルもそのまま引き継ぎ可能かと思います。

返信する
kyouko_magica

DFモデルはフルフェイス、顎の輪郭など顔のより広い範囲をカバーして、
解像度が128×128なので、H128、ハーフフェイスで128×128の物より、
実質的な解像度は下がりますが、
フルフェイスの方が、よりsrcに似せやすい傾向があります。
DFはH128よりバッチ数を上げることができました。
2のn乗ではないバッチ数ですが。(RTX2080 8G)
従ってモデルの完成が速い事は利点です。
顔があまりアップで写っていないdst動画の場合、
DFモデルを検討する価値は十分にあります。

返信する
Yellow

こちらの記事を参考に良い物が出来ました
ありがとうございました

いつかはSAEHDで作ってみたいですね

返信する
kyouko_magica

フォーラムのダウンロードスレッドに、有志が作成したH256モデル、DF256モデルが上がっています
https://mrdeepfakes.com/forums/forum-downloads
公式サポートではないので、自己責任で使用してください
256モデルは当然、実行可能なバッチ数が下がり、初回はモデルの完成が遅くなります。
2回目からはsrcごとにモデルを分け、モデル再利用により、かなり完成時間が短縮されます。
src Aさんからsrc Bさんに切り替えた時もモデル再利用した方が完成が速いです。
別人であっても、未学習より、「人の顔」を学習済の方が速いです。
H256、DF256はSAEHD256より軽く、バッチ数を上げられます。
SAEHD256モデルよりは完成が速いです。

返信する
たいじ

失礼します。
最近ここで勉強させてもらい始めました。
現在最初から入っている動画で練習しています。
trainH64では学習ができているのですが
trainH128だとTraining previewもでてこず学習が開始されません。
スペックはCore(tm) i5-7500 @3.40GHz GTX1060 3GBなのですが
スペックの問題でしょうか?

返信する
kyouko_magica

DeepFaceLabですが、CUDA、CUDNNは必ずしもインストールしなくても、
DeepFaceLab内部フォルダに抱えているCUDA、CUDNNを使用しますので、
DeepFaceLabは動作する様です。
他のDeep LearningソフトでもCUDA、CUDNN使用するかもしれないので、
CUDA、CUDNNはインストールしておいてもいいかも知れません。
waifu2x-caffeなどは、あればCUDNNを使用しますし。

返信する
たいじ

ただいま勉強中なのですが、
過去記事をあさっていたら

推測でしかないんですが、1060なのに1080+anyGTX版のDFLで始めちゃったので
CUDAが機能せず、CPUでトレインしてたっぽいです。常に使用率100%で唸ってた
ので…。それでDFLをCUDA9.0版に、CUDA9.2を9.0にしたら速くなりました。
iter(epoch?)は一時間で300だったのが3700になりました。ホントに助かりました。

この内容が把握はできてないのですが、
train中自分もcpuが100%になっています。
cpu 0 という値が役50%です。
この方のように自分もCUDAが起動していなくてなにか対応したほうがいいでしょうか?

返信する
キャベツ太郎

多くを参考にさせて頂いております。ありがとうございます。

ヘアースタイルによる合成時の不具合…?なのですが、基本srcとdstのモデルのヘアースタイル等は似ている事が前提と思います。
dstモデルが額を出し、srcモデルは前髪がある場合、トレーニング後、
やはりdstモデルと合成されるとsrcモデルの前髪残像が残っています。これは
どうにもならないのでしょうか。
また、顔の合成境に髪の毛が垂れ下がっていますと、状況によっては顔の合成境にて
黒い影が発生します。これもまたどうにもならないのでしょうか。
何か対策はあるのでしょうか。

返信する
Yellow

お世話になります
CUDAはタスクマネジャーのGPUの項目で動いているか確認できますよ

私も質問なのですがtrainを一時中断してバッチサイズを変更し再開は出来るのでしょうか?
もし出来るなら教えて頂きたいです

返信する
Yellow

前髪についてですが新しいバージョンの合成時に選べる
FAN-dstは試しましたか?ヘアースタイルを気にする必要がなく楽かと思います
ただ出来上がりがdstモデルに寄ってしまいますが

返信する
kyouko_magica

trainを一時中断して、再開する場合、
2秒以内にEnterを押せば、一部の設定パラメーターは変更できます
バッチサイズは、再開時に変更可能なパラメーターです
もちろん、VRAM容量が許すバッチサイズでないと、エラーで落ちたりします

返信する
kyouko_magica

顔認識、顔抽出は、目、眉毛、鼻、口、髪のかかっていない頬、顎が認識の対象です。
前髪は顔ではなく、眉毛の前にかかる場合、顔の前の邪魔な障害物扱いです。
顔の輪郭は認識しますが、顔入れ替えの対象外です。
なのでsrcとdstの顔の輪郭がある程度は似通っていないと、違和感があります。
srcの人が、dstの髪型になる訳ですが、それでも違和感がなく、似合う事が前提です。

返信する
kyouko_magica

> ただ出来上がりがdstモデルに寄ってしまいますが
SAEHDモデルを使用してはいないでしょうか?
SAEHDモデルはrandom_warp機能があり、これはsrcとdstの表情を平均化します
srcには無いdstの表情が再現できると言うメリットがあります
しかしdst寄りになってしまうので、最初random_warpをOnにしてTrainした後で
random_warpをOffにしてTrainする必要があります
Trainの仕上げに true_face_trainingをOnにします。仕上げの時以外はOffにします
true_face機能は、あらかじめdst寄りになる事を見越して、src寄りにする仕上げ用です

返信する
kyouko_magica

srcに前髪などの、顔の前に障害物がある場合、
Convert時にFAN-prdを含むmask modeでConvertします
これでも上手く行かない場合があります
その場合は、非常に面倒な手作業が必要ですが
Mask Editorを使用して、前髪は顔ではなく、顔の前の邪魔な障害物と言うことで
手動で前髪をMaskする作業が必要となります
原則として1コマ1コマ手作業なので、非常に面倒であり、時間はかかります
srcの前髪が邪魔な場合、面倒な手作業が必要ですが、できることはできます

返信する
mosawo

詳しくてわかりやすい記事ありがとうございます。持て余していたPCのスペックをフル活用できとても楽しんでいます。大昔にMP3エンコードをやっていた時を思い出しました。
初歩的なことで恐縮ですがいくつか質問させて下さい。
1)トレーニングプレビュー画面に表示されるグラフの色、青と黄色がありますがどういう意味しょうか。
2)出来上がった動画に満足出来ずもっとトレーニングをやりたいと仮定します。その場合たとえばTrain128.batを起動すれば継続扱いでトレーニングしてくれるのでしょうか。もしくはまた1からトレーニングをやり直さないといけないのでしょうか。
3)質問ではないのですが、本記事もとてもわかり易いのですがコメントにも有用な情報が盛り沢山です。ただしコメント数が多く情報を探すのがだんだん困難になってきたと感じます。親記事へのフィードバックを行っていただければ大変ありがたいです。勝手なことで誠に申し訳ありません。

返信する
urusi

DeepFaceLabは3つの種類のバージョンにしか対応してないですが、それ以外の対応してないPCでもSRCの作成は可能ですか?
extract images from video data_src.bat等SRCの作成のみを一般的なスペックのノートPCで動かしたいのですが、バージョンが対応してないです。
バージョン対応させることは可能なのでしょうか。

2.素材動画を全フレーム画像書き出し
3.顔部分のみを抽出
4.誤検出された画像を削除
つまり2) extract images from video data_src.bat」等のみノートPCで行い、TRAIN等の後の工程はクラウドで行いたいと考えています。

使用OS:windows10 32bit
CPU:Core i3 330M 2.13GHz/2コア
RAM:4GB
GPU,CUDAなし

返信する
kyouko_magica

DeepFaceLab インストール方法

https://mrdeepfakes.com/forums/thread-guide-deepfacelab-explained-and-tutorials

DOWNLOAD HERE
https://drive.google.com/drive/folders/1BCFK_L7lPNwMbEQ_kFPqPpDdFEOd_Dci

または

https://rutracker.org/forum/viewtopic.php?p=75318742

ダウンロードする
マグネットリンクによる分布のダウンロード

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

返信する
kyouko_magica

DeepFaceLab 重要事項

srcとdstの顔の輪郭が似通っている事
srcとdstの相性
srcはdstの髪型になるが、違和感の無いこと
srcはdstの体型になるが、違和感の無いこと

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

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

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

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

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

返信する
kyouko_magica

CUDAのメモリアロケートエラーですが、
Nvidiaのドライバを変に最新版にしてしまったからかも知れませんね

NvidiaドライバとCUDAとcuDNNとTensorflow-gpuとPythonのバージョンの対応
https://qiita.com/konzo_/items/a6f2e8818e5e8fcdb896

Nvidiaドライバ,CUDA,cuDNN,tensorflow-gpu,Pythonのバージョンの対応はとても重要らしい。
NvidiaドライバはCUDAのバージョンに合わせて,CUDAとcuDNNとPythonはtensorflowのバージョンに合わせる。

tensorflow-gpuを使用する場合、Pythonは最新版にはできないでしょう
CUDAも10.2だとビルト例が無いのでは?

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 がある場合
DFL同梱の物を上書きコピーした方がいいと思います
よく分かりません。おまじないです。

返信する
ココア

はじめまして。
上にも何件かコメントありますが、私もCPUが100%になってしまうのにGPUが全く動いていないように見えます。
何か導入に不味い部分があったのでしょうか、それともCPUがそこまでハイスペックじゃないので、CPUがボトルネックになるのは普通なのでしょうか。
CPU:i5 4590 3.3GHz
GPU:GT710
RAM:12GB

返信する
agm84d

ゆーた氏のコメント(2019年8月15日)
>6番まではうまくいったのですが、最後の7番で「reference_file not found.」と出て処理されません。。。

と同じ現象が発生しましたが解決しました。原因はdata_dst.mp4がworkspaceに無かったためでした。
data_dstフォルダ内の画像を作成した元data_dst.mp4をworkspaceに置いたところ正常に「7.書き出した画像を動画にする」が完了しました。

返信する
kyouko_magica

GPUがVRAM 2GBでFAN LESSも可能な物であると厳しいと思います
GPUはハイスペックのゲーマーの人が使用する様な、FANありで
VRAM容量が多くないと、遅くて事実上無理だと思います
CPUがボトルネックとなるのは、尺の長い動画を、FAN-xxでConvertした時などです
GT710はせいぜい動画再生用で、ゲームやDFLには適していません
グラボのスペック上無理です
2060Superあたりを購入する事です。4万円台と安いです。5万円までしません

返信する
ココア

GPUがロースペックなのは理解しているのですが、
train動かしてみるとH64ですらCPUの方がボトルネックになっているので、
そもそもGPU使えていないんじゃないか?と思った次第です。
GPUが使えているなら、CPUよりもGPUがボトルネックになることを想定していたので…

タスクマネージャで見てみても、GPUに全く負荷かかってないんですよね。
コンソールウインドウにはRunning on GeForce GT 710と書いているんですが、
処理がGPUで行われていない(CPU上で行われている?)ように見えるんです。

返信する
kyouko_magica

初心者の方は、下記に一通り目を通せばいいです
https://seesaawiki.jp/dfl/
http://phoebe.bbspink.com/test/read.cgi/ascii/1578836130/
https://mrdeepfakes.com/forums/thread-deepfacelab-explained-and-usage-tutorial
https://find.5ch.net/search?q=AI%E3%82%B3%E3%83%A9

読めば分かるような質問は受け付けてはいません

このサイトも相当に簡単にやさしく書いてくれていると思いますけれどもね
貧弱なグラボにより、うまくいかない場合は、素直にグラボを購入するしかないかと思います

返信する
なかむら

お疲れ様です。

何度か動画を作って練習しています。
今回はなぜか今まで通りしていたつもりなのですが
最後の8) converted to mp4.batのところで
[image2 @ 0000021fb9beb4c0] Could find no file with path ‘C:\DeepFaceLabCUDA9.2SSE\workspace\data_dst\merged\%5d.png’ and index in the range 0-4
C:\DeepFaceLabCUDA9.2SSE\workspace\data_dst\merged\%5d.png: No such file or directory

というのがでて動画を作成することができませんでした。
mergedにもちゃんと動画が書き出されており原因がわかりません。
どういった理由が考えられますでしょうか?

[image2 @ 000002492335b4c0] Could find no file with path ‘C:\DeepFaceLabCUDA9.2SSE\workspace\data_dst\merged\%5d.png’ and index in the range 0-4
C:\DeepFaceLabCUDA9.2SSE\workspace\data_dst\merged\%5d.png: No such file or directory

mergedにも動画が今まで通り書き出されおり原因がわかりません。
どういったような理由が考えられますでしょうか?

返信する
いのうえ

自分もその現象に陥っていましたが、mergedに最初のほうの番号の画像ファイルを追加したら正常に動画にすることができました。000001から000008の画像を消してしまっていませんか?
僕は000004から追加したら動くようになりました。

返信する
見習い

お疲れ様です.

このサイトのおかげでdeepfake動画作成自体は順調に行えているのですが、trainにおけるCPUおよびGPUへの負荷について疑問があります.
GPUはRTX2060(vRAM 6GB)を使用していますが、H64にてbatch:64で実行した場合にタスクマネージャーを確認したところ,
GPUにはほとんど負荷がかかっていない(vRAMは5GBほど使用している)にもかかわらずCPUの使用率が60%~70%ほどあり冷却ファンが一生懸命にCPUを冷やしているという状況でした.
これは正常な挙動なのでしょうか?

返信する
ハネクリ

とても分かりやすい記事でした。
しかし、トレーニングは正常にできるものの変換が以下の通り出て、顔が差し替えられる側の画像の原画のままコピーされます。どこか間違えたのかと思い、(1)で一度workspaceを消去してやり直しましたが出来ませんでした。原画は全てで一画像も顔認識出来ていないようです。教えていただきたいです。
o faces found for 05192.png, copying without faces
Converting: 100%|##################################################################| 5201/5201 [01:09<00:00, 74.40it/s]
Done.
続行するには何かキーを押してください . . .

返信する
kyouko_magica

Windows10のタスクマネージャーでは、
パフォーマンス GPU
3D, Copy, Video Encode, Video Decordはほとんど負荷無しに見えますよ
CUDAコアとVRAMのみ使用している感じです
ELSA System Graphと言うソフトを使用すれば
GPU LoadでGPUの負荷が見えます
GPU Loadが100%に行ったり、それなりに高い負荷であれば、正常にGPUでtrainできています

返信する
kyouko_magica

DeepFaceLabではCUDA、cuDNNはインストール不要ですね
CUDA、cuDNNはDeepFaceLabインストールフォルダ配下の物を使用します
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA削除しても何の問題もなく動作します
おそらく、前の違うFaceSwap系のソフトがCUDA等インストールしてくださいだったからでは?
DeepFaceLabではインストール手順が少なくて済みます
DeepFaceLabの最新のソフト等入手はこちら
https://github.com/iperov/DeepFaceLab
Windows Google drive
または
Windows Torrent page

DeepFaceLab 1.0 – Usage tutorial (partially outdated)
https://mrdeepfakes.com/forums/thread-dfl-1-0-guide-deepfacelab-1-0-explained-and-tutorials-partially-outdated

返信する
kyouko_magica

初心者の方は、このサイトを一通り見た後で、下記に目を通すといいかも
DeepFaceKab(DFL) FAQ
https://seesaawiki.jp/dfl/d/DFL%20FAQ
DFL トラブルシューティング
https://seesaawiki.jp/dfl/d/DFL%20%a5%c8%a5%e9%a5%d6%a5%eb%a5%b7%a5%e5%a1%bc%a5%c6%a5%a3%a5%f3%a5%b0
DFL-使用方法のチュートリアル(公式チュートリアルのGoogle翻訳を若干手直し)
https://seesaawiki.jp/dfl/d/DFL-%bb%c8%cd%d1%ca%fd%cb%a1%a4%ce%a5%c1%a5%e5%a1%bc%a5%c8%a5%ea%a5%a2%a5%eb
よくある質問-DFL1.0(公式)
https://seesaawiki.jp/dfl/d/%a4%e8%a4%af%a4%a2%a4%eb%bc%c1%cc%e4-DFL1.0

返信する
kyouko_magica

DeepFaceLabの最新版は2.0になりました
DeepFaceLab_NVIDIA_build_date.exe
NVIDIAのGTX/RTXのみサポートです
RTXでもCUDA 9.2で動作します
CPUとAMDのサポートはなくなりました
モデルはQuick96とSAEHDのみになりました
DF/H128/LIAEF/SAEはなくなりました
FANSEGモデルもなくなりました

返信する
taka

data_dst  に使う動画に複数人移っている場合、一人の人を指定してうまく合成する方法はないでしょうか?

返信する
Yosh

Radeon RX5700XTを使っていたのですが、DeepFaceLab 2ではRadeonはサポートされていないんですね。GeForceを買うか迷っています。時間短縮がアップデートのメインなのかなと思ったのですが、1.0と比べて2.0で作った動画のクオリティは目で見て分かるほど向上しているのでしょうか?

返信する
deepfake.xyz

DeepFaceLab1.0と2.0の違いですが、学習時間短縮のメリットも大きいですが、train時のオプションや細かな設定がさらに充実したのと、動作の軽量化行われています。
一番大きいのはtrain時の解像度が1.0のときは最高でも128×128(px)でしたが、2.0では最高512×512(px)で学習することができることでしょう。
128では、解像度不足な感じもあったので、この点は重要です。
加えて学習時の顔範囲も選択できるようになったので、前髪が写り込んでしまう場合などにも対応できるようになりました。

返信する
ひよこ

こちらのサイトのわかりやすい説明のおかげでi5,iris plus graphics(内蔵),ram 8GB,vram 128MBの低スペノートですがとりあえず完成まで持っていけました!ありがとうございます!1日半かけて学習させても2300回くらいしか学習できませんでしたが(笑)
いつかちゃんとしたGPUつんだPCつかってやりたいですね…

返信する
deepfake.xyz

Iris Plus Graphicsでも、できるんですね。
情報ありがとうございます!

返信する

KENKEN へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA