【顔によって最適が異なる】フェイスタイプ(Face type)の正しい選び方
DeepFaceLab のバージョン 2 がリリースされ、顔だけでなく、頭部全てをスワップできるようになりました。
それに伴って、学習時にプログラムに与える顔データのオプションとして、フェイスタイプ(Face type)が追加されています。
では、今後はどのフェイスタイプを選択するべきでしょうか?
新しく追加されたものを利用した方が学習効率が良さそうに感じてしまいますが、公式のマニュアルによると、一概に新しいものが良いというわけではなく、場合によるみたいです。
今回は各フェイスタイプについて、適している顔の種類を説明していきます。
説明は基本的に、オプション: f を基準としています。
ちなみにそもそも PC のスペックが低く、高度な学習設定を利用できない場合は、Google が提供している Google Colaboratory を利用することで、業務用 GPU を無料で利用することができます。以下の記事を参考にしてみてください。
また、フェイスタイプに限らず、学習させる上で重要なポイントをまとめていますので、よろしければあわせてご覧ください。
フェイスタイプ別、最適なモデルデータ
まず、フェイスタイプを学習させる範囲の小さい順に並べると、
- h(眉毛から口まで)
- mh(h の範囲 × 30%)
- f(眉から顎まで)
- wf(顔全体)
- head(頭全体)
となります。最適はケースバイケースと言いましたが、より大きい範囲を覆うフェイスタイプの方が完成度が高くなるケースが多いです。
ただ、大きい範囲を覆うフェイスタイプには向かないモデルもあるため、条件に合うか確認しながら、徐々に範囲を絞っていくのが良いかと思います。
h (Half face)
オプション: h は Half face の略です。眉毛から口までのトレーニングを行うことができます。
場合によって、眉毛、口、顎を除いてマージすることができるため、f を使った際に不自然に途切れてしまう現象を避けることができます。
mh (Mid half face)
オプション: mh は、h を基準として、その 30%大きい領域をトレーニングします。
基本的な趣旨は h と同じですが、こちらは f を使った際に、眉毛・口は問題ないが、顎が不自然に途切れるような場合に向いています。
f (Full face)
オプション: f は、バージョン 1 で標準設定だったフェイスタイプです。
wf が f より大きい領域を覆うため、wf が上位互換のように感じますが、必ずしもそうではありません。
公式のマニュアルによると、額に髪の毛がかかっている場合には f が最も推奨されています。
これ以外のフェイスタイプが特別必要でない場合は、こちらをそのまま使用しても問題ないでしょう。
wf (Whole face)
オプション: wf は、f の領域をさらに拡大し、f でトレーニングできなかった額や顎先までカバーできます。
これにより、髪の毛を除く顔全体をマージさせたい場合に有効です。
ただし、現在の Deepfacelab の仕様上、今までの額を除く顔領域の学習と、顔全体の学習は別々に行われます。
学習には今まで以上に時間がかかってしまう点に注意してください 。
f でマージした際に眉毛が不自然に途切れたり、上下に 2 つできてしまう場合や、顎が中途半端に途切れてしまっていた場合は、wf が適切かもしれません。
head
オプション: head は文字通り、頭部全体を入れ替えることが可能です。
ただし、現在これが可能なのは髪が短いモデルに限られており、髪の長いモデルの場合には髪の毛が途切れてしまいます(入れ替え自体は可能です)。
入れ替え先、入れ替え元が共に短い髪である場合は、このオプションが最適と言えます。
※このオプションについては、切り出した後の各顔画像の解像度が 224px 以上であることが推奨されています。
モデルデータの出来を決めるのはフェイスタイプだけではない
ここでは、フェイスタイプ毎に最適なモデルデータを紹介しましたが、品質の高い学習をさせるためには、他にも注意すべきポイントがいくつもあります。
うまく注意すべきポイントをまとめていますので、こちらと合わせてご一読いただけますと幸いです。
手順に沿って作業していただくことで高品質なモデルデータを作成することのできるロードマップを用意しています。
こちらのページをご参照ください。