Stable Diffusionで顔が崩れてしまう、顔が上手く描けないという問題を抱えている人のために、顔が崩れる原因と修復方法について解説しています。
CivitAiのサンプル画像やTwitter、Youtubeで見るような綺麗な画像を作りたいけど、福笑いのような顔面になってしまうというのは、Stable Diffusion初心者によくあることです。
「Restore faces」がそれっぽい項目だけど、ほとんど効かないんですよね。
この記事を読めば、Stable Diffusionで顔を上手く描くコツがつかめると思います。
Stable Diffusionで顔が崩れる原因
Stable Diffusionで顔が崩れる原因は画像サイズにあります。
画像サイズはデフォルトで(512 x 512)になっています。
画像サイズ(512 x 512)はAIにとって、小さすぎて顔が上手く描けない大きさになります。
全身を写した画像では、顔の面積が小さくなるので崩れやすくなります。
AIが細部を書き込めないほどの小さい領域なので、ふくわらい顔になるというわけです。
では、画像サイズを大きくすればいいかというと、それは違います。
画像サイズを大きくすると、このように画像が崩壊してしまうからです。画質は良いですけどね。
この画像は(2048 x 2048)で生成して(512 x 512)にリサイズしています。
Stable Diffusionで顔を上手く描く方法
崩れた顔を修復するためには、Hires.fix(高解像度補助)を使います。
Hires.fixとは、画像を拡大して細部を描きこむ機能です。
単に画像サイズを大きくするのではなく、画像を拡大してからディテールも描くことで、綺麗な顔の画像を生成することが可能になります。
こちらが先程の画像にHires.fixをかけた後の画像です。
顔の崩れを修正しただけでなく、服や肌の質感、背景の描写も綺麗に描きこまれているのが分かると思います。
Hires.fixは設定項目が複数ありますが、とりあえずは初期設定のままで試してみてください。
「Upscaler」や「Denoising strength」を調整すると、顔が微妙に変わります。
「Upscaler」や「Denoising strength」はどれがいいとか、正解はないので、試してみて好みの画像を探すしかないです。
「Upscale by」を大きくしすぎると、画像サイズを大きくした場合と同じで画像が崩壊します。
画像サイズを小さくして「Upscale by」を少し大きくしたりするのが、ちょっとしたコツです。
Hires.fix処理後の画像サイズは、resize:fromを参照しましょう。
まとめ
・ Stable Diffusionで顔が崩れる原因は画像サイズ
・ 崩れた顔を直すためには、Hires.fixを使う
「Restore faces」を試しても顔の崩れが直らない場合は、Hires.fixを使ってください。
ちなみに、顔が崩れる原因は、プロンプトやサンプリングステップ、CFGスケールは関係ない場合がほとんどだと思います。
Hires.fixで顔の崩れを修正しても、どんな画像が出るか分かりません。
結局、Stable Diffusionはガチャなんですよ。
自分好みの画像を生成するには、Hires.fixの他にも「Clip Skip」などの細かい調整が必要です。試行錯誤を繰り返して、良画を生成してくださいね。
以上、Stable Diffusionで顔が崩れる原因と顔の修復方法について説明しました。Hires.fix(ハイレゾフィックス)を使えば、Stable Diffusionで顔面崩壊にならずにすむと思います。