こんにちは!悠です!
以前までStable DiffusionでAIコスプレイヤーを作成するやり方について紹介してきました。


しかし、Stable Diffusionで作成したイラストは512×512(もしくは512×768)程度の小さ目な画像サイズで、引き延ばしたりすると画質が劣化してしまいますよね。
そこで今回は、「Stable Diffusion WebUI」に備わっている生成したAIイラストを高画質化する機能「hires.fix」及び「Extras」の使い方を紹介していきます。

より高画質な画像を作成してみたい方は、ぜひ参考にしてください。
なお、今回のアイキャッチ画像はAnything_v3.0で作成いたしました。
初期の画像サイズを大きめにするのだけはNG!
「Stable Diffusion WebUI」では、WidthとHeightの値で生成されるAIイラストの画像サイズを決定できますが、これを大きすぎる値(例えば1920×1080)にするのだけはやめておきましょう。
画像サイズが大きすぎて出力するのに膨大な時間がかかりますし、そもそも上手くイラストが作成されません。
これはモデルデータの画像サイズと大幅にかけ離れていることが原因のようです。
高画質化手法その1【hires.fix】
では早速、画像の高画質化に最もおすすめな手法「hires.fix」のやり方を紹介していきます。
AIイラストの作成前(Generateボタンを押す前)に、Seedの下にあるHires.fixの欄にチェックを入れます。
すると高画質化の設定欄が開きます。
まず重要なUpscalerを設定しましょう。モデルデータによっては最適なUpscalerが概要欄に書いてあることもあります。
各種Upscalerごとの特徴に関しては下記のサイトが参考になります。

私のおすすめは次の通りです。特に指定が何もなければこれを使っています。
・Hires steps:40
・Denoising strength:0.7
最後にUpscale byの値を設定します。これは高画質化した画像のサイズをオリジナルの何倍にするかという設定です。
個人的には1.5~2倍がおすすめです。
※GTX1660Tiで試したら、2倍にするとメモリーエラーで生成できませんでした。
ここまで設定し終えたら、あとは通常通りGenerateボタンを押しましょう。高画質化したAIイラストが出力されます。
なお、普通にAIイラストを出力する場合と比べて、2倍~3倍の生成時間がかかります。
参考例としてAnything-v3.0(モデルデータ)を使って全く同じプロンプト、同じSeed値で作成した画像を貼っておきます。
【hires.fix未使用】
【hires.fix使用】
画質だけではなく、指の自然さや服の質感などがかなり向上していることがわかりますね。
フォトリアル系ではESRGAN_4xの方がいいかも
AIコスプレイヤー等のフォトリアル系のイラストの場合、UpscalerはESRGAN_4xの方がいいかもしれません。
一例をご紹介いたしますので、ぜひ皆さんの感想も教えてください!
※Model:ChilloutMix、Clip skip:2、ENSD:31337
※Hires steps:40、Denoising strength:0.7
masterpiece, best quality, ultra high res,(photo realistic:1.4),1 girl, medium breasts, cleavage, upper body, close up of face shot, ((big blue eyes)), ((blonde hair)),(ulzzang-6500-v1.1:1.0), school uniform, cute, young, posing, looking at viewer, very long hair, cyberpunk, night city, neckless,cross, <lora:tifaMeenow_tifaV2:0.4>, <lora:koreanDollLikeness_v15:0.3>
EasyNegative, (worst quality:2),(low quality:2),(normal quality:2), lowers, normal quality,((monochrome)),((grayscale)),skin spots, acnes, skin blemishes, age spot, nsfw, ugly face, fat, missing fingers, extra fingers, extra arms, extra legs, watermark, text, error, blurry, jpeg artifacts, cropped, bad anatomy,2 girls
【高画質化処理なし】
【SwinIR_4x】

左下バグっちゃってるよ…
【Latent (bicubic)】
【None(upscalerなし)】
【ESRGAN_4x】

