警告
当記事にはAIによって生成された画像が多数掲載されています。
DPM++ 2M SDE Karras で出したもの
DPM++ 3M SDE Karras で出したもの
どちらも大枠は同じだが、細かに結果が異なる
Sampling Method はなんとなく選択しているが、技術的に知っておきたい
Sampling Method について
Stable Diffusion Samplers: A Comprehensive Guide – Stable Diffusion Art (stable-diffusion-art.com)
ノイズを除去するアルゴリズムである
肌感でなんとなくそこまではわかるが、より深く知ることとする
Noise Schedule
参考記事の順で確認していくと、まずノイズスケジュールというものから
Step 50 とすると、ノイズ除去は 50 ステップで完了しなければならない
つまり、50ステップでノイズは0になるように処理される
これが20ステップとすれば、同様に処理される
ステップ数が多くなれば処理される回数が多くなるので処理時間も長くなる
従ってステップ数は可能であれば少ないほうが良い
逆にステップ数を多くすることで、切り捨ての誤差を小さくできる
よりサンプリングメソッドは正確に処理できる
Stable Diffusion webui は 150ステップまで指定できるので、
理想は常に150ステップではある
しかし、より数を生成したい場合に非効率であるので、
人それぞれに「どこまで許容するか」を検討し、ステップ数は調整することになる
サンプラーの「a」について
収束するサンプラーには「a」がついている
「a」がついていないサンプラーは一度出ようとした結果に対しても変化を加え続ける
Stable Diffusion webui においては途中経過も見える
そのときに期待される結果に近いものが出ている場合は、
それに収束させるために「a」がついたサンプラーの選択してみると良いと思う
サンプラーの「Karras」について
先述の Noise Schedule に調整を加えたもの
最初は通常の Noise Schedule よりもノイズ量は多いが、
最終的に 通常のスケジュールよりも小さくなるよう処理される
サンプラー「DDIM」「PLMS」
原初のサンプラー DDIM で、PLMS は次世代とのこと
参考記事によれば「時代遅れ」とまで表現されている
サンプラー「DPM」「DPM++」
多くのサイトでは DPM++ のサンプラーを使っている印象がある
2022年リリースの新しいサンプラーである
DPM2 は DPMより速度は劣るが、精度が高いものになる
DPM++ は DPMの機能強化、と書かれているが、どのように?は書かれていない
DPM2 a Karras で出したもの
ここまでの知識で言うと下記のとおりとなる
・「DPM」より精度の良い「DPM2」を使用
・収束する
・ノイズ量が少なくなるスケジュール
サンプラー「UniPC」
2023年リリースの新しいアルゴリズム
少ないステップ数で高精度に処理する様子
5~10 ステップで、という記載があるので Step 10 で出してみたが、
流石にうまくはいかない
結局サンプラーが違えば何が違うのか、どれが最適なのか
なんとなくイメージできる通り、ノイズの除去の仕方が変わる
そして結果が変わる
それぞれの評価はまた参考記事を見てほしい
その中から「収束する」ことを目的に参考記事から結論だけ述べると
・「DPM++ 2M Karras」「DPM2 Karras」あたりがよりよく収束する
・「DPM++ 2M Karras」は高速でもある
このことから、拘らず、とりあえず出すなら「DPM++ 2M Karras」が「おすすめ」程度になる
もちろん、「お気に入り」のサンプラーがあれば、それが利用している人の最適解でもある
DPM++ 2M Karras で出したもの、どうだろうか?
逆にあまり使わないでと言われている 古いサンプラーである Eular a を選択してみた
どんだけひどいものが出るかと思ったが、そこまでひどくもない (Checkpointのおかげ?)
収束率が高い DPM Adaptive
確かに結構な品質な気はするが、描画速度は DPM++ 2M Karras の5倍かかってしまった
サンプラーの挙動について
数学とかどうとか、そういう話になる
その辺りであると結論がつけば、この記事は終わりにしたい
興味があれば、この記事から離れて調べてみてほしい