Stable Diffusion WebUIで高解像度・高画質化(アップスケール)する方法を紹介

stable-diffusion

Stable Diffusion WebUIで良い画像を出力できたとき、その画像の解像度をより高くしたいと考えたことがあるでしょう。

しかし、以下のように悩む人も多いのではないでしょうか。

  • 具体的にどのような方法で高画質化できるのかわからない
  • 自分の用途に合った方法がわからない
  • PCスペックが低くて高画質化できるか不安がある

結論からいうと、Stable Diffusion WebUIには複数の高画質化方法があり、用途に応じて使い分けることができます

今回の記事では、Stable Diffusion WebUIでの画像の高画質化方法を4つ紹介。

メリットやデメリットなども触れているので、高画質化したい画像がある方は本記事をぜひ最後までご覧ください。

目次

Stable Diffusion WebUIで高画質化する4つの方法

ABCD

Stable Diffusion WebUIを利用して画像を高画質化する主な方法は、以下の4つです。

  • 画像生成時にHires.fixを有効化する
  • Extrasタブ内のアップスケール機能を使う
  • 拡張機能のMultiDiffusionを利用する
  • ControlNetのTile機能を使って生成する

それぞれの方法のメリットおよびデメリットは以下のとおり

方法メリットデメリット
Hires.fix初期状態で利用できる拡大しすぎると崩れやすい
ExtrasStable Diffusionで生成していない画像でも利用しやすい完全に新しいディテール(細かい部分)は生成されない
MultiDiffusion極端に大きい解像度でも自然に仕上がりやすい設定が難しく処理時間もかかりやすい
ControlNetのTile構図を維持しながらディテールを補完できるControlNetが必要

選んだ方法によって仕上がりに違いが出るため、それぞれの方法を試してみると良いでしょう。

以下では具体的な手順について解説していきます。

いずれの方法もStable Diffusion WebUIを使うので、あらかじめ本体とモデルデータを用意しておいてください

方法1.Hires.fix|手軽に高画質化できる

stable-diffusion生成画像

これから生成する画像を高画質化できる手軽な方法です

通常の画像を生成する設定に加え、以下のように高画質化設定してください。

  1. Hires.fixにチェックを入れる
  2. 各種項目を設定する
  3. 画像を生成する
STEP

Hires.fixにチェックを入れる

まずはStable Diffusion WebUIの生成画面でHires.fix(高解像度補助)を有効化します。

「txt2img」タブ内の設定にチェックボックスがあるので、チェックを入れてください。

stable-diffusionの画面

すると「from 512×512 to 1024×1024」のように、解像度をどのように変更するかが表示されます。

stable-diffusionの画面
STEP

各種項目を設定する

有効化するだけでも高画質化できますが、設定を変更することも可能です。

チェックボックスの横にある三角アイコン(▲)をクリックし、高画質化に関する設定を表示させてください

stable-diffusionの画面

表示された以下の項目を、必要に応じて変更しましょう。

アップスケーラー(Upscaler)高解像度化するアルゴリズム・手法
高解像度でのステップ数(Hires steps)アップスケール後の再描画時に使用する拡散ステップ数
ノイズ除去強度(Denoising strength)元画像からの変更度合い(高いほど大きく変化)
アップスケール倍率(Upscale by)元画像から拡大させる倍率
サイズ変更後の幅(Resize width to)高解像度化した後の画像の幅
サイズ変更後の高さ(Resize height to)高解像度化した後の画像の高さ

高画質化せずに生成できる画像と同様にしたい場合、アップスケーラーは「R-ESRGAN 4x+」を選び、ノイズ除去強度は「0.4」程度に下げるのがおすすめです。

STEP

画像を生成する

Hires.fix関係を含めてすべての設定が終わったら、通常時と同様にボタンを押して画像を生成しましょう

通常の画像生成とHires.fixによる処理が続けて実行されるため、通常の生成よりも時間がかかります

処理の完了後に出力されるのは、高画質化された画像のみです。

stable-diffusionの画面

方法2.Extras|既存の画像を維持しやすい

stable-diffusion生成画像

既に生成している画像をアップスケール処理する方法です。

プロンプトなどを設定する必要がないため、Stable Diffusion WebUIで生成していない画像でも高画質化させやすいメリットがあります。

以下の手順で、PCに保存されている画像を高画質化させましょう。

  1. Extrasタブを選択する
  2. 高画質化する画像を選ぶ
  3. アップスケーラーや解像度などを設定する
  4. 画像を生成する
STEP

Extrasタブを選択する

