stable diffusionで人物画像を作ったとき、”fullbody”や”cowboy shot”などのプロンプトを使用して人物の全体像を写そうとすると、顔が崩れてしまったという経験はないでしょうか。
もしくは、作ろうとする画像サイズの設定によってもこうした現象は起きてしまいます。
Upscalerを使えば大抵改善されますが、画像の構図によっては崩れた顔のままサイズだけ大きくなってしまうことも。
プロンプトやネガティブプロンプトだけでは解決できない場合もありますよね。
そこで、ADetailerの紹介です。
これは画像内の顔部分を認識し、そこだけを高解像度にすることで顔が崩れてしまうのを防ぐ拡張機能です。

ADetailerをインストールする方法を解説
google colabをお使いの方は、シェルに
%cd /content/stable-diffusion-webui/extensions/
!git clone https://github.com/Bing-su/adetailer /content/stable-diffusion-webui/extensions/adetailer
と入力してください。
あとはいつも通りweb UIを起動するだけで、以下の画像のように拡張機能が追加されています。

もしくは、web UI起動後にインストールする方法もあります。
ExtensionsのInstall from URLというタブへ行き、
https://github.com/Bing-su/adetailer.git
と入力、Installをクリックします。
問題なくインストールされたらweb UIを再起動し、完了です。

基本的なADetailerの使い方
ADetailerが無事インストールできたら、モデルを選択しましょう。
画像の赤丸の部分がいま選択されているモデルで、プルダウンから他のものも選べます。

プルダウンを見てみると、以下のようにモデルが表示されるはずです。
- face_yolov8n.pt
- face_yolov8s.pt
- hand_yolov8n.pt
- person_yolov8n-seg.pt
- person_yolov8s-seg.pt
- mediapipe_face_full
- mediapipe_face_short
- mediapipe_face_mesh
顔の修正をしたいときは以下を選びましょう。
- face_yolov8n.pt
- face_yolov8s.pt
他にも、手は”hand_yolov8n.pt”、人物全体の修正は”person_yolov8n-seg.pt”、”person_yolov8s-seg.pt”というように使い分けます。
画像生成例
ADetailerを使って顔を修正した画像を掲載します。
使用するときは”Enable ADetailer”にチェックをつけ忘れないよう、気を付けましょう。






コメント