こんにちは!悠です!
txt2imgでfull bodyやmultiple girlsなどのプロンプトを使ってAIイラストを生成すると、どうしても顔の描写範囲が小さくなって細部が崩れてしまいますよね。
そこで今回は、AIイラストの顔を自動認識して崩れを補正してくれる拡張機能「adetailer」について紹介していきます。

「detection detailer(ddetailer)」にとてもよく似た拡張機能になっています!
「adetailer」とは?
「adetailer(After Detailer)」は、生成されるイラストの顔や手を自動認識して崩れを補正してくれる拡張機能です。
その実例をお見せいたします。
まずは「adetailer」を無効化して、txt2imgで下記のプロンプトを使って画像を生成いたしました。画像サイズは768×512で、モデルには「AbyssOrangeMix3」を使用しています。
masterpiece, best quality, absurdres, highres, official art, multiple girls, group shot, full moon, gothic, black dress, long skirt, black hair, red eyes, medium breasts,
(worst quality, low quality:1.4), (monochrome, greyscale:1.4), nude, bad anatomy, EasyNegative, text, logo, watermark, bad_prompt_version2
これが「adetailer」を有効化すると下記のようになります。
一目でわかるくらい明らかに顔のディテールが向上していますよね。
「adetailer」は、こうやってAIが苦手な小さい領域への描写を補正してくれる拡張機能になっています。
「ddetailer」との違い
「adetailer」と似た拡張機能に「ddetailer」というものがあり、こちらも顔を自動認識して補正をかけてくれます。
この2つの拡張機能の違いは顔の自動認識システムです。
どちらがより正確に認識してくれるのかは正直わかりませんが、「ddetailer」の方は導入する際8GB程度の追加プログラムをインストールする必要があるのに対し、「adetailer」は100MB程度で済みます。

ストレージに優しく簡単に導入できるのが「adetailer」の魅力ですね!
なお「ddetailer」のフォーク版である「dddetailer」と「adetailer」の作者は同じ方です。
「adetailer」の導入方法
ローカル版の場合
「Extensions」→「Install from URL」の「URL for extension’s git repository」に下記のURLを入力しInstallをクリックしましょう。
https://github.com/Bing-su/adetailer
WebUIを再起動して、After Detailerの項目が増えていれば導入は成功です。
旧バージョンのやり方
次に「\webui\models\adetailer」に、下記のHugging Faceのページでダウンロードできるモデルデータ(.ptファイル)を全て保存して下さい。
adetailerのフォルダがない場合は新たに作成しましょう。

Google Colaboratory版の場合
下記の方法で紹介している「maintained by Akaibu」のノートブックを使って、拡張機能「adetailer」を導入していきます。
まだご覧になっていない方は、まず最初にこちらを準備しておいてください。


Google Driveからモデルデータを読み込むセルの下に新しくセルを作成し、下記のコードを入力します。
#adetailerをインストール
%cd /content/stable-diffusion-webui/extensions/
!git clone https://github.com/Bing-su/adetailer /content/stable-diffusion-webui/extensions/adetailer
%cd /content/stable-diffusion-webui
旧バージョンのやり方
下記のHugging Faceのページからモデルデータ(.ptファイル)を入手して、Google Drive内に保存してください。

git cloneでWebUIを導入するセルの中に、下記のように記述します。
#最新版のWebUIを複製
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
%cd stable-diffusion-webui
!mkdir -p /content/stable-diffusion-webui/models/adetailer
Google Driveに保存してあるadetailerのモデルデータを、次の要領で読み込みます。
!cp /content/drive/MyDrive/StableDiffusion/adetailer/face_yolov8s.pt /content/stable-diffusion-webui/models/adetailer
「adetailer」の使い方
「adetailer」はtxt2imgとimg2imgの両方で使用することができ、アップスケーラーとも併用できます。
使い方は簡単で、After Detailerの項目を開き、Enabled ADetailerにチェックを入れ、ダウンロードしたADetailer modelを選択するだけです。Generateボタンを押せば後は自動で補正してくれます。
なおControlNetのinpaintモデルを保存している場合は、下の方の設定欄で併用することができます。
※使わなくても十分自動補正が効きます。ダウンロードはこちら。
「face_yolov~」がアニメ系の顔認識、「mediapipe_face~」が実写系の顔認識、「hand_yolov~」が手の認識に使うモデルです。
なお、ADetailer promptの欄に表情を表すプロンプトを入力することで、簡単に表情差分が作れます。
【元画像】
【ADetailer PromptにCryingを適用】
また、Settingsに追加されているAfter Detailerの欄の、Save mask previewsにチェックを入れることで下記のようなマスク画像を同時に保存することができます。
2つのモデルを同時利用できるように!
拡張機能のアップデートで、「adetailer」で2つのモデルを同時に利用できるようになりました。
これにより顔の修正と手の修正を1クリックでできるようになりました。神過ぎる…!
「adetailer」の欠点
「adetailer」の唯一の欠点として、AIイラスト生成後に顔を補正する処理が入るため、生成時間が約2倍になります。
MultiDiffusion等のアップスケーラーと併用した場合、補正処理が複数回挟まれるため、更に遅くなります。

