[Stable Diffusion Web UI] サンプリング方法(Sampling method)の違いによる生成画像の出力結果を比較検証!

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

スポンサーリンク

みなさん、AI画像生成を楽しんでいますか?
今回はStable Diffusion Web UIのサンプリング方法(Sampling method)の設定の違いによって、生成される画像にどのような影響があるかを比較検証したいと思います。

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

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/05/08 11:27:19時点 楽天市場調べ-詳細)
スポンサーリンク

サンプリング方法とは

Stable Diffusionで画像を生成する際に、どのような数値計算法を使用するかを指定するオプションのことです。数値計算法の違いは、画像の生成速度や品質に影響があります。
一般的には、Euler aは簡単な方法のため生成速度が速く、HeunやDPM2は複雑な方法のため生成速度が遅いようです。
しかし、どのサンプリング方法が最適かは、画像生成モデルやプロンプトなどの様々な条件によって左右されるため、自分の好みに合ったものを色々と試してみるのが良いと思います。

Stable Diffusion Web UIでは以下のサンプリング方法が選択できます。

サンプリング方法(Sampling method)概要説明
Euler aオイラー法と呼ばれる常微分方程式の数値解法の一種で、最も簡単な方法です。
「Euler」というサンプリング方法と似ていますが、「Euler a」はancestral samplingと呼ばれる手法を使っており、画像生成の過程で、各ステップごとにノイズを加えるのではなく、最初に一度だけノイズを加えておき、その後はノイズを固定して計算する手法です。
このため、「Euler」よりも少し速くて安定した画像生成ができると言われています。
しかし、「Heun」や「DPM2」などの高次の方法に比べて精度が低い代わりに生成速度が速いため、画像生成の初期段階に適しています。
Eulerオイラー法と呼ばれる常微分方程式の数値解法の一種で、最も簡単な方法です。
「Euler a」と似ていますが、「Euler」はancestral samplingと呼ばれる手法を使っていません。
このため、「Euler a」よりも少し遅くて不安定な画像生成がする可能性があります。
しかし、「Heun」や「DPM2」などの高次の方法に比べて精度が低い代わりに生成速度が速いため、画像生成の初期段階に適しています。
LMSlinear multistepと呼ばれる常微分方程式の数値解法の一種で、高次の方法です。
「Euler」や「Heun」などの単一ステップ法に比べて、過去の複数のステップを利用して計算するため、精度が高いですが、代わりに計算時間が長くなります。
Heunホイン法と呼ばれる常微分方程式の数値解法の一種で、二次の方法です。
「Euler」や「Euler a」などの一次の方法に比べて、精度が高いですが、代わりに計算時間が長くなります。
DPM2Denoising Diffusion Probabilistic Models (DPM)と呼ばれる確率モデルの一種で、高次の方法です。
「Euler」や「Heun」などの単一ステップ法に比べて、複数のステップを同時に計算するため、精度が高いですが、代わりに計算時間が長くなります。
DPM2 a「DPM2」の変種で、Ancestral Samplingと呼ばれる手法を用いています。
Ancestral Samplingとは、確率モデルの各変数を順番にサンプリングすることで、目的の分布からサンプルを生成する手法です。
「DPM2」と比べて、ステップ数を上げると絵が変わるという特徴があります。
これは、Ancestral Samplingによって、前のステップの画像に依存しないで次のステップの画像を生成するためです。また、「DPM2」と同じく、計算時間が長くなります。
DPM++ 2S aステップ数を上げると絵が変わるという特徴があります。
ETAというパラメータによって書き込みの速度や品質が変わります。
ETAが大きいほど書き込みが早くなりますが、画質が低下する可能性があります。
写真に近い質感を出すことが得意とされており、10ステップから成型し、20ステップと30ステップでは画面の変化幅が大きいとされています。
DPM++ 2Mステップ数が多いほど画質が向上するという特徴があります。
ETAというパラメータによって書き込みの速度や品質が変わります。
ETAが大きいほど書き込みが早くなりますが、画質が低下する可能性があります。
シャープで綺麗な絵になりやすく、Euler a系列の構図に近いとされています。
DPM++ SDEステップ数に関係なく動作するという特徴があります。
ETAというパラメータによって書き込みの速度や品質が変わります。
ETAが大きいほど書き込みが早くなりますが、画質が低下する可能性があります。
シャープで綺麗な絵になりやすいとされています。
DPM fastステップ数が小さくてもまともな絵になるという特徴があります。
ETAというパラメータによって書き込みの速度や品質が変わります。
ETAが大きいほど書き込みが早くなりますが、画質が低下する可能性があります。
抽象的でパキッとした塗りの絵になりやすく、Euler a系列の構図に近いとされています。
DPM adaptiveステップ数に関係なく動作するという特徴があります。
ETAというパラメータによって書き込みの速度や品質が変わります。
ETAが大きいほど書き込みが早くなりますが、画質が低下する可能性があります。
特に遅いサンプラーであり、他のサンプラーと比べて絵柄のブレやすさも高いとされています。
LMS Karras「LMS」の改良版で、Karrasという技術を用いたことで、ノイズが減ってシャープな絵になります。
ステップ数を上げても絵が変わらないという特徴があります。
書き込みの上限が約60ステップとされており、極端な高ステップでは画像が崩れる可能性があります。
DPM2 Karras「DPM2」の改良版で、Karrasという技術を用いたことで、ノイズが減ってシャープな絵になります。
ステップ数を上げても絵が変わらないという特徴があります。
書き込みの上限が約60ステップとされており、極端な高ステップでは画像が崩れる可能性があります。
DPM2 a Karras「DPM2 a」の改良版で、Karrasという技術を用いたことで、ノイズが減ってシャープな絵になります。
ステップ数を上げると絵が変わるという特徴があります。
書き込みの上限が約60ステップとされており、極端な高ステップでは画像が崩れる可能性があります。
DPM++ 2S a Karras「DPM++ 2S a」の改良版で、Karrasという技術を用いたことで、ノイズが減ってシャープな絵になります。
処理が遅いという欠点があります。また、ステップ数を上げると絵が変わるという特徴があります。
DPM++ 2M Karras「DPM++ 2M」の改良版で、Karrasという技術を用いたことで、ノイズが減ってシャープな絵になります。
ステップ数が少なくても良い出来栄えになり、ステップ数を変えても絵柄がブレにくいという特徴があります。
生成速度が速く、高品質な絵を手軽に生成できます。
DPM++ SDE Karras「DPM++ SDE」の改良版で、Karrasという技術を用いたことで、ノイズが減ってシャープな絵になります。
ステップ数を上げても絵が変わらない手法で、絵柄が安定していて繊細さを詰められるという特徴があります。
高精細な絵を繊細なタッチで描くことができます。
DDIMDenoising Diffusion Implicit Modelsという手法を用いたサンプリング方法です。
高速かつ高品質な画像生成が可能です。
x AND x 構文を使用することができません。
絵柄がブレにくく、ステップ数を上げると繊細さが増していくという特徴があります。
PLMSPseudo Linear Multistepという手法を用いたサンプリング方法です。
過去の移動量を利用して高精度な画像生成が可能です。
x AND x 構文を使用することができません。
ステップ数が少ないときにはあまり良い結果が得られないが、ステップ数を増やすと繊細さが増していくという特徴があります。
UniPCUniversal Predictor-Correctorという手法を用いたサンプリング方法です。
高速かつ高品質な画像生成が可能です。
ステップ数が少なくてもドット上のノイズが少なく、ステップ数を変えても構図が似たような感じになるという特徴があります。
高精細な絵を繊細なタッチで描くことができます。

