Stable Diffusion で高画質なイラストを作成したいけど、大きい解像度で生成しようとすると絵が崩れてしまう。
そんなお悩みを持つ方のために、今回は Hires.fix の活用方法を紹介します。
※アイキャッチ画像は Stable Diffusion で生成した画像です。
Hires.fix とは
Stable Diffusion で利用できる Hires.fix は、高画質の画像生成をスムーズにするための機能です。具体的には、Hires.fix を利用すると、以下の3つのステップが Stable Diffusion 内部で自動的に行われます。
- 標準解像度のイラストを生成。
- 生成したイラストを拡大。
(画質はいったん落ちる) - 拡大したイラストをimg2img高画質化にする。
なぜ、3ステップを経て高解像度化をおこないかというと、多くのモデルで Stable Diffusion が標準解像度(512×512ピクセル)で学習を行っているため、いきなり大きな解像度での生成を試みると絵柄が崩れてしまうからです。Hires.fixを使うと、初めに標準解像度で描画を行い、その後、イラストを拡大し、最終的に高画質化するため、絵柄が崩れにくいのです。
Hires.fixの設定方法
Hires.fix を使うには、まずイラスト生成前に「Sampling method」下にある「Hires.fix」を選択します。すると、以下の設定項目が表示されます。
- Upscaler
- Hires steps
- Denoising strength
- Upscale by
- Resize width to
- Resize height to
これらの項目の説明は以下の通りです。
Upscaler:イラストを高画質化する際に使用するアルゴリズムです、いわゆるサンプラーのようなものです。選択する Upscaler によって、生成されるイラストの質が微妙に変化します。
どれが良いかは人によりますので試してみて、気に入ったものをつかいましょう、「None」は Uplcaler を使わない設定ですので荒くなります、やめましょう。
アニメ系イラストは「R-ESRGAN 4x+ Anime6B」が、リアル系は「ESRGAN4x」などがおすすめです。
Hires steps:画質が荒い状態のイラストを img2img で生成するときの生成を行うステップ数です。15程度がおすすめだと思います。
Denoising strength:画像の品質に大きく関わるノイズ除去の強さです。大きくすれば綺麗になるわけではありません。小さければ厳格に元イラストに近づき、大きくすれば離反していきます。
0.3〜0.5がおすすめです。
Upscale by:拡大率です。1.5なら元のイラストを1.5倍に、2なら2倍に拡大します。4など大きな拡大率を指定すると、絵柄が崩れる可能性があるので注意が必要です。
1.5〜2倍ぐらいがおすすめです。
Resize width to:生成するイラストの横幅のサイズです。
拡大後の大きさは Upscale By で指定するので特に指定する必要は有りません。生成後の縦横比を変更したい場合に指定してください。
Resize height to:生成するイラストの縦のサイズです。
これも同じく拡大後の大きさは Upscale By で指定するので特に指定する必要は有りません。生成後の縦横比を変更したい場合に指定してください。
以上の設定を行った上でイラストを生成すれば、Stable Diffusion による高画質なイラストが得られます。ただし、Hires.fix を用いると通常の生成よりもかなり時間がかかります。
Hires.fix 画像比較
Hires.Fix なし
以下の画像は 768 x 512 の Hires.Fix なしで生成した画像です。
Hires.Fix あり
以下の画像はHires.Fix にて 1376 x 968 (1.8倍で出力)で出力した画像です。
画質がかなり向上しているのがわかります。
右が Hires.Fix で出力した画像です。
足下の草を拡大してみると、その細かさがわかります。
まとめ
以上です、また Hires.fix は絵が崩れにくくなるとはいえ、それでも大きな解像度での生成には限界があります。
適度に Hires.fix を活用して、より高品質なイラスト作成を楽しんでください。