顔がぼやけているので鮮明にしたい。
背景をもう少し詳細にしたい。
など画像を高画質化したいことは多々あることでしょう。
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の発展と同じになっています。
- 周辺ピクセルの利用(Nearest、Lanczosなど)
- GAN(SRGAN、GFPGAN、ESRGAN、Real ESRGANなど)
- 拡散モデル(LDSR)
アップスケーラーの使い方
Stable Diffusion Web UIで高画質化するときのパラメータ設定について。
3:[Scale by]タブで拡大倍率、[Scale to]タブで拡大後の画像サイズを指定できます。
4:アップスケーラーは1と2の2つを指定できます。
2つ指定した際は、2つ目のアップスケーラーの反映割合をUpscaler 2 visibilityで選択できます。(0〜1)
5:顔を高画質化するモデルとしてGFPGANとCodeFormerを指定できます。
人の顔がある場合は指定すると綺麗になります。
アップスケーラー比較
それぞれのアップスケーラーで高画質化した画像を比較します。
元画像は256×256で4倍(1024×1024)にアップスケーリングします。
チェックポイントとしては、顔、髪、猫の毛並み、右肩の服のシワ、背景の物体でしょうか。
上記結果はGFPGANを使用していません。
最も綺麗になっているのはReal-ESRGAN、次点でLDSRでしょうか。
Real-ESRGAN_animeは確かにアニメ調になっています。
次に2つのアップスケーラーを組み合わせた結果を表示します。
Upscaler 2 visibility は0.5で実施しましたので、アップスケーラー1と2を半々で適用した結果です。
最も良いReal-ESRGANをベースに他のアップスケーラーを組み合わせたためか、
どれも同じような結果になりました。
Real-ESRGAN + LDSRは猫のヒゲが綺麗に描けています。
最後に顔を高画質化するGFPGAN、CodeFormerを使用した結果を表示します。
いずれもReal-ESRGAN + LDSRで顔高画質化のパラメータを変化させた結果です。
やはり顔がある場合はGFPGAN、CodeFormerを適用した方が良いです。
パラメータによって結構変わります。
目元も違っているため、好みによるかもしれません。
おわりに
結果は好みになりますが、
おすすめのアップスケーラは、Real-ESRGAN + LDSRです。
アップスケーラも画像生成AIモデルと同様、新しいものがどんどん出てきます。
4/28にもStability AIがアップスケーラのAPIを提供開始したそうです。
好みのアップスケーラとパラメータを調整しながら、より良い画像を生成したいですね♪
コメント