画面上部にある「Extras(その他)」タブを選択します。

stable-diffusionの画面

Extrasには以下の機能が用意されており、複数の処理を同時にかけられます。

  • Upscale(アップスケール)
  • GFPGAN(ディテールを補正)
  • CodeFormer(顔の修復)
  • Split oversized images(巨大な画像を分割する)
  • Auto focal point crop(自動で焦点をクロップ)
  • Auto-sized crop(自動サイズで切り取り)
  • Create flipped copies(反転画像を生成する)
  • Caption(画像の説明文を生成)

画像の高画質化に関わる機能は上の3つですが、解像度を上げるだけであればアップスケールだけで十分です。

なお、Extrasで使える機能はバージョンや設定などで異なる場合があります。

GFPGANとCodeFormerの違い

GFPGANとCodeFormerは、細かい箇所を修復、補正するのに使えます

2つの機能における主な違いは以下のとおり。

相違点GFPGANCodeFormer
補正の特徴理想的な顔に修正元の顔の特徴を維持しつつ補正
仕上がりなめらかでリアル元画像に近い形を維持
アニメへの適用不向きある程度可能
処理時間比較的短いやや長い

このような特徴の違いがあるため、2つの機能を同時に使うことは推奨されません。

もしExtrasで補正処理したいときは、用途に応じてどちらかの機能を選択しましょう

STEP

高画質化する画像を選ぶ

Extrasタブ内で、高画質化する画像を選択します

Extrasには3つの処理方法があり、それぞれで画像の選び方が異なります。

処理方法処理できる画像数画像の選び方
単一画像(Single Image)1枚アップロード
バッチ処理(Batch Process)複数一括してアップロード
ディレクトリからバッチ処理(Batch from Directory)複数画像を保存しているディレクトリ(フォルダ)のパスを入力

バッチ処理する場合、画像を選んだあとで追加できないため、一度にすべての画像を選択する必要があります。

stable-diffusionの画面

まとめて高画質化するのであれば、実行する時点で指定のフォルダに入っている画像をすべて処理できる、ディレクトリからバッチ処理する方法がおすすめです。

ディレクトリのパスは「C:\Users\username\Pictures」のようにフォルダの場所を入力しましょう。

stable-diffusionの画面

他の機能から画像を転送することも可能

txt2imgやimg2imgで画像を生成した直後であれば、一度保存する手間を省いて転送できます

転送する方法は、生成した画像が表示されている箇所の下にある、三角定規のアイコン(📐)をクリックするだけでOK

stable-diffusionの画面

自動的にExtrasタブに移動し、先ほど生成した画像が入力画像に設定されます。

ちなみに「PNG内の情報を表示」タブでアップロードした画像も「その他に転送」ボタンを押して転送できます。

stable-diffusionの画面
STEP

アップスケーラーや解像度などを設定する

アップスケールにチェックを入れて有効化したうえで、処理の詳細を設定していきます

stable-diffusionの画面

アップスケールで設定できる項目は以下のとおり。

アップスケーラー 1(Upscaler 1)高解像度化するアルゴリズム・手法
アップスケーラー 2(Upscaler 2)同時に使うアップスケーラー
Upscaler 2の視認性(Upscaler 2 visibility)アップスケーラー 2による処理の強さ(値が小さいとアップスケーラー 1による処理が強くなる)
倍率指定(Scale by)解像度の拡大倍率
Max side length拡大した画像の最大幅
幅(Width)拡大した画像の幅
高さ(Height)拡大した画像の高さ
合うように切り抜き(Crop to fit)解像度指定でアスペクト比が変わる場合の切り抜き可否(チェック無しの場合、幅か高さの大きい方に合わせる)

アップスケーラー 2を設定しなければ、アップスケーラー 1による処理のみで高画質化します。

両方ともNoneに設定していると何も起こらないので注意してください。

STEP

画像を生成する

各種設定が終わったら、生成ボタンを押して高画質化させます

何も変わっていない画像が出力されるように見えるかもしれませんが、アップスケーラーを使う設定にしていれば、指定した解像度に拡大されているはずです。

右上のアイコンから画像をダウンロードし、サイズを確かめてみてください。

ディレクトリからバッチ処理した場合は、出力ディレクトリに設定したフォルダに処理後の画像がすべて保存されます。

方法3.MultiDiffusion|拡張機能で高解像度に生成できる

stable-diffusion生成画像

拡張機能MultiDiffusionを利用して画像をタイル単位で分割し、高解像度化する方法です。

