アップスケーラーで高画質化

アップスケーラーで高画質化 Stable Diffusion
アップスケーラーで高画質化

顔がぼやけているので鮮明にしたい。
背景をもう少し詳細にしたい。
など画像を高画質化したいことは多々あることでしょう。

Stable Diffusion Web UIで高画質化することができます。
Stable Diffusion で生成した画像でなく元々持っている画像の高画質化もできます。

高画質化のしくみ

高画質高解像度超解像拡大鮮明化ノイズ除去など画像加工の用語は似たものが多いです。
ここで話す高画質化とは以下の意味で使用します。
画像サイズを拡大し、ピクセル間を上手く補間して綺麗に見えるようにする処理についてです。
いわゆる超解像についてです。

アップスケーラー

画像サイズを拡大(アップスケーリング)するものです。
拡大したときのピクセルをどの色で埋めるか(補間)のアルゴリズムとも言えます。

Stable Diffusion Web UIにはデフォルトでいくつかのアップスケーラーがあります。
実際にアップスケーリングしてみて画像を比較してみます。

Nearest

最も近いピクセルで補間します。
単純なアルゴリズムのため高速ですが、ジャギーになりがちです。

Lanczos

周辺のピクセルを用いて補間します。
有名なのは距離3までの周辺ピクセルを用いるLanczos3です。

ESRGAN_4x

超解像で有名なESRGANです。
上2つのアルゴリズムよりやはりGANの方が綺麗に拡大できます。

R-ESRGAN 4x+

ESRGANをパワーアップしたReal-ESRGANです。
現在はこのアップスケーラが最も使い勝手が良いと思います。

R-ESRGAN 4x+ Anime6B

2次元(アニメ)調の画像に強いReal-ESRGANです。

LDSR

Latent Diffusion Super-Resolutionの略で、拡散モデルで高画質化します。
最も処理時間がかかります。

超解像の技術は、以下の順で進化しています。
ちょうど画像生成AIの発展と同じになっています。

  1. 周辺ピクセルの利用(Nearest、Lanczosなど)
  2. GAN(SRGAN、GFPGAN、ESRGAN、Real ESRGANなど)
  3. 拡散モデル(LDSR)

アップスケーラーの使い方

Stable Diffusion Web UIで高画質化するときのパラメータ設定について。

パラメータ
  1. Extrasタブを開く
  2. 高画質化したい画像を入力する
  3. 拡大倍率を選択する
  4. アップスケーラーを選択する
  5. 顔を高画質化するパラメータを設定する
  6. Generate

3:[Scale by]タブで拡大倍率、[Scale to]タブで拡大後の画像サイズを指定できます。
4:アップスケーラーは1と2の2つを指定できます。
  2つ指定した際は、2つ目のアップスケーラーの反映割合をUpscaler 2 visibilityで選択できます。(0〜1)
5:顔を高画質化するモデルとしてGFPGANCodeFormerを指定できます。
  人の顔がある場合は指定すると綺麗になります。

高画質化の設定
高画質化の設定

アップスケーラー比較

それぞれのアップスケーラーで高画質化した画像を比較します。
元画像は256×256で4倍(1024×1024)にアップスケーリングします。

元画像(256×256)
元画像(256×256)

チェックポイントとしては、猫の毛並み、右肩の服のシワ背景の物体でしょうか。

Nearest
Nearest
Lanczos
Lanczos
LDSR
LDSR
ESRGAN
ESRGAN
R-ESRGAN
R-ESRGAN
R-ESRGAN_anime
R-ESRGAN_anime

上記結果はGFPGANを使用していません。
最も綺麗になっているのはReal-ESRGAN、次点でLDSRでしょうか。
Real-ESRGAN_animeは確かにアニメ調になっています。

次に2つのアップスケーラーを組み合わせた結果を表示します。
Upscaler 2 visibility は0.5で実施しましたので、アップスケーラー1と2を半々で適用した結果です。

R-ESRGAN + Nearest
R-ESRGAN + Nearest
R-ESRGAN + Lanczos
R-ESRGAN + Lanczos
R-ESRGAN + LDSR
R-ESRGAN + LDSR
R-ESRGAN + ESRGAN
R-ESRGAN + ESRGAN
R-ESRGAN + R-ESRGAN_anime
R-ESRGAN + R-ESRGAN_anime

最も良いReal-ESRGANをベースに他のアップスケーラーを組み合わせたためか、
どれも同じような結果になりました。
Real-ESRGAN + LDSRは猫のヒゲが綺麗に描けています。

最後に顔を高画質化するGFPGANCodeFormerを使用した結果を表示します。
いずれもReal-ESRGAN + LDSRで顔高画質化のパラメータを変化させた結果です。

GFPGAN 1.0
GFPGAN 1.0
GFPGAN 1.0 + CodeFormer 1.0
GFPGAN 1.0 + CodeFormer 1.0
CodeFormer 1.0
CodeFormer 1.0
GFPGAN 1.0 + CodeFormer 0.5
GFPGAN 1.0 + CodeFormer 0.5
GFPGAN 1.0 + CodeFormer 1.0(weight 1.0)
GFPGAN 1.0 + CodeFormer 1.0(weight 1.0)
GFPGAN 0.5 + CodeFormer 1.0
GFPGAN 0.5 + CodeFormer 1.0
CodeFormer 1.0(weight 1.0)
CodeFormer 1.0(weight 1.0)
CodeFormer 1.0(weight 0.5)
CodeFormer 1.0(weight 0.5)
GFPGAN 0.5
GFPGAN 0.5

やはり顔がある場合はGFPGANCodeFormerを適用した方が良いです。
パラメータによって結構変わります。
目元も違っているため、好みによるかもしれません。

おわりに

結果は好みになりますが、
おすすめのアップスケーラは、Real-ESRGAN + LDSRです。

アップスケーラも画像生成AIモデルと同様、新しいものがどんどん出てきます。
4/28にもStability AIがアップスケーラのAPIを提供開始したそうです。
好みのアップスケーラとパラメータを調整しながら、より良い画像を生成したいですね♪

コメント

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