【Stable Diffusion】顔の造形を変えずに高画質化する方法!【中・上級者向け】
👋こんにちは!
今回は、Stable Diffusionで主に実写系の作品を作る際、Hires Fixやその他の方法でアップスケールする際に元の画像と顔の雰囲気が変わってしまったり、のっぺりとした印象になってしまう原因と解決方法(※有料記事になります)についてご紹介します。
今回は、ある程度Stable Diffusion Web UI等を使用したことがあり、基本的な知識を持っている方に向けたマニアックな内容のため、中・上級者向けとさせていただいていますが、もし初心者の方で分からない点がありましたら、遠慮なくコメントなどでお知らせ下さい🙇♂️
■アップスケーリングが上手くいかない原因
そもそもStable Diffusion Web UIには、Text to Imageで出力した画像を高品質化(アップスケール)する「Hires.fix」という機能が元々備わっていて、そのほかにもExtrasや拡張機能等でアップスケールする方法もあります。
とても便利な機能である一方で、拡大すると元の画像と雰囲気が変わってしまうことがあります。その原因としては、拡大する際にノイズを付与することと、アップスケーラー特有の癖が現れるためだと考えられます。
Hires.Fixでは、Text to Imageで出力された画像に対してDenoising strengthの値に応じたノイズを付与して、拡大する際の穴埋めを行っています。
そのためDenoising strengthが大きければ大きいほど元の画像から遠ざかってしまい、人物の顔つきが変わってしまったりします。逆にDenoising strengthを小さくし過ぎると、のっぺりとした画像になってしまい、質感が損なわれたりします。
高画質化の作業は大きな画像を何度も出力し続けることになるので、かなり時間を取られる作業でもあります。上手くいかない場合は諦めてしまうことも多いと思いますので、経験者の方にとっても悩まれる方は多いのではないでしょうか。
実際に画像を用いてご説明した方がイメージが伝わると思いますので、いくつかの方法のアップスケールを比較検証します。
それぞれアップスケール倍率は2倍で、それを画像編集ソフトで解像度を合わせて比較しています。
CFGスケールは6、使用しているアップスケーラーはSwinIR_4xです。
Hires.fixでアップスケールした画像
Extrasでアップスケールした画像
Tiled Diffusionでアップスケールした画像
その他にも、Controlnetを利用する方法で、絵柄を固定するなどの方法もありますが、個人的にはあまりうまくいきませんでした。
記事の後半では造形の維持と、質感の両立を目指す方法について解説致します。
ここから先は
皆さまの温かいサポートのおかげで、活動を続けることができています。もしよろしければ、引き続き支援をお願いできますと幸いです。より質の高い記事投稿に励みます!