[Stable Diffusion Web UI] アップスケール方法による結果の違いを比較検証!

※本ブログでは、商品・サービスのリンク先にプロモーションを含みます。

スポンサーリンク

Stable Diffusion Web UIで高解像度の画像を生成したいとき、生成する画像のサイズを上げると、絵が破綻することが多いと思います。これは、画像生成モデルの学習元の画像のサイズと生成する画像のサイズがかけ離れていることが原因だと思われます。

そこで今回は、Stable Diffusion Web UIで生成した512×512の画像を高解像度化する方法の解説と、その方法による違いを比較検証していきたいと思います。

グラフィックボードの性能が足りない方は、この機会に是非グレードアップを検討してみてください。

AI画像生成の入門モデルとしておすすめのグラフィックボード

◆ワンランク上のハイエンドモデルとしておすすめのグラフィックボード

◆最高峰の超ハイエンドモデルとしておすすめのグラフィックボード

MSI MSI GeForce RTX 4090 SUPRIM X 24G / PCI-Express 4.0 グラフィックスボード RTX 4090 SUPRIM X 24G

Stable Diffusionについて、さらに詳しく知りたい方はこちらも参考にしてみてください。

Stable Diffusion AI画像生成ガイドブック

created by Rinker
¥2,420 (2024/02/28 07:21:13時点 楽天市場調べ-詳細)
スポンサーリンク

Stable Diffusion Web UIの高解像度化の機能

Stable Diffusion Web UIには、高解像度化するための機能として以下のものがあります。
・Hires. fix (高解像度補助)
・Extrasのアップスケール

それぞれ使ってみて結果をお見せしたいと思います。

比較対象元となる高解像度化前の画像(512×512)はこちらです。

比較元の画像

Hires. fix (高解像度補助)を使用する

Stable Diffusion Web UIでは、高解像度化するための様々な手法を選択することができます。
まずは、手法(Upscaler)毎の特徴を見ていきましょう。

Upscaler生成画像
Latent画像の解像度を高めるための技術の一つですが、画風にも影響を与えることがあります。
入力された元画像の潜在空間を拡大して、txt2imgで再生成するという方法のため、Denoising strengthを高めに設定しないとノイズが残る傾向があります。他のアップスケーラーと比較すると、Latentはディテールが豊かで色味が鮮やかな画風になりやすいですが、元画像から変化する部分が多くなることもあります。
イラストやアニメ風の画像に向いています。
Lanczos画像の縮小リサイズに向いている補間メソッドです。
Sinc関数を用いて、画像の周波数成分を低域に限定することで、画像の鮮明さを保ちつつ、ノイズやエイリアスを抑える効果があります。lobeというパラメータで波の広がりを調整できる特徴があります。lobeの値が大きいほど、画質が向上しますが、処理が重くなります。
写真や風景などの自然な画像に向いています。
Nearest画像の拡大や縮小において、隣り合うピクセルの色をそのままコピーする補間メソッドです。
処理が最も速く簡単なメソッドですが、画質が劣化しやすく、ジャギーや偽色が発生する欠点があります。
ドット絵やパレット画像など、色の変化が少なく、ピクセルの形が重要な画像に向いています。
ESRGAN_4x画像の拡大リサイズに向いている補間メソッドです。
Enhanced Super-Resolution Generative Adversarial Networks (ESRGAN)という敵対的生成ネットワーク (GAN)を用いて、画像の高解像度化を行う技術です。画像の細部やテクスチャを鮮明に再現し、リアルな画質を実現する効果があります。
イラストやアニメなどの画像に向いています。
LDSRDeep Laplacian Pyramid Super-Resolutionの略で、画像の超解像に用いられる深層学習アルゴリズムです。
画像の高周波成分を復元するためにラプラシアンピラミッドを用いるという特徴があります。高精度、高効率という利点があります。
イラストやアニメなどの画像に向いています。
R-ESRGAN 4x+ Anime6BReal-ESRGANという画像の超解像に用いられる深層学習アルゴリズムの一種です。
4x+は、4倍の拡大率、Anime6Bは、Anime6Bというモデルを使用することを表しています。
画像の細部や色彩を綺麗に復元することができるという特徴があります。
アニメやイラストなどの画像に向いています。
ScuNETSwin-Conv-UNetという画像のノイズ除去に用いられる深層学習アルゴリズムの一種です。
Swin-Convブロックという局所的なモデリング能力と非局所的なモデリング能力を持つブロックを用いて、UNetというエンコーダー・デコーダー構造を構築しています。実際の画像に含まれる様々な種類のノイズを除去することができるという特徴があります。
写真や動画などの画像に向いています。
ScuNET PSNRScuNETの一種で、PSNRという画質評価指標を最大化するように学習されたモデルです。
ScuNETと比べて、画像の細部や色彩をより忠実に復元することができるという特徴があります。
写真や動画などの画像に向いています。
SwinlR_4xSwinIRという画像の超解像に用いられる深層学習アルゴリズムの一種で、4倍の拡大率を持つモデルです。
Swin TransformerというTransformerベースのブロックを用いて、画像の特徴を階層的に抽出することができるという特徴があります。
写真や動画などの画像に向いています。

Upscalerの選択以外では、Hires stepsとDenoising strength(ノイズ除去強度)というパラメータがあります。
まずはこの2つの適正範囲を検証していきたいと思います。

Hires steps

Hires stepsは0~150まで選択でき、デフォルトは0になっています。
倍率を2倍にして、アップスケーラをデフォルトのLatentに固定、またDenoising strengthもデフォルトの0.7に固定して、ステップ数を(0,10,15,20,35,50,100,150)にして比較してみます。
また、高解像度化にかかる時間も比較してみます。