標準搭載されていない拡張機能なのでインストールする必要がありますが、解像度を大きくしても崩れにくいメリットがあります。

以下の手順で拡張機能をインストールし、画像を高画質化させてください。

  1. 拡張機能をインストールする
  2. 高画質化する画像を生成したときと同様の設定にする
  3. Tiled Diffusionの関連項目を設定する
  4. 有効化したうえで画像を生成する

なお、MultiDiffusionはtxt2imgで画像生成する際にも利用できます。

Hires.fixで高画質化するよりも低スペックで実行できる可能性があるため、txt2imgでも利用してみると良いでしょう

STEP

拡張機能をインストールする

Stable Diffusion WebUIの「拡張機能」タブでMultiDiffusionをインストールします

「URLからインストール」を選択し「拡張機能のリポジトリのURL」に以下を入力してください。

他の項目は入力しなくてもいいので、そのままインストールボタンを押します。

stable-diffusionの画面

インストールが完了したあとは「インストール済」タブの一覧を開き、multidiffusion-upscaler-for-automatic1111にチェックが付いていることを確認したうえで「適用してUIを再起動」を押しましょう。

stable-diffusionの画面

再起動が完了すると、シード値を設定する箇所の下に3つのプルダウンバーが追加されているはずです。

stable-diffusionの画面
STEP

高画質化する画像を生成したときと同様の設定にする

img2imgタブを開き、高画質化したい画像をアップロードしたうえで、生成時と同じように設定を変更します

txt2imgやPNG内の情報を表示といった機能から画像を転送すれば、ほとんどの設定内容がそのままコピーされるのでおすすめです。

stable-diffusionの画面

ただし、txt2imgでシード値を-1にしていた場合、転送したあとも-1なので注意してください。

また、ノイズ除去強度が高いと元の画像からかけ離れた内容になる可能性があるため、0.4前後に下げたほうが良いでしょう

stable-diffusionの画面

元の画像を維持する必要がなければ、あえてプロンプトや設定を変更してアレンジする方法も。

STEP

Tiled Diffusionの関連項目を設定する

Tiled Diffusionを有効化して、必要な設定を変更します

stable-diffusionの画面

設定項目がかなり多いのですが、基本的には「アップスケーラー」と「倍率」だけ変更すればOKです。

ちなみに、設定できる他の項目については以下のとおり。

入力画像のサイズを維持する(Keep input image size)チェックを入れた場合は解像度を上げない
Method処理方法(MultiDiffusion または Mixture of Diffusers)
Move ControlNet tensor to CPU (if applicable)処理の一部をGPUではなくCPUに移動する(適用できる場合のみ)
Latentタイルの幅(Latent tile width)1タイルあたりの幅
Latentタイルの高さ(Latent tile height)1タイルあたりの高さ
Latentタイルの重なり幅(Latent tile overlap)タイル同士が重なる幅
Latentタイル バッチサイズ(Latent tile batch size)一度に処理するタイルの数
アップスケーラー(Upscaler)高解像度化に使うアルゴリズム・手法
倍率(Scale Factor)画像の拡大倍率

Noise Inversion(ノイズ除去の逆処理)

Enable Noise Inversionチェックを入れると細部を補正する処理が有効化される
Inversion steps補正処理のステップ数
Retouch全体的な修正の度合い
Renoise strength補正するディテールの強調度合い
Renoise kernel size畳み込み処理する際のカーネル幅

Region Prompt Control(領域ごとのプロンプト制御)

Enable Controlチェックを入れると領域ごとにプロンプトを設定する機能が有効化される
Draw full canvas backgroundチェックを入れると背景は領域を指定せず全体を描写する
Ref image参照する画像
Custom Config File以下で設定する領域の設定を保存(Save)またはロード(Load)する
Enable Region XX番目の領域を有効化する
種類(Type)前景(Foreground)または背景(Background)
Feather領域の境界をなじませる処理の度合い
x領域の始点(X座標)
y領域の始点(Y座標)
w領域の幅
h領域の高さ
Prompt領域内で追加するプロンプト
Negative Prompt領域内で追加するネガティブプロンプト
シード(Seed)領域内でのシード値

高画質化と直接関係しませんが、Region Prompt Controlは指定した領域ごとにプロンプトを指定できる便利な機能です。

ただし、Region Prompt Controlを有効化すると基本の高画質化設定は無効化されるので要注意

DemoFusionとTiled VAE

Tiled Diffusionとともに追加されているDemoFusionやTiled VAEも、画像の高画質化に利用できる機能です。

