【Stable Diffusion】生成したAIイラストを高画質化するやり方!Hires.fixやExtrasの使い方を覚えよう!

こんにちは!悠です!

 

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

【2023年】美少女AIコスプレイヤーをStable Diffusionで生成する方法についてまとめていく!【ChilloutMix】
「Stable Diffusion」を使って、話題のAIコスプレイヤー風の画像を作成する方法についてまとめた記事です。実行にはGoogle Colaboratoryを使用するため、PCのスペックに関係なく試すことができますよ!
【2023年】「Stable Diffusion WebUI」をローカル環境に構築するやり方!低スぺックPC(1660Ti)でもOK!
「Stable Diffusion WebUI」をローカル環境に構築する方法について、できる限り詳しく紹介した記事です。Google Colabratoryのように一日の使用制限がないため、一度環境を構築してしまえば快適に遊べますよ!

 

しかし、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. fixのUpscaler比較 WebUI(1111)の高解像度化設定はどれがオススメか
Stable Diffusion Webui(AUTOMATIC1111)のアップスケーリング機能Hires.fix(ハイレゾ化)のアルゴリズム(アップスケーラー)全14種類を試してみて、出力された画像とともにどのアップスケーラーを選べばよ

 

私のおすすめは次の通りです。特に指定が何もなければこれを使っています。

以前までDenoising strengthを0.7にしていましたが、あれは絶対だめです。画像が崩れます。

 

【アニメイラスト系】

・Upscaler:R-ESRGAN 4x+ Anime6B
・Hires steps:15
・Denoising strength:0.30.5

 

【フォトリアル系】

・Upscaler:ESRGAN_4x
・Hires steps:15
・Denoising strength:0.30.5

 

最後にUpscale byの値を設定します。これは高画質化した画像のサイズをオリジナルの何倍にするかという設定です。

個人的には1.5~2倍がおすすめです。

※GTX1660Tiで試したら、2倍にするとメモリーエラーで生成できませんでした。

【2023年5月7日追記】
GTX1660Tiでも2倍アップスケールがギリギリできるようになっていました。

 

ここまで設定し終えたら、あとは通常通りGenerateボタンを押しましょう。高画質化したAIイラストが出力されます。

なお、普通にAIイラストを出力する場合と比べて、2倍~3倍の生成時間がかかります。

 

参考例としてMomijiMix(モデルデータ)を使って全く同じプロンプト、同じSeed値で作成した画像を貼っておきます。

hires.fix未使用時と同じ構図の画像を生成するには、同じSeed値を使う必要があります。詳しくは次の項で説明しています。

 

【hires.fix未使用】

 

【hires.fix有効化(2倍にアップスケール)】

 

画質だけではなく、指の自然さや服の質感などがかなり向上していることがわかりますね。

 

フォトリアル系ではESRGAN_4xの方がいいかも

AIコスプレイヤー等のフォトリアル系のイラストの場合、UpscalerはESRGAN_4xの方がいいかもしれません。

一例をご紹介いたしますので、ぜひ皆さんの感想も教えてください!

 

  • Model:ChilloutMix
  • Clip skip:2
  • ENSD:31337
  • Hires steps:40
  • Denoising strength:0.7

 

【Positive】
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>
【Negative】
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以上の値を使うとほぼ確実に細部が変化します。

構図の変化の度合いはモデルデータによっても変わるので、あくまで目安です。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の使い方は次の通りです。

  1. seedを-1に設定し、好みの構図が出るまでhires.fixなしでイラストを生成する。
  2. 良いものが出たらさいころ右のボタンを押し、直前のseedを表示させる。
  3. 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の使い方を紹介してくれているので、ぜひ参考にしてください。

UI操作&超多機能な「Stable Diffusion web UI」をローカルで使う方法 | くいなゲームズ -KUINA GAMES-
AUTOMATIC1111さんが開発している「Stable Diffusion web UI」がめちゃくちゃ凄いのでご紹介します! これを使えば「文章から画像を生成」や「画像から画像を生成」はもちろんのこと、 画像の一部分だけをAIで描き直

 

ここまで設定し終えたらGenerateボタンを押すことで、画像が高画質化されます。

ただ、ここまで説明しておいてなんですが、hires.fixと比べると個人的にかなり見劣りします。

私の設定方法が悪いからかもしれませんが、あまりおすすめはできないですね。

何かいい設定をご存知でしたら、ぜひコメント欄で教えてください!

 

高画質化手法その3【waifu2x】

高画質化にそんなに時間かけたくないよ!!面倒!!

 

という方は、web上で使える無料サービスのwaifu2x(下記サイト)がおすすめです。

waifu2x

 

流石にhires.fixと比べることはできませんが、10秒程度でかなり綺麗になります。

画像サイズも無料で2倍にすることができます。簡単な修正でいいなら全然ありだと思います。



「MultiDiffusion」を使った高画質化の方法

