サンプリングステップ
- 英語表記: Sampling Steps
「Stable Diffusion」のような画像生成において、「サンプリングステップ」というのは、逆拡散過程の進行に伴ってサンプリングを実行する回数のことである。「絵画的」あるいは「写実的」な画像を得るためには、少なくともある程度必要な最低限度の回数があり、サンプリングステップを増やすことでより高精度な画像に近付く。ある程度以上サンプリングステップを増やしても、画像の品質は基本的に頭打ちになって改善されなくなるが、サンプリング方法によってはサンプリングステップを必要以上に増やすと画像が乱れる場合もある。望ましい「絵柄」が得られるサンプリングステップ付近で、少し増減することでグラデーションや陰影の付き方が変わることがあり、微妙な絵柄や雰囲気の調整に用いられる場合がある。
参考:
サンプリングステップとは?おすすめの回数も紹介 | romptn Magazine
サンプリング方法
- 英語表記: Sampling Method
種類
- Euler: 一番シンプルなサンプリング方法
- Euler a: Euler より滑らかになる (少しぼやける場合がある)
- LMS: シャープな仕上がり (コントラストや彩度が高い)
- Heun: Euler より計算量は多いが精度は高い (安定性重視)
- DPM2 シリーズ: 計算量は多いが品質が向上する
- DPM2 Karras: 精細なディテール表現向き
- DPM2 a Karras: 少し滑らか (質感向上)
- DDIM: 高効率/高速化向き
- DPM++ シリーズ: 計算量はかなり多いが高品質
- DPM++ 2M Karras: 精細なディテール表現向き
- DPM++ 2S a Karras: 少し滑らか (スルッとした質感)
- DPM++ SDE Karras: 適度なランダム性と精細なディテールを両立する
- DPM++ 2M SDE Karras: 高品質 (高度なライティングを再現)
- Restart: ハイブリッド型 (計算量は多い)
※使用するモデルや LoRA の README で推奨するサンプリング方法が指定されている場合は、そのサンプリング方法を優先的に指定する。
参考:
サンプリングを活用した効率的な画像生成 | AI Respecter
Sampling Method – 違いやおすすめの設定を紹介! | romptn Magazine
サンプリング方法の違いによる生成画像の出力結果を比較検証! | コッコ隊長の勉強部屋
Complete Guide to Samplers in Stable Diffusion | Félix Sanz
Complete guide to samplers in Stable Diffusion – reddit
Sampling method for anime? – reddit
解説
- Euler: オイラー法 (微分方程式を1ステップ前の値から線形近似して解く)
- Heun: カール・ホイン (Karl Heun) に因んで名付けられた、2次の修正オイラー法
- LMS (Linear Multi Step): 線形多段法
- DPM (Diffusion Probabilistic Model): 拡散確率モデル
- DPM2: DPM の2次予測版
- DDIM (Denoising Diffusion Implicit Models): ノイズ除去拡散陰的モデル
- DPM++: DPM の改良版
- 2S: 2次のシングルステップ
- 2M: 2次のマルチステップ
- a (ancestral): 直接次のステップを計算するのではなく、各過程に微量の分散を含める
- SDE: 確率微分方程式 (拡散過程に確率分布が含まれる前提で計算する)
- Karras: Tero Karras らによって提案されたノイズスケジュール法
参考:
#1 離散過程/古典的数値計算法/LMS | henatips
What would be the best sampling method? – reddit
Difference between DPM++ SDE variants? – reddit