Stable Diffusion Web UI (AUTOMATIC1111) でのアップスケーリング方法

Stable Diffusion Upscaling AIツール

Stable Diffusion Web UIで利用できるアップスケール機能をいくつか紹介します。

スポンサーリンク

Hires. fix

Stable Diffusion web UIのtxt2imgで使える高解像度機能です。Hires前のディテールが悪くてもある程度奇麗に描きなおしてくれます。生成作業はtxt2imgの画面で完結しますが、実際はtxt2imgで生成した画像をimg2imgでアップスケーリングしています。

Hires. fix

Hires. fixのタブを開くと有効になり以下の項目が増えます。

Upscaler

画像の拡大処理に利用するアルゴリズムです。おおまかにLatent系(潜在空間アップスケール)とその他(ピクセル空間アップスケール)で違います。

Hires. fix Hires upscaler

Latent系は書き込みが増えるような感じですが、ESRGAN系などは比較的元の画像を維持したままアップスケーリングします。

Hires steps

Hires画像生成時のサンプリングの回数になります。デフォルトの0だとSampling stepsと同じ値になります。

Denoising strength

サンプリング時のノイズ除去の強さを制御します。

Hires. fix Denoising

Denoising strengthが低いほど構図の変化は小さいがぼやけた感じになります。大きいほど鮮明になるが構図の変化が起きやすくなります。サイズやアップスケーラーで変化が違うので調整する必要があります。

Upscale by

ミドルスペックのグラフィックボードなら1.5倍から2倍ほどがおすすめです。高い倍率は、ハイスペックのグラフィックボードでないとVRAM不足でエラーになったり生成に大きく時間がかかったりします。

txt2img (512×512)の画像をHires. fixで倍にしてみました。

txt2img Base (512x512) Hires. fix (1024x1024)

顔などのディテールもよくなりました。今回はUpscalerにLatentを使ったため背景などもそこそこ変化しています。UpscalerやDenoising strengthで好みに調整をしてください。

Hires. fixで生成した画像をさらに大きくしたい場合は、以下の方法がおすすめです。

ControlNet TileとTiled Diffusion & VAE

Tiled diffusionでは、タイルごとに分割して生成することで大きい画像を作ることができます。しかし、プロンプトが各タイルごとに影響を与えてしまう問題があります。そこでControlNet Tileを使えばDenoising strengthが高くても全体の構造を維持することができます。SD1.5のモデルのみ対応しています。

これらは拡張機能なので利用するためにインストールが必要です。ControlNetのインストールがまだの場合はこちらをご覧ください。

Tiled Diffusion & VAEのインストール

Tiled Diffusion & VAE
  1. Extensionsタブを開く
  2. Availableタブを開く
  3. Load fromをクリック
  4. SearchでTiledDiffusion with Tiled VAEを探してInstall
  5. 再起動

アップスケーリングの設定

公開ページに推奨設定があったのでそちらを参考に設定しました。

Stable Diffusion PNG Info

PNG Infoにアップスケーリングしたい画像をアップロードしてimg2imgにおくる

img2imgの設定

  • ポジティブプロンプトは、品質や解像度に関するプロンプト以外を削除する。こうすることでタイルごとにオブジェクトが描かれるのを防ぐ。
  • Denoising strengthは0.75

Tiled Diffusionの設定

Tiled Diffusion
  • ✅Enable Tiled Diffusion
  • Method Mixture of Diffusers
  • Latent tile(分割するタイルサイズで8をかけた値が実際のサイズ。SD1.xは64×64、SD2.xは96×96がおすすめ)
  • Latent tile overlap 8
  • Latent tile batch size(タイルを同時に生成する枚数。多い方が生成速度が速くなるが大きいVRAM容量が必要)
  • Upscalerはお好みで
  • Scale Factorで拡大倍率を設定
  • ✅Enable Noise Inversion
  • Inversion steps 30
  • Renoise strength 0.7(ディテールが過剰に描かれるのを抑える。調整してください)

Tiled VAEの設定

Tiled VAE

✅Enable Tiled VAE

ControlNetの設定

ControlNet Tile
  • アップスケーリングしたい画像をアップロード
  • ✅Enable
  • ✅Low VRAM(VRAMが8GB以下の場合)
  • Preprocessor tile_resample・Model control_v11f1e_sd15_tile(Control TypeでTileを選択すると自動で設定される)
  • Down Sampling Rate 2

Hires. fixで生成した画像(1024×1024)を倍にアップスケーリングしてみました。

Hires. fix (1024x1024) Tiled Diffusion (2048x2048)

大きく構図も変化することなく奇麗にアップスケーリングすることができました。設定値はお好みで調整してください。

タイトルとURLをコピーしました