Stable Diffusionのサンプリングメソッドの違いにより、どのような画像が出力されるかを比較します。
Stable Diffusionには、複数のサンプリングメソッドが用意されていますが、種類が多くどのメソッドを使用すればよいのか迷う場合があります。
この記事では、サンプリングメソッドの違いによる出力画像の違いを比較します。
次のプロンプトで画像を生成します。
モデルは、Stable Dffusion 2.1 系の "Replicant V3"を利用します。
モデルは、Stable Dffusion 1.5 系の "DreamShaper 6"を利用します。
Sampling stepsは25、出力サイズは、1,024 x 1,680 とします。
デフォルトで選択されるSampling methodのEuler a ですが、出力は粗い印象で、べったりとしたペインティングになる印象です。
速度は速いですが、ancestral samplingの手法であり、ステップごとに画像が大きく変わる特徴があります。
Euler a と比較すると、細かい部分の描画ができています。
Euler a と比較するとさらに細かい部分まで描画できているように見えます。鮮明感もあります。遠景の鮮明感を比べると違いが分かりやすいです。
Euler, LMS と比較すると形状が若干異なる出力になりました。細かい部分まで描画できていますが、イラスト系のモデルの場合は若干粗さ(手書き感)を感じる面もあります。
Eulerより鮮明感が若干高い印象です。コントラストが若干低い印象で、細かい部分の凹凸の表現がLMSやHeunと比較すると若干フラット感がある気がします。
Ancestral Sampling手法のモデルです。若干形状に粗さを感じます。Euler aと比較すると詳細部分まで描画できています。
Ancestral Sampling手法のため、ステップ数ごとに絵柄が大きく変化する特徴があります。
出力結果はフラット感のある画像の印象です。
Ancestral Samplingのモデルのため、ステップ数ごとに絵柄が変わる特徴があります。細部の凹凸まではあまり描画されない印象です。
ETAの値が大きいほど速度が速くなる一方で画質が低下します。今回は ETA=0 での結果です。
ステップ数を増やすほど画質が向上する特徴があります。細部まで描画されています。
ETAの値が大きいほど速度が速くなる一方で画質が低下します。今回は ETA=0 での結果です。
細部まで表現できています。LMSの結果と似ています。
他のサンプリングメソッドと出力される画像の形状が異なります。ステップ数に関係なく動作するという特徴があります。
ETAの値が大きいほど速度が速くなる一方で画質が低下します。今回は ETA=0 での結果です。
細部は比較的表現できている印象ですが、細かい部分の描画は省略される印象です。出力2の沿岸部分が砂浜に描画されているのが目につきます。
DPM++ SDEの改良版のサンプリングメソッドで、DPM++ SDEより細部が描画されています。
DPM++ SDEで砂浜として描画されていた部分にも建物が描画されています。
フラット感が軽減され、画面内の変化も出る印象です。
他のサンプリングメソッドと大きく異なる結果になりました。出力の画像サイズが大きいことが影響している可能性も考えられます。
ややフラットでラフスケッチ感のある出力結果です。細部も比較的表現できています。
ETAの値が大きいほど速度が速くなる一方で画質が低下します。今回は ETA=0 での結果です。
非常に重い処理のサンプリングメソッドで、他のメソッドより処理時間がかかります。
LMSの改良版のサンプリングメソッドです。LMSとほぼ同じ出力結果になり、細部も表現できています。
同じステップのLMSと比較すると、LMS Karrasのほうが若干丸みを帯びる印象です。出力2の海の上の道路の曲がり方、海岸の形状の不定形感などに特徴が出ている印象です。
DPM2の改良版です。DPM2よりコントラストが低くなり、影の部分の詳細な描画がDPM2より良く表現できている印象です。
一方で、コントラストが低いため、DPM2より画像のメリハリが落ちる印象です。
また、形状がDPM2や他のサンプリングメソッドと異なる結果になります。
DPM2 aの改良版です。DPM2 aと似た形状の出力になります。DPM2 aよりエッジのシャープさが際立ちます。遠景の表現もDPM2 aより鮮明に描画できています。
Ancestral Sampling手法のためステップ数により絵柄の変化があることと、出力結果は手書き感、ラフ感がある印象です。
出力2では、細かいビルの本数が増え、画面密度が高くなるのが特徴的です。
DPM++ 2S aの改良版です。DPM++ 2S aと比較するとエッジのシャープさがあります。DPM++ 2S aは独特な形状での出力になりましたが、DPM++ 2S a Karrasでも、
DPM2 a Karrasに似た形状での出力結果となりました。細部もそれなりに描画できていますが、Ancestral Sampling手法のためか、スケッチ感、ラフ感のある出力結果です。
DPM2 a Karrasほどの細かさは出ないです。
ビルが四角くならずに描画できており、細部も描画されています。ラフ感が少なくバランスが良さそうな印象です。
出力形状が他のサンプリングメソッドと異なり DPM++ SDE に似た形状です。
細かい部分のシャープさは、DPM++ SDEより表現できています。出力2の画像を見ると、やや直線成分が多い印象のため、ステップ数を若干下げると良いのかもしれません。
他のサンプリングメソッドと出力形状が異なります。出力画像を見た感覚としては、ステップ数25では詳細な表現まで到達できておらず、
ステップ数が足りていないような印象を持ちます。DPM++ 2M SDE Karrasを利用する場合はステップ数を増やしたほうが良いのかもしれません。
画像自体の複雑さは、ステップ数25でも出ていますので、フラットかつ細かめの表現をしたい場合は、このステップ数でも良さそうです。
詳細部分まで表現できています。LMSと同等の細かさで表現できています。LMSよりコントラストが落ちる印象です。
ステップ数を上げるとより詳細部分が表現できるとされています。
Stable Diffusion 2.1系のモデルではうまく出力できませんでした。細部まで描画され、DDIMよりコントラストがしっかりつく印象です。
詳細部分までしっかり表現できています。出力2では他のサンプリングメソッドと大きく異なる出力結果になりました。出力画像に若干赤みがある印象です。
いくつかのサンプリングメソッドについて、ステップ数を50に上げた場合の結果を紹介します。
ステップ数を上げると、丸いビルの形状が四角形に変わってしまいます。周囲の背景の鮮明度は若干上がる部分もありますが、ほとんど変化なしです。
ステップ数を上げることで、丸みが減り、やや単調になった印象があります。ステップ数を増やしすぎないほうが良い結果が得られそうです。
ステップ数を上げたことで、フラット感が強くなり、単調な画面になってしまう印象です。DPM2 a Karrasではステップ数は増やしすぎないほうが良さそうです。
DPM++ 2Mの場合も、ステップ数を上げると、ビルの形状が四角形に近い形状になります。背景の鮮明感はほぼ変わらないです。
中心のビルの形状はあまり変わりませんが、周囲の背景の鮮明度はステップ数を上げたほうが鮮明になります。
ステップを上げると、画面全体で直線成分が増え、画像として単調になる印象もあります。
ステップ数25では、若干粗さも感じる出力でしたが、50にすると他のサンプリングメソッドと似た形状の出力になり、細部も描画されている印象です。
ステップ数を増やしても大きな変化はありません。
こちらもステップ数を上げると、ビルの形状が四角形に変わってしまいます。背景の鮮明度はそれほど変わらない印象です。
出力2は25ステップでは他のサンプリングメソッドと異なる形状が出力されましたが、50の場合は、他のサンプリングメソッドと似た形状で出力できています。
比較結果から、感覚的ですが、以下の傾向がありそうです。
DDIMは画面密度とシャープ感のバランスが良く、制御しやすいこともあり、おすすめされているサンプリングメソッドであることは納得できます。
やや発色等に癖がありますが、UniPCは画面の密度とシャープ感のバランスが良い印象があります。
DPM adaptiveも非常に処理が重いサンプリングメソッドですが、バランスは良い印象です。
新しいサンプリングメソッドの、DPM++ 2M Karras もバランスの良さを感じます。
直線成分が増えると、絵としての面白みが減る印象があるため、自然物を描画する場合には、ステップ数は増やしすぎず、
直線成分の増えないサンプリングメソッド(LMS, LMS Karras, DPM adaptive など)を使うのが良さそうです。