deepfacelab 勝手にFAQ

Q:グラボはどれがいい?

A:コスパ的にはメモリ12GBある3060が安定

余裕あるなら一番良いのを買うのが一番良い(が最新すぎるとアプリの対応がまだだったりすることもある)

 

 

 

Q:FACESETの抽出はWFがいい?HEADがいい?

A:

SRC(素材側)は将来の拡張を見据えてHEADの1024

DST(移す先)側はWFの512くらいで十分

 

Q:どのモデルでやればいい?

A:mrdeepfake見てる限りLIAE-UDが安定の様子

WFのresolution256でそこそこの解像度で大体似る

 

アップで見られるように320や384あたりまで頑張っても良いが

慣れないうちは256くらいで練習しといた方が無難

(320超えてくると遅いし不安定)

(

 

 

ちなみにWFの解像度256自体はグラボのメモリ6GBでも動く

6GBだとバッチ数を16程度まで上げられないため試行錯誤する段階だと時間が無駄にかかる

ただし色々なオプションを切るか

メモリを本体の方に乗せる必要あったりする

WFの解像度192だと色々なオプションonでも普通に動く

 

 

WF未満はおでこあたりの髪の毛まで移植しきれないのでどうしても似ない

現状WF一択

 

headは環境によってはバグる

 

設定は慣れないうちは

resolution256

randomwarp on だけでok

 

randomwarp は onにすると顔を作る段階では処理速度向上

顔の画質を上げる段階ではoffにすると処理速度向上

 

大体仕上がってきたら

ランダムワープoffにして

gan値を0.1~0.5程度にして仕上げる

 

 

 

Quick96は無茶苦茶軽くて一瞬でできるが

マージするときに確かオデコあたりまでしかswapできない

 

なのでtrain中は似てるなーとなってもmergeの段階だと全然似なかったりする

オデコの上の髪くらいまでSWAPできるように最低でも顔のサイズはWFが必須になる

 

ただWFだと

DSTが茶髪で長髪

SRCが黒髪だとオデコの上のあたりまでしかSWAPできない関係上

髪色や髪型までDSTとSRCが元から似ている必要がある

 

ちょっとくらいの違いならマージ段階でブラーやらerodeやらの設定で頑張ってごまかせる

 

headはかなり無茶できるが重いしバグが起きるので面倒なので

エンジョイ程度でやるならやはりWFが安定

 

Q:綺麗に似せるコツは?

A:

一見して本人かなと見間違うくらいそっくりさんが似せやすい

 

全く別人と認識しているものを顔だけ全く同じにしても本人と認識しづらい

 

極端な話顔だけ画像ツールでコピペしても他の要素が違うと本人感が出ない

(顔は似ててもスタイル等が似てない等)

 

そっくりさんは画像ツールで顔だけコピペすると本人感が出てくる

 

似るのに大事な要素↓

 

小顔具合→顔サイズが違うとどうしても似きれない→マージ段階で顔を小さくできるがあまりにサイズが違うと元の顔がスワップした顔の下から出てくる

 

 

顔と体のバランス

手足の長さ

くびれ具合→意識の差が出やすいからここまであう人は本当に難しい

表情→本人がしない表情だと違和感が大きい場合がある

 

その他自分がここは本人の大事な特徴だと思っているところが似てるかどうかで大きな差が出てくる

 

ちなみに薄い顔に濃い顔を移す方が楽に似させられる

さらにメイクや表情が似てると楽

 

 

そんな人は確率的にほぼいないのが残念

なので似せられるかどうかはDSTの人選にどれだけ時間をかけるかという点も関わってくる

 

結局DSTとSRCの厳選部分が大事だがここをAIでなく人がやるのが現実

 

Q:簡単にやるコツは?

 

慣れないうちはDSTの動画のFPSを10くらいに落とすと楽ができる

これでも10秒で100フレームある

 

ちなみにFPS30フレームで1分とかやると1800フレームもいじらないといけないのでなかなか大変

どころか超大変

1枚1枚見ていくなんてとてもじゃないができない

 

 

正面オンリー動画が楽

変な方向向いてる動画は顔認識をいちいちやるのが面倒

 

顔の上や近くに余計なもの(特に手とか)が映っていないものが楽

 

画質が悪いと顔の認識がしづらい

動きが早くて顔がぶれてると顔の認識がしづらい

よって動きが少なくて高画質のが楽

 

 

Q:SRC素材はどんなのがいい?

最強は正面からの色々な表情をする高画質のインタビュー動画

顔も安定しやすい

 

 

足りないからと色んな動画からもってくると素材によっては顔が不安定になるというか色々と混じってしまうこともある

 

DSTでやっている表情と角度と同じようなものを用意する必要がある

SRCでアップだと魚眼レンズの要領で少し顔が歪んでしまうのであまりドアップのものは使いづらい

 

最初色々な動画からsrcを集めてtrainをしある程度形になったら

自分が似せたい顔だけのsrcだけ残してやると少し似てくる

 

src側で自分がイメージしている顔とは違う微妙な表情や顔を残すと完成したものもナンカチガウものができるので完成度の高い物を作るにはsrc側の厳選は必須

 

 

 

Q:X-segはどんな感じで使う?

 

顔の周りを囲う感じで行う

顎とかは顎の線のラインを丁寧に

髪の毛は髪の毛の内側のラインを適当にやるだけでok

300フレームなら20枚程度editした後train してapplyする

足りないならeditをもっとやっていく

 

そのあとmergeする時はxを何度か押して顔の範囲をx-seg dstあたりにして

eでブラーしてなめらかす感じで大体綺麗になる

 

 

 

Q:gpuのメモリ不足でもなんとか動かしたい

A:model_opt_on_gpuをoffにするとgpuのメモリではない方のメモリも使用するから動くようになることもある

ただし結構遅くなる

限界まで頑張った結果adabeliefやらのオプションをonにしたらメモリ不足でエラーになるときとか最後の手段で使えなくもない

 

Q:adabeliefは切ってもいい?

 A:実質adabeliefはtrue(ON)必須

ONにすると必要メモリ量が上がるが

"AdaBeliefは高い汎化性能、速い収束性、より良い安定性の3つを兼ね備えたオプティマイザー"

とのことで、綺麗に仕上がるし仕上がる速度も速くなる

強力なオプション

 

 

Q:モデルの使いまわしすると最初は似るが何度もやるとどんどん似なくなってくる(DST寄りの顔になってくる)

 

A:仕組み的にそういうものらしい

(LIAE-DFの場合)

〇〇_inter_AB.npy

〇〇_inter_B.npy

を削除(もしくは名前変えてバックアップ)して重みづけをリセットするとまたSRC寄りの顔になる

 

追記:とはいえDSTの顔が兄弟レベル程度に似てるくらいならこんなことしなくても追加で1,2日回せばがっつりsrcに似てくる

 

Q:顔の抽出に時間がかかる

A:Deepfacelabの顔抽出は非常に貧弱

faceswap等が高速であっという間に終わるのに対し(確か10枚/sとか)

deepfacelabで使う抽出機は1秒で1枚~程度しか抽出できない

 

30フレーム/sの動画で抽出なんてしようものなら

1分の動画でも1800フレームで20分以上抽出だけで時間かかりかねない

 

やはり動画編集ソフトで10フレーム/sあたりにしてから抽出するのが実用的(かも)

 

ちなみに角度が少しでもきつかったりすると抽出ミス多発するし

それを修正する機能も標準だと貧弱で非常に時間がかかる

deepfacelabの明確な弱点はこの抽出周りにある

 

(ほかにもdstにスワップした後に輪郭修正機能がやや貧弱なところもあるが)

 

 

 

楽なのはDSTも正面だけ、SRCも正面だけのインタビュー

これだと抽出ミスは少ない

 

しかし実際実用目的のDSTで正面オンリーの動画なんてほぼない

DST探しの旅に出るか、そこが改良されているアプリを使うか

 

 

ちなみにマニュアルで顔の輪郭を認識するときにどうあがいても輪郭がとれない時がある(顔がブレブレの時など)

右クリックをしてさらにマニュアルで顔認識することができる(ただし正面の顔だけ)

 

Q:表情があまり似ない

A:DSTでやっているのと同じ角度と表情のSRCが必要

それが足りないと無理やり予測してやるが足りない分だけ精度が下がる

 

DSTがSRCのやらない表情ばかりだと似せるのが困難になってくる

 

そういう意味でもやはり正面からのインタビュー動画同士は非常に楽に似せることができる

 

Q:SRCの素材集めが大変

A:DSTが正面が多い場合

SRCは正面からのインタビュー動画や電子版の写真集等からもってくると良かったりする

 

動画だと正面から高画質のものが少ないが

写真集はモデルの色々な角度の顔を高画質で撮っているのが多いので

 

Q:顔が体になじまない。顔色が体と合わない、顔が体と比べて浮く。顔だけ照明が違う

 

A:DSTとSRCの環境が違うとそうなりやすい

deepfacelabのmergeの際の色の設定はわりと貧弱なのでここでいじるのも限界がある

 

SRC側でDSTと同じ環境が用意できれば一番いいが、屋内(屋外)・照明の種類(強め・弱め・色等)が同じことはほとんどないのでSRCで一種類だけの素材を用意しても大抵顔が浮いてしまう(顔がなじまない)

 

よってSRC側で様々な環境のを用意してあげる必要がある

色々な顔色が用意されていると、trainの段階でうまく顔色が体になじむようになる

 

同じ人物でも環境(屋内・屋外その他)や照明で顔色が赤みがかったり青みがかったり、黄や肌が焼けたような色見になったりするが、いろいろなのを揃えるとここの問題はほぼ起きない

 

最低でもsrcは屋内のものと屋外のものくらい用意すると良いかも

 

ただし片側だけから強い照明・日光があたっているとかいう画像を使うと

それがそのままprd(生成された顔)に反映されたりするので注意

 

Q:やっぱり色が合わない

動画編集ソフトでDSTの色調調整すると良い

無料だとymm4とかでも色調調整できる

 

といってもymm4だと色が濃すぎる場合彩度を下げたり程度

それでも十分なパターンが結構ある

 

aviutlだと確か重すぎるファイル開くと重くなったりするので微妙に使いづらいが色々拡張性は高い

 

 

Q:VRAMは大量にあるはずなのにメモリエラーが出る

A:本体の仮想メモリの量を増やすと直るパターンもある

 

 

Q:眼鏡等が邪魔でうまくできない

 

A:基本的にそういうのはx-segでマスクをすると解決する

簡単なのなら自動でやってくれるのがもともとついている

 

dstにメガネがある場合は↓これをまず最初に使ってからtrainする

5.XSeg Generic) data_dst whole_face mask - apply.bat