Stable Diffusionでイラスト生成するには必要不可欠なサンプラーですが、意外と数が多く何を使用すればいいか分からない事が多いかと思います。
なので今回はサンプラーを比較してみたいと思います。
生成は2次元モデルのAnythingV5Inkを使用しました。
リアル系イラストの比較は気が向いたら。
サンプラーとは
イラスト生成においては拡散モデルで処理する際、ノイズを取り除くための様々なアルゴリズムがサンプラーと呼ばれ様々な種類が用意されています。
詳しくは以下のサイトで解説されてます。
https://wikiwiki.jp/sd_toshiaki/sampler
2次元イラストのサンプラー比較
Euler、Heun、LMS、DDIM、PLMS
それではまず代表的な以下の5つを比較してみたいと思います。
プロンプトは以下を使用しました。
ポジティブプロンプト
ネガティブプロンプト
以下が結果です。
可愛らしい女性が生成されましたね。一見大きな違いはないように見えますが、所々腕の形が怪しいですね。この部分はツールを使用すれば修復できる場合もあるので深刻に考える必要はないかと。
やはりEulerが安定しているように感じました。
DPM++ SDE Karras、DPM++ 2M Karras、DPM++ 2M SDE KarrasDPM++ 3M SDE Karras
次は筆者も愛用しているDPM++ SDE Karrasを含めた4つで生成してみます。
プロンプトは上記と同じです。
以下が結果です。
先ほどとは違うタッチになりましたね。より繊細に書かれているように見えます。
DPM++ 2M KarrasだけSDE系列ではないので違う絵になりましたが、状況によって使い分けできそうです。DPM++ 3M SDE Karrasは比較的新しめのサンプラーという事であまり使用した事ありませんでしたが、ステップ数が多ければ精度が上がる印象でしょうか。
Exponential系
お次は名前がすごく長いExponential系を見てみようと思います。
プロンプトは上記と同じです。
以下が結果です。
ステップ数によって結果は大きく変わっている事がわかりますね。50ステップ以上はあまり変化ないのでしょうか。サンプラーの事を詳しく知っているわけではないので深い解説はできませんが、こちらのサンプラーは背景をしっかり描いてくれるように感じます。プロンプトでは被写体についての情報を指定しているだけなので色々書いてくれるのは新しい発見ができそうですね。
まとめ
今まで同じサンプラーを使用していて、そろそろ心機一転しようと思っていたのでちょうどいい検証になりました。キャラの顔中心に生成したい時はDPM++ SDE KarrasなどのSDE系、キャラの全体像とバックもしっかり書き込み場合はExponentialでもいいかもしれません