簡単に特徴をまとめます。
・名称に”a”が付くものは、ステップ数を上げると絵柄が変わる。
・名称に”Karras”が付くものは、シャープな絵になる。
・生成速度を優先したい場合は、「Euler系」。

それでは、実際に画像生成して試してみましょう!

サンプリング方法の違いによる生成画像の比較

画像生成モデルの比較をした時と同じように、今回もサンプリング方法以外のパラメータは固定します。

生成モデルとサンプリングステップは大きく影響を受けると思われるので、生成モデルはイラスト系・リアルイラスト系・実写系から1つずつを選別し、サンプリングステップは20・35・50でそれぞれ比較していきたいと思います。また、シード値は462490034に固定します。

画像生成モデルイラスト系:AbyssOrangeMix3(AOM3A1)
リアルイラスト系:CitrineDreamMix
実写系:ChilloutMix
ポジティブプロンプト(masterpiece:1.2), (best quality:1.2), ultra-detailed, beautiful lighting, (1 beautiful girl:1.2), looking at viewer, shiny eyes, super detailed skin, beautiful detailed hair, standing picture, (casual clothes:1.1)
ネガティブプロンプト(bad_prompt_version2:0.8), (nsfw:1.3), EasyNegative, bad-artist, bad-hands-5, (worst quality:1.3), (low quality:1.3), extra fingers, fewer fingers, (exposed skin:1.1)
サンプリングステップ数20、35、50
サイズ512 x 512
CFGスケール7
Clip skip2