「Stable Diffusion WebUI」の拡張機能「multidiffusion-upscaler-for-automatic1111」を使って、hires.fixのように生成したAIイラストを高画質化する方法について下の記事でまとめました。

【Stable Diffusion】「MultiDiffusion」を使ってimg2imgで生成したAIイラストを高画質化する方法!
「Stable Diffusion」で拡張機能「multidiffusion-upscaler-for-automatic1111」を使って、hires.fixのように生成済みAIイラストを高画質化する方法についてまとめた記事です。

 

「Ultimate SD Upscaler」を使った高画質化の方法

「Stable Diffusion WebUI」の拡張機能「Ultimate SD Upscaler」を使って、hires.fixのように生成したAIイラストを高画質化する方法について下の記事でまとめました。

【Stable Diffusion】「Ultimate SD Upscaler」を使って生成したAIイラストを高画質化する方法!【img2img】
「Stable Diffusion」で、「Ultimate SD Upscaler」という拡張機能を使って生成済みのAIイラストを高画質化する方法について紹介した記事です。

 

「4x-UltraSharp」を使った高画質化の方法

「Stable Diffusion WebUI」にデフォルトで備わっていない、「4x-UltraSharp」や「4x-AnimeSharp」といった新たなアップスケーラーを導入する方法について下の記事でまとめています。

【Stable Diffusion】高品質なアップスケーラー「4x-UltraSharp」や「4x-AnimeSharp」を導入する方法を紹介!
「Stable Diffusion WebUI」に、デフォルトで備わっていないアップスケーラー「4x-UltraSharp」と「4x-AnimeSharp」を新たに導入する方法について紹介した記事です。

 

まとめ

以上が、「Stable Diffusion WebUI」を使って作成したAIイラストを高画質化する方法でした。

AIコスプレイヤー等のフォトリアル系のイラストは高画質化しなくてもかなり綺麗ですが、アニメイラスト系のモデルはhires.fixを使うのと使わないのでは雲泥の差があるように感じました。

ぜひ皆さんも試してみてくださいね!

 

では、ここまで読んでいただきありがとうございました。

