stable diffusion で生成された画像は高品質ではありますが、しばしば顔が崩れたり、手が変になったりしますよね。特に全身の画像を生成させた時は、ほぼ必ず発生します。
ネガティブプロンプトを工夫してもなかなか解決できないこの問題を、かなり改善する方法があります。
その方法とは、 ADetailer という拡張機能を使うことです。
インストール作業は必要ですが、超簡単にインストールできて、細かな設定も不要で直ぐに効果が得られるため、使わないと損です。
本記事では、 ADetailer のインストール方法と、使い方について解説します。
ADetailerとは
Adetailerとは、table diffusion web ui の拡張機能であり、顔や手を自動認識し、顔の崩れや手の不具合を補正してくれるものです。
また、ADetailer には元のプロンプトを上書きする機能も搭載されており、元のプロンプトに「怒った顔」が指定されていても、「笑顔」にすることが可能です。
高画素化(繊細化)の方法としては、 Hires.fix をONにする方法や、Control Net の Tile を使う方法があり、これらの方が高品質な画像を生成できますが、処理時間が掛かったり、元の絵柄が変わってしまうというなどの副作用もあります。
ADetailerは元の画像に対して顔や手だけを補正するため、上記のような副作用はありません。
使い道としては、「ガチャで良い画像を見つけるための量産において、顔が小さくなりそうな構図や、手や指を使ったポーズで崩れるのを防止するためにONにしておく」、そして気に入った画像が見つかったら、あとから 「Hires.fix や Control Net を使って拡大する」という運用が適していると思われます。
作業手順
ADetailer をインストールし、ADetailer Enable にチェックを付けたら、あとは今まで通り画像生成するだけです。
ADetailerを有効にすると、若干処理に時間が掛かりますので、不要な場合はチェックを外しておきましょう。
インストール方法
stable diffusion web ui の ①Extensionsタブを選択し、 その中にある ②Install from URL タブを選択します。
次に下記のURLを ③URL for extension's git repository 欄に張り付けて、④Installボタンをクリックします。
https://github.com/Bing-su/adetailer
インストールは数秒で完了するので、今度は ⑤Installed タブを選択し、 ⑥Apply and restart UI ボタンでstable diffusion web ui を再起動します。
インストールが成功すると、txt2img のタブに ADetailer の項目が表示されているはずです。
ここをクリックすると、設定画面が表示されます。
使い方
ADetailerはあくまでも stable diffusion web ui の拡張機能なので、従来通りモデルの選択、プロンプトの入力、各種パラメータの設定を行って、Generateボタンで画像生成します。
そして、顔や手の補正が必要な場合は、ADetailerの設定画面を開いて、必要な項目を設定して下さい。
ADetailerの設定画面は次のようになっています。
①Enable ADetailerの有効/無効 | ADetailer を使いたいときはチェックを入れます。 |
②補正1,補正2の切り替えタブ | 補正は最大2つまで指定可能です。初期状態では、補正1に顔の補正が設定されています。 同時に手も補正したい場合は、補正2のタブを選択し、モデルから hand_yolov8n.pt を選択してください。 |
③補正に使うモデルの指定 | 通常は初期値(face_yolov8n.pt)をそのまま使います。もし手だけを補正したいなら、hand_yolov8n.ptを指定して下さい。 |
④追加したいプロンプト | 元のプロンプトに対して、上書きしたいキーワードを指定します。記述方法は通常のプロンプトと同じです。 |
⑤追加したいネガティブ・プロンプト | 元のネガティブプロンプトに対して、上書きしたいキーワードを指定します。 |
ADetailerの効果
最初に、ADteilerを使わずに画像生成してみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<モデル> bra_v5.safetensors <プロンプト> 1girl,Best quality, masterpiece, ultra high res, (photorealistic:1.4), raw photo,full body,dress <ネガティブプロンプト> badhandv4 (worst quality:2), (low quality:2), (normal quality:2), lowres, bad anatomy, bad hands, normal quality, ((monochrome)), ((grayscale)) <Sampling method> Euler a <Width、Height> 512×512 |
前進だと、ちょっと顔が崩れていますね。
ADetailerを有効にした以外は初期状態で生成してみました。結果は見事に補正されました。
今度は、上書きしたいプロンプトとして smile を指定してみました。元のプロンプトには表情に関するキーワードは入力してなかったので、上書きというより smile が新たに設定されたと解釈した方が良いかもしれません。が、いずれにせよ、笑顔になりました。
ここで3つの画像について比べてみたいと思います。512×512 や 512×768 で全身を生成させたとき、ほぼ100%顔が崩れていましたが、ADetailerをONにすることで、見事に改善できました。
まとめ
今回は、stable diffusion web ui の拡張機能として、顔や手を自動認識して補正してくれる ADetailer について、そのインストール方法と使い方、実際の補正具合について紹介しました。
日々様々な拡張機能や改善が行われていて、益々痒いところに手が届くようになりました。
もうすぐstable diffusion web ui Ver2.0 も登場し、処理速度も数倍速くなることが期待されています。
今後も画像生成AIには目が離せません。
コメント