Tiled VAEを有効にすると、Tiled Diffusionで高解像度化した画像の色などを調整し、品質をより高められます。

いくつか設定項目がありますが、使うときはデフォルトのままで問題ないでしょう

DemoFusionは設定にコツが必要なうえ、Tiled Diffusionと同時に使えないため、今回は割愛します。

STEP

有効化したうえで画像を生成する

Tiled Diffusionのアップスケーラーと倍率を設定できたら、画像生成を実行します

画像を複数のタイルに分割して生成し直すため、設定によっては処理時間がかかるかもしれません。

時間がかかりすぎる場合は、アップスケーラーや倍率などを変更してみると良いでしょう

stable-diffusionの画面

方法4.ControlNetのTile|ディテールを補完する

stable-diffusion生成画像

拡張機能ControlNetを利用し、分割したタイルごとに高画質化する機能です。

シンプルな設定でディテールが補完された高解像度な画像を生成できます。

ControlNetを導入していない場合、以下のステップでTile機能を利用しましょう

  1. ControlNetをインストールする
  2. ControlNetタブ内で画像を選択する
  3. プリプロセッサやモデルなどを設定する
  4. 画像サイズを変更して生成する
STEP

ControlNetをインストールする

Tileによる高画質化に必要な拡張機能ControlNetをインストールします

ControlNetは、対応したモデルデータと組み合わせて使うことでさまざまな機能が利用できる拡張機能です。

「拡張機能 > URLからインストール」を開き、以下のリポジトリURLを入力してインストールしてください。

以下の記事に詳細が書かれているので、参考にすると良いでしょう。

モデルデータがなくても高画質化は可能

ControlNetにはモデルデータが必須な機能が多いのですが、Tile機能はモデルデータがなくても動作します

とはいえ、モデルデータがあったほうが高画質化の質が良くなります

良い品質で高画質化したいのであれば、以下のページでTileのモデルデータをダウンロードし、ControlNet用の置き場所(stable-diffusion-webui/models/ControlNet)に配置しましょう。

LARGEサイズhttps://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
MEDIUM・SMALLサイズhttps://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/tree/main
SDXL(Stable Diffusion XL)用https://huggingface.co/bdsqlsz/qinglong_controlnet-lllite/tree/main
ControlNetの画面
STEP

ControlNetタブ内で画像を選択する

txt2imgタブ内で、高画質化する画像を選択します

ControlNetのプルダウンバーを開き「単一画像」の下に画像をアップロードしてください。

stable-diffusionの画面

なお、Tileによる高画質化はディテール補正が強いため、もとの画像を維持するのは難しいでしょう。

なるべく変化を少なくしたいときは、アップロードした画像の生成時と同様のプロンプト、設定にしてください。

STEP

プリプロセッサやモデルなどを設定する

Tileでの処理に使うプリプロセッサやモデルを選択します

ControlNetの設定項目の中にある「プリプロセッサ」や「モデル」のドロップダウンリストから、Tile関連のものを選んでください。

先に「Control Type」でTileを選択すると、Tile機能に使われるプリプロセッサおよびモデルが自動的に選択されます

stable-diffusionの画面

プリプロセッサは以下の中から選べるので、目的に応じて決めましょう。

tile_resampleディテールを補正する(色味の変化が強め)
tile_colorfix+sharp色味の変化を抑える+輪郭のシャープにする
tile_colorfix色味の変化を抑える
blur_gaussianぼけた感じを強くする

その他のTile設定

プリプロセッサやモデル以外にも、以下のようなTile関連の設定があります

よくわからない場合は、何も変更しなくても問題ないでしょう。

Control Weight処理の強さ
Starting Control Step処理を開始するステップ(0=最初から)
Ending Control Step処理を終了するステップ(1=最後まで)
解像度(Resolution)ControlNetで処理する画像の解像度
Down Sampling Rate ※tile_resample時画像のぼかし度合い
Variation ※tile_colorfix、tile_colorfix+sharp時生成後画像のバリエーション・変化
Sharpness ※tile_colorfix+sharp時シャープ化の強さ
Sigma ※blur_gaussian時ガウスぼかしの強さ(標準偏差)
Control Mode処理の優先度:・Balanced……ほどよいバランス・My prompt is more important……プロンプト重視・ControlNet is more important……ControlNet重視
リサイズモード(Resize Mode)アスペクト比の変更方法:・Just Resize……変形する・Crop and Resize……余分を切り取る・Resize and Fill……不足分を追加する

なお、ここでの「解像度」項目は、ControlNetで処理する画像の解像度を設定します。

