Stable Diffuisonを使って画像を生成した際、顔や手を修正したい、あるいは表情だけを変えたいと思うことってありませんか?
そんな時に役立つのが『ADetailer』です。
今回は『ADetailer』の導入方法から、実際の使用までご紹介します。
Stable Diffusionの拡張機能『ADetailer』とは?
『ADetailer』は生成した画像の顔や手を自動で検出して、修正をしてくれるStable Diffusionの拡張機能です。tex2imgとimg2imgで使用する事ができます。
『DDetailer』との違い
「Detection Detailer」という修正用の拡張機能がありますが、『ADetailer』はその改良版でより軽量で使いやすく、専用のモデルもバージョンアップしていますので、「DDetailer」ではなく『ADetailer』の使用をお勧めします。
『ADetailer』のメリット・デメリット
『ADetailer』導入のメリット
・これまではinpaintで修正していた顔や手の乱れを、自動的にマスク化し修正します。
・顔の書き込み量が上がるので、画像のクォリティーが上がります。
『ADetailer』導入のデメリット
・通常通り画像生成を行った後に、検出ポイントの修正になるためやや時間がかかります。下図のように検出ポイントが多いと、余計に時間がかかります。
face 0.82とは顔の可能性をどの程度認識したかの値です。認識した部分はマスク化され修正されます。使用するADetailer modelによって認識の度合いが異なります。
Stable Diffusionの拡張機能『ADetailer』のインストール方法
Google Colab使用の場合
以下のコードを !python launch.py — から始まる前の行に挿入して下さい。
%cd /content/stable-diffusion-webui/extensions
!git clone https://github.com/Bing-su/adetailer
%cd /content/stable-diffusion-webui
ローカル版の場合
Extensions⇨Install from URLの中のURL for extension’s git repositoryに以下のURLを貼り付けてInstallを押して下さい。
https://github.com/Bing-su/adetailer
ダウンロードできたら次はsettingです。
- 設定の変更
1, SettingタグでADetailerを選択
2, Max modelesを2以上に
3, その他は必要に応じて変更
4, Apply setting して Reload する
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい
Stable Diffusionの拡張機能『ADetailer』の使い方
まずはADetailer modelの解説をします。
・モデルによって検出の仕様が異なりますが、基本的に顔の修正はデフォルトのface_yolov8n.ptで問題無く使えます。
・手の修正はhand_yolov8n.ptの選択で可能ですが、それほど得意ではありません。
Model | Target |
---|---|
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 | 実写系・顔 |
①顔や手の修正
通常の画像生成のセッティングを済ませてから
1, Enable ADetailerを有効化
2, モデルを選択
3, Generateするだけ
顔と手を同時に修正する場合は2ndタグも使用して下さい。
顔は明らかに修正されていますが、手は明確な違いを感じません。
②表情差分
表情のみを変更しましょう
通常通り画像を生成後、シード値を固定する
1, Enable ADetailerを有効化
2, モデルを選択
3, ADetailer promptに表情を変えるプロンプトを入れる
4, Generateする
このように、簡単に出来ます。
Stable Diffusionの拡張機能『ADetailer』のパラメータ設定
その他のパラメーターについて必要そうな所をかいつまんで解説します。
・Detection – 検出に関わる項目です。
Detection model confidence threshold - face0.80は、モデルがこれが顔であると80%確信していることを意味します。0.9に設定すると、face0.80の顔は考慮されません(デフォルトで0,3)。顔の検出に問題がある場合は下げてください。検出が多すぎる場合は増やしてください
Mask min area ratio / Mask max area ratio – 検出されたマスクの最小領域と最大領域が許可されます。たとえば、最小面積比を0.1に設定すると、画像のサイズの10%未満のマスクで検出を拒否します。不要な小さな物体を検出した場合は、最小値を増やします。
・Mask Preprocessing – インペイントする前にマスクを移動してサイズを変更するためのものです(基本的に触らなくてOKです)
・Inpainting – Inpaintで修正した画像に対して追加で一気に顔の修正をしたい時に使います。その際はADetailerのプロンプト欄をメインとは別に記入する必要があります
- どの値も基本的な使用の範囲では変更の必要はありません。
また、ControlNet とも併用する事ができます。
まとめ
この記事では、Stable Diffusionで画像の一部分を変更することが可能になる『ADetailer』という拡張機能についてご紹介しました。
・『ADetailer』を使えば生成した画像の顔や手を自動で検出して、修正をしてくれる
・表情を変えたい時にも、とても簡単に変更が可能
・手の修正はあまり得意ではない
『ADetailer』を使えば顔の変更、修正をお手軽にできます。
是非ともご活用ください。
※そのほか手や指・全身を修正する方法を解説した記事もありますので、是非参考にしてください!
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい