Stable Diffusionとはプロンプトと言われるキーワードで画像を生成するAIです。
幾つもパラメータがあり、どのような影響を与えるのかは調べるのが大変です。
今回はその中でもSamplerという、学習済みモデルから実際に画像を生成するアルゴリズムについて調査します。

描画し終えるまでの時間効率といった視点で調査しました。
- 各サンプラー幾つのステップで最終画像にたどり着くのか?
- 各サンプラー間で1ステップに要する時間に差は無いのか?
やり方
サンプラーとステップ数だけ変化させ、他のパラメータは固定させます。
(シード値も固定)
プロンプトはある程度の指定があったほうが通常ですので、今回は下記を採用します。
((masterpiece,best quality))1girl, solo, black skirt, blue eyes, electric guitar, guitar, headphones, holding, holding plectrum, instrument, long hair, , music, one side up, teal hair, twin tails, playing guiter, pleated skirt, black shirt, indoors
EasyNegative, low quality, worst quality, watermark,sketch, duplicate, ugly, huge eyes, text, logo, monochrome, worst face, (bad and mutated hands:1.3), (worst quality:2.0), (low quality:2.0), (blurry:2.0), (bad hands), (missing fingers), (multiple limbs:1.2), bad anatomy, (interlocked fingers:1.2), Ugly Fingers, (extra digit and hands and fingers and legs and arms:1.4), (deformed fingers:1.2), (long fingers:1.2),(bad-artist-anime), Multiple arms, Multiple legs. poorly drawn face
| 項目 | 設定値 |
|---|---|
| 使用モデル | Counterfeit-V2.5 |
| サンプリング回数 | 2, 4, 8, 12, 16, 24, 32, 40, 48, 56, 64, 80, 96, 120, 160 |
| CFGスケール | 8 |
| 解像度 | 幅640✕高さ640 |
| シード値 | 3507377558 |
| 対象サンプラー | 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 |
出来上がりサンプル(例)


サンプラーにより生成される画像が異なる場合があります。
結果
セット①(DDIM, DPM adaptive, DPM fast, DPM++ 2M Karras, DPM++ 2M, DPM++ 2S a Karras)



脅威が「DPM adaptive」ですが2ステップでほぼ整っています。


- DPM fastは24ステップでは描ききれていない
- DPM adaptive, DPM++ 2S a Karrasは16→24のステップ中に服装中心に変化あり
- DDIM、DPM adaptive, DPM++ 2M Karrasが早い段階で絵になっている


- 今回の絵をDPM fastが描くには48ステップ必要
- DPM++ 2S a Karrasは絵が変化(DPM fastはまだ落ち着いていない為か)


- DPM++ 2S a Karrasは変化が続く(DPM fastもわずかに変化)
セット②(DPM++ 2S a, DPM++ SDE Karras, DPM++ SDE, DPM2 Karras, DPM2 a Karras, DPM2 a)


- DPM2以外は大きめな変化が続く
- 幾つかは12ステップで絵になっている


- DPM++ SDE以外は徐々に変化している


- DPM2以外はよく見ると背景等を中心に変化
- DPM2 Karrasは大きく姿勢が変化
セット③(DPM2, Euler a, Euler, Heun, LMS, LMS Karras, PLMS)




- 一部は8ステップ程度で絵になっている
- LMS Karras、PLMSは24ステップでは描ききれていない




- Euler以外はほぼ変化がない
- Euler以外はほぼ同じ構図




- Eulerは延々と変化
- LMSは絵の崩壊が始まる
性能測定
サンプラーのステップ数当たりの速度



先ずは純粋なサンプラーの単位ステップ当たりの速度をまとめます。


画像になる平均ステップ数は約18でした。24ステップでソートしています。
おおよそ4種類の時間に分かれました。(各枠線の色)
DPM adaptiveはわずか2ステップで完成しましたが、どのサンプラーよりも大きい数値になりました。
画像と判断できる最小ステップ数
先程の表に目視で確認できた範囲で、最低限の絵が描けたステップ数を網掛けしました。
また、その数値でソートした場合が下記となります。





じゃぁ、Eulerが良いのか?となるので他の特性も確認します。
絵の生成状態
生成された絵の種類
どの絵でもほぼ確実に描けているステップ数56の絵を比較します。











やや、強引ですが5種類に分類できました。
まとめ
画像の種類を記載しましたが、それが最終状態でもありません。
描画の収束(変化度合い)を加えて、各サンプラーをまとめた表が下記となります。


「Euler」は優秀ですが、絵が変化し続けるので検証には不向きかもしれません。
「DDIM」や「DPM++ 2M Karras」が安定度がありそうです。
「Euler a」も良いのですが、絵のタイプが異なるので微調整したくて他のサンプラーに変更出来ません。
絵の詳細部分の仕上がりに注目すればまた異なる結果になるかもしれません。
時間があれば試してみます!



最後までご覧いただき、ありがとうございました!

コメント