最終的に出力する画像のサイズではないので注意してください。

STEP

画像サイズを変更して生成する

画像のサイズを設定したうえで画像を生成します

通常の画像生成のときに設定する「幅」「高さ」を変更し、拡大したいサイズに設定してください。

その後、ControlNetが有効化されているのを確認してから生成ボタンを押しましょう

元の画像の構成を維持したまま、画像サイズとディテールが補強された画像が出力されるはずです。

stable-diffusionの画面

画像生成のモデルやプロンプトを変更すると大きく変わるので、いろいろと試してみるのも良いかもしれません。

Stable Diffusionの高画質化に関するQ&A

FAQ

Stable Diffusionの高画質化に関する、よくある質問と回答を紹介します。

  • どのアップスケール方法がおすすめですか?
  • プロンプトで高画質にする方法はありますか?
  • 高解像度にするにはStable Diffusion WebUIが必要ですか?
  • PCのスペックが不足していて高画質化できません

どのアップスケール方法がおすすめですか?

それぞれのアップスケール方法は、以下のような人におすすめです。

方法向いている人
Hires.fix準備不要で手軽に使いたい人
Extras元の画像を変えずに解像度を上げたい人
MultiDiffusionPCスペックが低めの人、4K以上に高解像度化させたい人
ControlNetのTileディテールを補正して高品質化させたい人、ControlNetを使っている人

単純に画像サイズを大きくしたいのであれば、Hires.fixやExtrasから利用してみてください

プロンプトで高画質にする方法はありますか?

高い品質の画像を生成するのが目的であれば、プロンプトで対応することも可能です。

以下のようなプロンプトを入力することで良画像が生成しやすくなるでしょう。

  • 品質を高めるプロンプト(best qualityなど)
  • 解像度に関連したプロンプト(8Khighresなど)
  • 作風を決めるプロンプト(super fine illustrationなど)

より詳しいプロンプトにするほど、画像のクオリティは上がりやすいようです。

なお、画像生成時に設定する幅や高さをプロンプトで変更することはできません。

高解像度にするにはStable Diffusion WebUIが必要ですか?

Stable Diffusion WebUI以外にも、高解像度化や高画質化のためのサイト・ツールはあります

たとえば、PicWishではAIを利用した高画質化ツールなどが無料で提供されています。

PicWish
出典:PicWish

さらに、画像編集ツールやペイントツールに高画質化機能が付いている場合も。

高解像度化するだけが目的であれば、新たにStable Diffusion WebUIをインストールする必要はないでしょう。

PCのスペックが不足していて高画質化できません

以下の方法で、低スペックでも高画質化できる可能性があります

  • アップスケーラーを変更する
  • Tiled Diffusionの場合、Latentタイルの幅・高さやバッチサイズを小さくする
  • ControlNetの場合、低 VRAMにチェックを入れる

それでも高画質化できないのであれば、Web上で利用できる画像生成サービスなどを視野に入れると良いかもしれません。

クラウド上で高性能PCによる画像が生成できるため、生成効率が上がって一石二鳥です。

ConoHa AI Canvasがおすすめなので、興味があればチェックしてみてください。

ConoHa AI Canvas  
出典:ConoHa AI Canvas  

まとめ

本記事では、Stable Diffusionの高画質化について解説しました。

最後に、記事の内容をおさらいしておきましょう。

  • Stable Diffusion WebUIを利用した高画質化方法は4つある
  • Hires.fixは準備不要で手軽に使える
  • Extrasは画像のディテールを変更せずに一括処理できる
  • MultiDiffusionは4K以上の高解像度で生成できる
  • ControlNetのTileはディテールの補完に優れている

それぞれの方法にメリット・デメリットがあるため、目的や状況に応じて最適な方法が変わります

実際に各手法を試してみて、自分のニーズに合った高画質化方法を決めてみてください。

お問い合わせ

お問い合わせ

metalandへのお問い合わせは以下のフォーム、もしくはLINE@よりお願いいたします。

  • LINE@:1〜2営業日以内にご返信させていただきます。
  • 問い合わせフォーム:3〜5営業日以内にご返信させていただきます。

記事のご制作依頼、広告掲載、プレスリリースなどお気軽にお問い合わせください。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

「Metaland編集部」は、Web3.0、メタバース、AIといった最新のトピックを皆様にお届けします。専門知識がない方でもご心配は不要です。情報を深くかつ分かりやすく解説することを重視し、新しいデジタル時代への案内役となることを目指しています。一緒に新たなステップを踏み出しましょう!

目次