それでは、上記の設定でサンプリング方法毎の結果を見ていきましょう。

イラスト系モデル:AbyssOrangeMix3(AOM3A1)

サンプリング方法
(Sampling method)
生成画像
Euler a
Euler
LMS
Heun
DPM2
DPM2 a
DPM++ 2S a
DPM++ 2M
DPM++ SDE
DPM fast
DPM adaptive
LMS Karras
DPM2 Karras
DPM2 a Karras
DPM++ 2S a Karras
DPM++ 2M Karras
DPM++ SDE Karras
DDIM
PLMS
UniPC
スポンサーリンク

リアルイラスト系モデル:CitrineDreamMix

サンプリング方法
(Sampling method)
生成画像
Euler a
Euler
LMS
Heun
DPM2
DPM2 a
DPM++ 2S a
DPM++ 2M
DPM++ SDE
DPM fast
DPM adaptive
LMS Karras
DPM2 Karras
DPM2 a Karras
DPM++ 2S a Karras
DPM++ 2M Karras
DPM++ SDE Karras
DDIM
PLMS
UniPC

実写系モデル:ChilloutMix

サンプリング方法
(Sampling method)
生成画像
Euler a
Euler
LMS
Heun
DPM2
DPM2 a
DPM++ 2S a
DPM++ 2M
DPM++ SDE
DPM fast
DPM adaptive
LMS Karras
DPM2 Karras
DPM2 a Karras
DPM++ 2S a Karras
DPM++ 2M Karras
DPM++ SDE Karras
DDIM
PLMS
UniPC

画像生成時間の比較

Steps:50の場合のサンプリング方法毎の生成時間を比較します。

DPM adaptiveはサンプリングステップ数によって結果が変わらないため、50stepの設定は無駄で比較になりませんが、サンプリング方法による速度差がハッキリと現れる形となりました。

グラフィックボードの性能が足りない方は、EulerやDPM++ 2M Karrasなどがおススメです。

因みにですが、私は ASUS DUAL-RTX4070-O12G というグラフィックボードを使用しています。

まとめ

サンプリング方法ごとの生成画像の品質や生成速度を、生成モデルやサンプリングステップ数にバリエーションを持たせて比較しましたが、いかがでしたでしょうか。

個人的には、サンプリングステップ数によって構図が変わってほしくないため、EulerやDPM++ 2M Karras、UniPCが気に入りました。構図はシード値で変えて、サンプリングステップ数で微調整するのが良さそうです。

この記事を参考にして、自分の好みに合わせていろいろ設定を変えて、お気に入りの設定を見つけてみてください。

コメント