![見出し画像](https://assets.st-note.com/production/uploads/images/139431209/rectangle_large_type_2_21ef2ecdb06614aa614a7658bd31c11e.png?width=1200)
顔 LoRA を ADetailer で修正して再現度を高める
SD 1.5 で顔 LoRA の再現度を高める方法として、ADetailer での補正が簡単かつ効果的です。この記事では、ADetailer の基本的な使い方と顔 LoRA との組み合わせ方を紹介します。
ADetailer とは
A1111 版 Web UI の拡張機能で、生成後の画像に対して手や顔を自動検出・自動補正するためのソフトウェアです。拡張機能は以下の URL で公開されています。
インストール方法
上記のサイトに書かれている通りですが、2024-01-04 時点でのインストール方法について記載します。
“Extensions” タブを開いてください。
“Install from URL” タブを開いてください。
“URL for extension’s git repository” に https://github.com/Bing-su/adetailer をコピペします。
“Install” ボタンを押して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
![](https://assets.st-note.com/img/1714772543018-ku0KvOk9Sl.png?width=1200)
女性の顔の部分だけがマスクされて inpaint で男性の顔で上書きされていることがわかります。つまり、これと同等のことを顔 LoRA で実行できればよいということです!
注意点ですが、inpaint 前の画像があまりに離れすぎているとうまくいかないので、元のプロンプトにも LoRA を仕込むとよいでしょう。
今回は、主に ADetailer の使い方と設定方法について説明をしました。
顔 LoRA を今までうまく適用できなかったという方は、ADetailer と組み合わせて出力してみてください。簡単で劇的に効果が出ると思います。
この記事が気に入ったらサポートをしてみませんか?