見出し画像

高画質化のやり方 / Stable Diffusion

Stable Diffusionで高画質化(アップスケール)するやり方のメモ。
以下の3つのアップスケール方法を比較してみた。

  1. Hires.fix

  2. MultiDiffusion

  3. Extras


①Hires.fixの使い方

画像の破綻や画質の劣化を抑えて、高解像度の画像を生成することができる。
もとから導入されている機能で、拡張機能をインストールする必要がない。

また、元絵を一番忠実に再現しながらアップスケールしてくれる。

▼ 高画質化する流れ
 ①まず低解像度で画像を生成する。
 ②画像をアップスケール(拡大)する。
 ③img2imgを使用してモデルを追加する。

使い方の流れ

Hires.fix(高解像度補助)にチェックを入れる。
各種設定項目が表示される。

🔸 Upscaler (アップスケーラー)
元画像を拡大する際に用いるアルゴリズムの種類。

🔸Hires steps (高解像度でのステップ数)
ノイズを除去する回数。10~20ほどが基準で、使用するUpscalerによって調整する。値が大きいほど生成時間は長くなる。

🔸Denoising strength (ノイズ除去強度)
ノイズを除去する強度。デフォルトは0.7。値が低いほどぼやける。
値を大きくするほど高解像度なって鮮明になるが、元画像と異なったイメージの画像が生成されやすい。

🔸Upscale by (アップスケール倍率)
画像拡大率。
width:512px・height:512pxで値を2にした場合、2倍になるのでwidth:1024px・height:1024pxになる。

値が大きいほどより高解像度になるが、生成時間も長くなる。


以下の設定で画像を生成してみた。個人的にアップスケーラーは「R-ESRGAN 4x+」が扱いやすく綺麗に仕上がりオススメ。

生成結果の比較

アップロードした画像:512px ✖️ 512px

生成された画像:1024px ✖️ 1024px


このように、まつ毛や瞳の中、髪や肌の艶感などがより線密に生成される。

Hires steps (高解像度でのステップ数)とDenoising strength (ノイズ除去強度)を比較してみた。


②MultiDiffusionの使い方

画像のレイアウトを維持したままサイズを拡張して、高解像度の画像を生成してくれる。

MultiDiffusionは、低VRAM容量でも高解像度の画像生成が可能。
個人的には一番綺麗にアップスケールができて使いやすく好き。

インストール方法

上部タブの拡張機能 → URLからインストール → 拡張機能のリポジトリのURLに下記を入力する

https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111

インストールのボタンを押すと導入が完了する。
ページを再起動すると、下記の場所に「Tiled Diffusion」と「Tiled VAE」が表示される。

使い方の流れ

通常通り、txt2imgで画像を生成する。

「img2imgに転送」をクリック

すると、下記のようにimg2imgのページに転送される

「サンプリング方法」を先ほどtxt2imgで生成したものと同じに設定する。

「Tiled Diffusion」をクリックして開く

「Enable Tiled Diffusion」と「Keep input image size」にチェックを入れる

好きなアップスケーラーを選択する。

倍率(Scale Factpr)は、画像の拡大率のこと。
今回はWidth:512・Height:512の画像のため、2倍のWidth:1024 Height:1024が生成される。

ContorolNetの設定を行う。
ContorolNetの導入方法はこちらを参考↓

ContorolNetのタブを開く → 有効化にチェックを入れる → Cannyを選択
プリプロセッサとモデルをCannyにする。

生成ボタンを押して画像を生成する。

生成結果の比較

Width:512・Height:512

アップスケールしたバージョン・Width:1024 Height:1024
アップスケールの種類:R-ESRGAN 4x+

R-ESRGAN 4x+

アップスケールを比較してみた。

個人的には「R-ESRGAN 4x+」が一番線密に仕上がる気がする。


③Extrasの使い方

Hires.fixやMultiDiffusionに比べると質は落ちるが、生成速度が速い。
スペックが低いPCでも扱いやすい。

使い方の流れ

Extras(その他)タブをクリック

「ここに画像をアップロード」に画像をアップロードするか、
txt2imgの「その他に転送」から画像を送る。

Scale by resize(倍率):画像の拡大率。2にすると2倍になる。

Upscaler 1・2:アップスケーラーを2つ使うことができる。

Upscaler 2 visibility (Upscaler 2の視認性):Upscaler2の効果量を設定する値。

GFPGANの表示:ノイズが入っている人物の顔を復元してくれる。値を大きくしすぎると崩れるので0.2までが基準。

CodeFormerの表示:顔を高画質化してくれる。値を大きくしすぎると崩れるので0.2までが基準。

CodeFormerの重み:CodeFormerをどれくらい効かせるかの値。値を大きくしすぎると崩れるので0.2までが基準。


以下の設定でアップスケールをしてみた。

生成結果の比較


3つを比較してみた

  1. Hires.fix・・・元絵を忠実に維持しながら高画質にしたいとき

  2. MultiDiffusion・・・元絵と多少異なってもいいのでより繊密な高画質を優先したいとき

  3. Extras・・・生成速度を優先して、サイズを拡大したいとき


こちらのメモもおすすめです↓


この記事が気に入ったらサポートをしてみませんか?