Stable Diffusionの各Sampling methodの違い (2)
前回に引き続き、実験を行っていきます。今回はもう少し呪文を増やし、複雑な注文で画像を生成していき、各サンプリング・メソッドにどのような違いが見られるのかを比較していきます。
Sampling method
Euler a
Euler
LMS
Heun
DPM2
DPM2 a
DDIM
PLMS
実験2: アラビアの街角
promptは上記の通りとし、それ以外の条件は下記の通りとなります。デフォルトの設定から、太字の4箇所のみを変更しています。
txt2img
prompt: a sleeping cat
Sampling Steps: 60
Sampling method: 下記(1)~(8)
Restore faces: None
Tiling: None
Batch count: 2
Batch size: 1
CFG Scale: 10
Height: 512
Width: 960
Seed: -1
Script: None
60Stepも踏めば、ここから大きくずれることはないでしょう。CFG Scaleは、ガチャ要素を少しいれたく10としました。実験に使用しているマシンはCore i7 1260PのノートPCに、外付けグラフィックボードのRazer Core XでGeForce RTX3060動かしています。
果たして、どのような違いが生まれるのでしょうか。
(1) Euler a
89.18s
(2) Euler
88.66s
(3) LMS
89.69s
(4) Heun
170.35s
(5) DPM2
177.01s
(6) DPM2 a
175.53s
(7) DDIM
92.42s
(8) PLMS
92.90s
実験2の結果
(4) Heun
(5) DPM2
(6) DPM2 a
前回同様、上記のみ170秒台、それ以外は全て90秒前後と、2グループに分かれる非常に分かりやすい実験結果が出ました。生成処理作業中は別作業を行わず、全く同じ条件で生成しています。処理速度に関しては、Heun、DPM2系は遅い傾向にあり、それ以外と比較して2倍の時間を要することが分かりました。
絵柄の違いに関しては、一部サンプリングにて電線や木、人の形など、一部不自然・違和感を感じる部分もありますが、Step数が60のため、精度を問うべきではないように感じます。全体として概ねよくできているのではないでしょうか。気になる部分を、img2imgや各種画像ツールで整形していくイメージです。
審査員(私)による独断で、以下の通りの格付けとなりました。
好き:(2) Euler, (3) LMS, (7) DDIM, (8) PLMS,
普通:(4) Heun, (6) DPM2 a
微妙:(1) Euler a, (5) DPM2
前回の実験との総合判定で、DDIMが優秀なのではないかと感じていますが、呪文(プロンプト)によっても変わってきますので、正直ガチャのようなものです。各サンプリングで学習内容は同一であり、描写のプロセスが異なるのだと理解しました。サンプリング以外の変数(パラメータ)調整に集中したいので、個人的には今後DDIM縛りでよいのではと考えています。
エキシビジョン
余興として、優勝したDDIMの1枚目の写真のSeed値を固定しながら、Sampling StepsとCFG Scaleのパラメータを最大にしてみました。元の画像(上)と変更後の画像(下)で、どのような変化が起こるのでしょうか。
・・・
いかがでしょうか。どうも微妙で、変更前の方がよい気がしています。手前の赤い人(?)が結局曖昧なままなのと、木の質感がふわっとしている点に少し違和感を感じてしまいます。
Step数は上げれば上げるほど品質が向上する、といった具合に信じていましたが、最適なStep数があるみたいですね。次回の実験テーマがちょうどよく見つかったような気がします。
新しくTwitterアカウント作成しました。
もしよろしければ仲良くしてもらえれば嬉しいです!
この記事が気に入ったらサポートをしてみませんか?