コメント

  1. 匿名 より:

    Hires.fixを使用して高画質化すると白飛びが酷くなり、色が滲んでいるような箇所が発生します。どこを変更すれば抑えられますか?

    • 悠 より:

      コメントありがとうございます!

      どんなモデルデータを使用されていますでしょうか?
      モデルデータの概要欄にhires.fixのおすすめ設定が書いてあることも多いので、まずはそれがあるか確認することをお勧めします。
      書いてない場合は各パラメータを細かく変更して確認していくしかないですね。

      例えばupscalerを変えてみたり、Hires stepsを20くらいに減らしてみたり、Denoising strengthを0.5にするなどですね。

      それとは別にモデルによってはVAEを併用しないと色がおかしくなるものもあります。これも概要欄に書いてあることが多いので、ぜひ確認してみてください。

  2. 匿名 より:

    ご存知でしたら教えてください。
    hires.fixのチェックを有効にすると、無効の時と構図が変わってしまう(腕の位置が変わる等)のですが、対策をご存知でしょうか。
    解像度以外は無効のものと同じ絵が出てくると思っていて、こちらの説明でもそのように見えるのですが、何故か絵自体が変わってしまい困っています。

    • 悠 より:

      コメントありがとうございます!

      記事内でも紹介しているSeed値を同じものに設定してhires.fixを使っていますでしょうか?
      同じSeed値なら解像度や細部以外は全く同じ構図になるはずです。

      ただ、指の感じなどは多少変わることもあるので、その場合はUpscalerを変更してみることをおすすめします。

      • 匿名 より:

        回答ありがとうございます。
        はい、シード値は同じにしていて、違いはhires.fixのON/OFFだけとなっています。
        やはり基本は変わらないはずなのですね。
        Upscalerの調整を試してみます、ありがとうございました。

        • 悠 より:

          Denoising strengthが高すぎると、高画質化後の画像が変化しがちなので、まずは0.3くらいで試してみてください!

  3. 匿名 より:

    思ったより簡単に高画質にできるんですね
    UIで行う方法から外部サイトのWaifu2xまで紹介いただきありがとうございました
    助かりました

  4. 匿名 より:

    hires.fixをUIに表示させるには拡張機能から何かをインストールする感じなのでしょうか?

    • 悠 より:

      コメントありがとうございます!

      いえ、拡張機能をインストールせずとも、hires.fixは最初からWebUIに備わっていますよ!

  5. 初心者YK より:

    勉強になります、ありがとうございますm(__)m
    初心者なもので、hires.fixという名すら知りませんでした(^^;
    リアル実写系を生成しておりますが、512×512だと画像も小さいしディティールも悪かったので800×1200くらいで生成しておりましたが低スぺPCだからと諦めておりました(^^;  ありがとうございますm(__)m
    コントロールネットを使ってのポーズがどうもうまくいきません、棒人間を使っても、実際の画像を使っても、棒人間も一緒に描かれてしまったりなどです。解決方法はありますでしょうか?お忙しいところ申し訳ありませんがお手すきの際にでもご教授頂ければ幸いです。

    • 悠 より:

      コメントありがとうございます!

      Multidiffusionなら、hires.fixよりもさらに高画質化できる場合もあるのでおすすめです。

      Controlnetではどんなモデルを使われていますか?
      もしopenposeなら、cannyやdepthに変えると結果が向上するかもしれません。

      • 初心者YK より:

        早速のご返答ありがとうございますm(__)m
        openposeでcannyを使ってやってました、その他NONEに切り替えたりといろいろ試したのですが、、、(^^;
        棒人間を使うと生成された画像に色違いの棒人間が生成されたり、写真を使うと棒人間が生成されたりと、、、Multidiffusionも試してみます、ありがとうございますm(__)m

        • 悠 より:

          ちょっと気になったのですが、Preprocessorとmodelは同じものを使わないとダメですよ!

          openposeとopenpose
          cannyとcannyみたいな感じです!

          openpose「で」cannyを使うというところが微妙に引っかかりました!

          • 初心者YK より:

            右のMODELのところがcannyのモデルしかありませんでした、、、
            cannyとcannyでやっても上手くいきませんでした、、、もう少し頑張みます。
            ありがとうございますm(__)m

  6. 悪いキツネとみだらなタヌキ より:

    助けて下さい 一昨日Stable DiffusionをアプデしてからExtrasのBatch Processが利用できなくなりました
    一括リサイズと画像補正をここでしていたので機能しなくてつらみです><
    エラーについて 「UnidentifiedImageError: cannot identify image file 」とメッセージが出ていますが、画像ファイルが壊れているとか拡張子が違うとか倍率が高すぎる(いつも2倍ほどです)とかはないです
    一応VRANは12Gで大丈夫なはずです ちなみにSingle Imageでは問題なく出力されてます(4倍でも時間掛かりますがいけます)
    色々と使いもしない拡張機能を入れ過ぎてアップデートで破綻したのかと思うのですが・・・拡張機能も全てOFFにしてもだめで最終手段で他の場所に再インストして必要最低限の構築(モデルとVAEと本体のアプデ)だけで試しましたがやはり動きません 原因は本体のアプデで確定ぽいのですが、そもそもどこかの設定弄れば解決しますでしょうか?
    もう手詰まりです どうかお助けお願いいたします

    • 悠 より:

      コメントありがとうございます!

      WebUIのアプデって本当にバグの原因になりますよね…本体のアプデが原因だと特定できているのなら、下記の記事の方法で以前まで使っていたコミット(WebUIのバージョン)に戻すことができますよ!
      https://yuuyuublog.org/localwebui_update/

      ぜひ試してみてくださいね!

      • 悪いキツネとみだらなタヌキ より:

        悠さん ありがとうございます過去のバージョンに戻したら戻りました
        記事に詳しく説明してあり それが無かったら多分間違ったやり方をしてました
        感謝 感謝です!

  7. porurun より:

    こちらのサイトわかりやすくて大変助かっています。友達にも進めて無料Colabで遊びだしています。質問ですが、
    ESRGAN_4xがKoreanDollLikenessのGoogle Colaboratory版で選択できなくなってました。R-ESRGAN 4x+のほうが上位互換という認識なのでしょうか。

    • 悠 より:

      コメントありがとうございます!
      お褒めいただき光栄です!

      私見ですが、デフォルトで備わってるアップスケーラーの場合、実写系にはESRGAN_4x、アニメ系にはR-ESRGAN 4x+ Anime6Bが1番いいと思っています。

      モデルによって変わりますが、Rがついてる方が上位互換という訳でもないですね~。

      ESRGAN_4xが選べなくなっているというのは始めて聞きました!後で私も確認しておきます。
      ちなみにsd-1click-colabを使われていますか?

  8. フェイ より:

    いつもお世話になっております。

    model;breakdomainrealistic_M2050.safetensors
    VAE:vae-ft-mse-840000-ema-pruned.ckp

    で出力するととても彩度が低くなってしまっており、
    改善方法が見つかりません。
    他の型が同じmodelとVAEで生成したものは綺麗に色が出ているのですが
    原因などわかりますでしょうか?
    他のモデル使用時は色は綺麗に出力されます。

    参考
    https://gyazo.com/817ee8f324d925698ec8465a8b3aceba

    • 悠 より:

      コメントありがとうございます!

      一番よくある例としては、VAEを変更したつもりが「Apply setting」をクリックしていなくて反映されていないことなんですがいかがでしょうか?
      ちなみにvae-ft-mse-840000は同ページ内にsafetensors形式のものもあるので、そちらに変更して試してみるのもいいかもしれません。