見出し画像

顔 LoRA を ADetailer で修正して再現度を高める

SD 1.5 で顔 LoRA の再現度を高める方法として、ADetailer での補正が簡単かつ効果的です。この記事では、ADetailer の基本的な使い方と顔 LoRA との組み合わせ方を紹介します。

ADetailer とは

A1111 版 Web UI の拡張機能で、生成後の画像に対して手や顔を自動検出・自動補正するためのソフトウェアです。拡張機能は以下の URL で公開されています。

インストール方法

上記のサイトに書かれている通りですが、2024-01-04 時点でのインストール方法について記載します。

  1. Extensions” タブを開いてください。

  2. Install from URL” タブを開いてください。

  3. URL for extension’s git repository” に https://github.com/Bing-su/adetailer をコピペします。

  4. Install” ボタンを押して5秒程度待ってください。

  5. 全体を再起動してください。

※ モデルを Hugging Face からダウンロードする必要はなくなりました。

設定方法

txt2img の画面に ADetailer というタブが出ていると思います。
Enable ADetailer にチェックを入れて、機能を有効にします。

ADetailer では 1st と 2nd の二回適用することができますが、今回は 1st だけを設定して顔の自動検出・補正を実行させることにします。

設定項目がタブに隠れていますので、次のように設定してみてください。
デフォルトから変更すべき部分を赤字にしてあります。

  • ADetailer model : face_yolov8n.pt (顔認識用モデル)

  • ADetailer prompt : 空欄

  • ADetailer negative prompt : 空欄

  • Detection :

    • Detection model confidence threshold : 0.7
      「顔」と認識する閾値で 0.7 から 0.8 程度がよいでしょう。
      デフォルトの 0.3 では背景にいる人なども補正してしまいます。

    • Mask only the top k largest : 1
      「顔」が複数出るとき、「顔」っぽいものの上位k個を補正します。
      これは1にします。

    • Mask min area ratio : 0

    • Mask max area ratio : 1
      マスク面積の最大値・最小値を制限するためのパラメータです。
      [0, 1] で問題なく動作します。

  • Mask Preprocessing

    • Mask x(→) offset : 0

    • Mask y (↑) offset : 0
      検出したマスク領域を微調整します。

    • Mask erosion (-) / dilation (+)
      検出したマスク領域を微調整します。
      erosion (収縮)、dilation (拡張)です。

  • Inpainting

    • Inpaint mask blur : 4
      デフォルトで問題ありませんが、画像サイズによって微調整するとより良い結果になります。

    • Inpaint denoising strength : 0.6
      0.4 ~ 0.6 程度で調整します。
      顔 LoRA を強めに適用する場合は 0.6 を基準にしてよさそうです。

    • Inpaint only masked : ✅
      非常に大事な項目です。マスクエリアだけを再描画します。
      デフォルトで ON ですが、もしも OFF になっていたら ON に戻します。

    • Inpaint only masked paddings, pixels : 32
      デフォルトで問題ありませんが、画像サイズによって微調整するとより良い結果になります。

    • inpaint width : 512

    • inpaint height : 768
      width x height は 512×768 と縦長にすることをおすすめします。
      顔は縦長なのでおさまりがよくなります。

    • Use separate … : チェックを入れない(デフォルト)

    • Restore faces after ADetailer : チェックを入れない(デフォルト)

画像生成

Enable ADetailer にした状態で、プロンプトに LoRA を設定して通常通り生成してみてください。画像生成後に顔が補正されるステップが追加されるはずです(Hires.fix の使用も問題ありません)。

権利の都合で実際の顔 LoRA を使用した例を掲載することができないのですが、ADetailer の効果の例として女性の顔を男性の顔に置き換えてみます。

  • Prompt : 1woman

  • ADetailer prompt : 1man

女性の顔の部分だけがマスクされて inpaint で男性の顔で上書きされていることがわかります。つまり、これと同等のことを顔 LoRA で実行できればよいということです!

注意点ですが、inpaint 前の画像があまりに離れすぎているとうまくいかないので、元のプロンプトにも LoRA を仕込むとよいでしょう。


今回は、主に ADetailer の使い方と設定方法について説明をしました。
顔 LoRA を今までうまく適用できなかったという方は、ADetailer と組み合わせて出力してみてください。簡単で劇的に効果が出ると思います。

この記事が気に入ったらサポートをしてみませんか?