これが最大の難点ですね。
ですので、face close upやupper body、portraitのようなプロンプトを使って、顔のアップ・上半身に注目した画像を生成する際は無効化しておくことをおすすめします。
まとめ
以上が「Stable Diffusion」で、AIイラストの顔を自動認識して崩れを補正してくれる拡張機能「adetailer」の使い方でした。
同じような拡張機能の「ddetailer」と比べて導入が簡単なので、ぜひ試してみてはいかがでしょうか?
では、ここまで読んでいただきありがとうございました。
コメント
はじめまして、これはすごい機能ですね。解説して頂きとても助かります。質問なのですが、「手を補正しつつ顔も補正する」といったように、複数のモデルを適用するにはどうしたらいいのでしょうか?
コメントありがとうございます!
初期設定のままだと2つのモデルを同時には使えないんですが、adetailerのissueを見ていたところ、解決策が挙がっていました。
https://github.com/Bing-su/adetailer/issues/17
これによると、extensionsフォルダ内のadetailerをコピーする(多分名前を変えて複製する?)とできるっぽいです。
まだ試していないんですが、adetailerの項目が2つできて、そこで別々のモデルを選べるのかもしれません。
早速のご回答ありがとうございます!別名でコピーしたらまさにその通りになりました。本当に助かりました、ありがとうございます!
3日前からはじめてこのサイトに行き着き、とても助かっています。ありがとうございます。
adetailerの拡張機能を導入できたのですが、t2iで使用すると98%で止まったまま生成が完了されません。
stable diffusion webuiはCドライブ直下に入れ、Lora以外は日本語を避けたディレクトリ名にしています。
環境は python: 3.10.9 • torch: 2.0.0+cu118 • xformers: 0.0.17 です。
コマンドプロンプトに下記の表示が出ていたため、stable diffusion webuiを最初から入れ直してみましたがだめでした。(管理者権限でwebui-user.batを起動してみましたが起動しませんでした。)
何が問題なのでしょうか。
[-] ADetailer: if you get stuck here, try moving the stable-diffusion-webui to a different directory, or try running as administrator.
コメントありがとうございます!
特にエラーメッセージは表示されていないけど、生成が98%で止まってしまう感じなのですね。
拡張機能の不具合で良くありがちなのが、
・Python3.10.6では無いから動かない
・webuiコミットが新しいすぎるor古すぎる
です。
Pythonを3.10.9ということなので3.10.6にする、または下の記事の方法でコミットをダウングレードしてみるとどうでしょう?
https://yuuyuublog.org/localwebui_update/
ちなみにどのコミットを使用されています?webuiを起動してコマンドプロンプトに現れるcommit hashってやつです!
拡張機能自体のアップデートとかも試してみてください!
https://yuuyuublog.org/sdextensions_update/
早急の返信ありがとうございます。
Pythonを3.10.6にコミットを5ab7f213bec2f816f9c5644becb32eb72c8ffb89から
上記記事内で推奨されていたa9fed7c364061ae6efb37f797b6b522cb3cf7aa2や
4月20日リリース7ef5551634f8d06301929cb43069f5bf37ee8f1aに変えてみましたが改善されませんでした。
拡張機能のアップデートは確認し最新版でした。
その辺が原因じゃありませんでしたか…エラー出ないのは厄介ですね….
1度adetailerの方をextensionフォルダから削除して、再インストールしてみるとどうなりますでしょうか?
後これが原因だったらすごい面倒なんですが、拡張機能の競合の可能性もあるかもしれません。
adetailer以外の拡張機能を個別に無効化していって原因になっていないか探るとかも試してみてください!