これが一番自然で可愛い気がします!
Denoising strengthに関する注意
Hires.fixの設定内にあるDenoising strengthの値を上げると、高画質化後の画像のシャープさが上がる代わりに、細かい構図が変わる可能性が増します。
体感ですが、だいたい0.6以上の値を使うとほぼ確実に細部が変化します。
構図を絶対に変えたくない場合は、Denoising strengthの値を0.3~0.5で運用するのがおすすめです。
Seed値を制御して同じ画像を生成しよう!
上の説明を見て、「Seed値って何?」と思った方もいるのではないでしょうか?
このhires.fixの手法は非常に便利なんですが、すべての画像生成に使用していると時間が膨大にかかります。
そこで、おすすめなのがSeed値を使った厳選方法です。
CFG Scalerの下にSeedという入力欄が見えますよね。これがSeed値です。
Seed値が同じ場合、同じプロンプトを使うとほぼ同一の画像(背景・人物・表情・ポーズ)を作成することができます。
初期値は-1となっていますが、これはランダムなSeed値を使うという意味です。Seedの右にあるさいころボタンをクリックすることで-1が自動入力されます。
さいころの右にある矢印3つのボタンは、直前のイラスト作成に使ったSeed値を呼び出すボタンです。
これを踏まえて、おすすめのhires.fixの使い方は次の通りです。
- seedを-1に設定し、好みの構図が出るまでhires.fixなしでイラストを生成する。
- 良いものが出たらさいころ右のボタンを押し、直前のseedを表示させる。
- hires.fixを設定し、再度イラストを生成する。
この流れだと、かなり作成時間を短縮することができます!
高画質化手法その2【Extras】
「Extras」は作成済みのAIイラストを高画質化する方法です。
質に関しては正直hires.fixに比べて劣る印象ですが、生成速度はかなり早くなっています。
使い方はExtrasタブに画像をドラッグアンドドロップする、
もしくは生成した画像の下にあるSend to extrasのボタンをクリックします。
ではExtrasの設定をしていきます。
Scale by resizeの値で高画質化後の画像サイズを設定します。4なら4倍になるという意味です。
次にUpscaler1に使用するものを、Upscalerを重ねたい(2つ以上使いたい)場合はUpscaler2にも設定します。
個人的なおすすめはR-ESRGAN 4x+とSwinIR_4xですね。
Upscaler 2 visibilityは、2つ目のUpscalerの効果量を設定する値です。
GFPGAN visibilityとCodeFormer visibilityの値を設定することで、イラストの顔の部分に修正を加えてくれます。ただこれは強くし過ぎると変になる印象です。使っても0.2くらいが無難かも。
下記の記事もExtrasの使い方を紹介してくれているので、ぜひ参考にしてください。

ここまで設定し終えたらGenerateボタンを押すことで、画像が高画質化されます。
ただ、ここまで説明しておいてなんですが、hires.fixと比べると個人的にかなり見劣りします。
私の設定方法が悪いからかもしれませんが、あまりおすすめはできないですね。

何かいい設定をご存知でしたら、ぜひコメント欄で教えてください!
高画質化手法その3【waifu2x】

高画質化にそんなに時間かけたくないよ!!面倒!!
という方は、web上で使える無料サービスのwaifu2x(下記サイト)がおすすめです。
流石にhires.fixと比べることはできませんが、10秒程度でかなり綺麗になります。
画像サイズも無料で2倍にすることができます。簡単な修正でいいなら全然ありだと思います。
まとめ
以上が、「Stable Diffusion WebUI」を使って作成したAIイラストを高画質化する方法でした。
AIコスプレイヤー等のフォトリアル系のイラストは高画質化しなくてもかなり綺麗ですが、アニメイラスト系のモデルはhires.fixを使うのと使わないのでは雲泥の差があるように感じました。
ぜひ皆さんも試してみてくださいね!
では、ここまで読んでいただきありがとうございました。
コメント
Hires.fixを使用して高画質化すると白飛びが酷くなり、色が滲んでいるような箇所が発生します。どこを変更すれば抑えられますか?
コメントありがとうございます!
どんなモデルデータを使用されていますでしょうか?
モデルデータの概要欄にhires.fixのおすすめ設定が書いてあることも多いので、まずはそれがあるか確認することをお勧めします。
書いてない場合は各パラメータを細かく変更して確認していくしかないですね。
例えばupscalerを変えてみたり、Hires stepsを20くらいに減らしてみたり、Denoising strengthを0.5にするなどですね。
それとは別にモデルによってはVAEを併用しないと色がおかしくなるものもあります。これも概要欄に書いてあることが多いので、ぜひ確認してみてください。
ご存知でしたら教えてください。
hires.fixのチェックを有効にすると、無効の時と構図が変わってしまう(腕の位置が変わる等)のですが、対策をご存知でしょうか。
解像度以外は無効のものと同じ絵が出てくると思っていて、こちらの説明でもそのように見えるのですが、何故か絵自体が変わってしまい困っています。
コメントありがとうございます!
記事内でも紹介しているSeed値を同じものに設定してhires.fixを使っていますでしょうか?
同じSeed値なら解像度や細部以外は全く同じ構図になるはずです。
ただ、指の感じなどは多少変わることもあるので、その場合はUpscalerを変更してみることをおすすめします。
回答ありがとうございます。
はい、シード値は同じにしていて、違いはhires.fixのON/OFFだけとなっています。
やはり基本は変わらないはずなのですね。
Upscalerの調整を試してみます、ありがとうございました。
思ったより簡単に高画質にできるんですね
UIで行う方法から外部サイトのWaifu2xまで紹介いただきありがとうございました
助かりました
コメントありがとうございます!お役に立てて何よりです!