
Stable Diffusionの各Sampling methodの違い (1)

Sampling method
Euler a
Euler
LMS
Heun
DPM2
DPM2 a
DDIM
PLMS
Stable Diffusionにおいては、現在上記のようなサンプリング・メソッドが提供されていますが、MidJourneyにしてもDreamStudioにしても、それぞれのサンプリングを果たしてどのように選択するべきなのか、迷ってしまいます。
いじり始めて1日目ですが、自分なりに方法論を考えてみた結果、結局のところは呪文(プロンプト)と変数(パラメータ)の調整をしながら構図を探っていき、生成したい画像に近い構図を探り当てたら、後は必要に応じてSeed値を固定したりしながらstep数を増やし、精度を高める調整段階に入っていくような流れの感覚です。
変数以外は結局ガチャ要素の比重が大きいため、Batch数(バッチカウント)を増やして同時生成できるようにし、あとはスピード勝負。それぞれのサンプリングで何が得意・不得意、などは現状まだ不明ですが、スピードが一番大切なのではないかと考えています。
スピードに関して計測しているような記事がまだ見つからないため、ここで簡単な実験を、簡単な報告で行ってみることにします。
実験1: a sleeping cat
promptは「a sleeping cat」とし、それ以外の条件はすべてデフォルトのままです。
txt2img
prompt: a sleeping cat
Sampling Steps: 20
Sampling method: 下記(1)~(8)
Restore faces: None
Tiling: None
Batch count: 1
Batch size: 1
CFG Scale: 7
Height: 512
Width: 512
Seed: -1
Script: None
果たして、どのような違いが生まれるのでしょうか。
(1) Euler a
6.15s, 6.26s, 6.25s


(2) Euler
6.19s, 6.37s, 6.26s



(3) LMS
6.14s, 6.17s, 5.94s



(4) Heun
11.25s, 11.41s, 11.26s



(5) DPM2
11.54s, 11.63s, 11.45s


(6) DPM2 a
11.62s, 11.37s, 11.47s



(7) DDIM
6.36s, 6.31s, 6.50s



(8) PLMS
6.80s, 6.71s, 6.77s



実験1の結果
(4) Heun
(5) DPM2
(6) DPM2 a
のみ11秒台、それ以外は全て6秒台と、非常に分かりやすい実験結果が出ました。複雑な条件に変えていった際にどのような違いが出るのでしょうか。次回の記事で書いてみたいと思います。
新しくTwitterアカウント作成しました。
もしよろしければ仲良くしてもらえれば嬉しいです!
気軽にクリエイターの支援と、記事のオススメができます!