今回の記事は、「Stable Diffusion」の設定項目のうち、「Sampling steps」についてご紹介します。
そもそも「Sampling steps」とは何か?ということですが、わかりやすく言うと、「石のブロックを削り出して彫刻を制作する過程において、削り出す作業の回数」とでも申しましょうか。
「Stable Diffusion」は、真っ白なキャンパスに絵を描くのではなく、ノイズ(砂嵐)の中から、プロンプトに適合しない不要なノイズを除去してイラストを生成しています。彫刻で例えるなら、注文に適合するように石の塊を削り出すような感じでしょうか。
このノイズ除去の工程が「Denoising」であり、それを何回行うかが「Sampling steps」の数値ということですね。
要するに、回数が少なければ元のノイズに近い画像となり、多ければ多いほどノイズが取り除かれた状態になるということです。
「じゃあSampling stepsの数値が大きければ大きいほどいいのか」と思われるでしょう。一応はそうですが、一定回数を超えると時間に対する効果が薄れます。今風に言えば「タイパが悪い」とでも申しましょうか。
とりあえず御託はこのあたりにして、実践してみようと思います。まずは、比較元となる女の子を召喚します。
プロンプト
(best quality:1.3), (highly detailed:1.3), (masterpiece:1.3), outdoors, ocean, 1girl, solo, wariza, cute, (anthro cat:1.3), (furry:1.3), (fluffy:1.3), bandeau bikini, (very long tail:1.4), tail ribbon, long hair, sideburns, parted bangs, (big breast:0.8), barefoot, paws
ネガティブプロンプト
(worst quality:1.3), (low quality:1.3), ugly, duplicate, mutilated, poorly drawn hands, extra fingers, poorly drawn paws, poorly drawn face, poorly drawn eyes, poorly drawn tail, blurry, bad anatomy, bad proportions, extra limbs, long neck, text

プロンプト、ネガティブプロンプトともに、括弧を使用した強調の構文を使用しています。また、新たな単語を使用しましたので紹介します。
- ocean
海です。「outdoors」と合わせて、背景として使用しています。 - fluffy
「ふわふわ」「もふもふ」といった意味です。 - tail ribbon
このプロンプトがあれば、しっぽに可愛いリボンを結んでくれます。破壊力は抜群です。

「Sampling steps」は、とりあえず初期値の「20」とします。それでは召喚します。

しっぽに結びつけられたリボンがまぶしいですね。
ちなみに、「Sampling steps」が「20」の場合、画像を4枚生成するのに要した時間は2分32秒でした。

さて、「Sampling steps」ですが、結論から申し上げますと、このままでもあまり問題はありません。
というのも、「Sampling steps」は「20」で既にノイズはほとんど取り除かれています。これ以上数値をあげてもあまり目に見えた変化はありません。彫刻で例えるなら、完成した彫刻に延々とヤスリがけをするようなものです。
とはいえ、このブログは「実験室」です。せっかくなので、色々と数値を変えて変化を見てみましょう。

というわけで、最小値である「1」にしてみました。では召喚してみます。

…昔、学校の美術の授業でこんな絵を見たような気がします。
これが「ノイズ」です。彫刻で例えるなら、石をちょっと削って大まかな形が見えてきたぐらいの状態でしょうか。「Sampling steps」が「1」の場合、所要時間は1分4秒でした。


では、最小の「1」を試したところで、次は最大値である「150」を試してみたいと思います。いざ召喚!

ここで、進行状況と推定残り時間にご注目ください。
22%が完了した時点で、残り7分51秒です。生成中、PCからすんげー音がしていました。フル稼働です。
「Sampling steps」が「20」で生成した場合に2分32秒で完了したのに比べ、かなり時間がかかっていることが分かります。さて、召喚した女の子たちがこちらです。

「Sampling steps」を「20」にして生成した画像と比較して、どうでしょうか。
正直、私には違いがよくわかりません。
正月に芸●人格付けチェックに出演する一流芸能人なら判別できるのでしょうか。是非とも企画してほしいものです。

ちなみに、結局トータルでかかった時間は12分9秒でした。

さて、今度は少し「Sampling steps」の数値を下げて、「150」→「100」とします。
ついでに、プロンプトに単語を1つ追加し、表情を指定してみました。
- smile
説明は不要です。老若男女問わず、笑顔で生きることが一番大事です。

笑顔が素敵ですね。ただ、「Sampling steps」を「150」→「100」にさげた品質の差異は、私にはなかなか判別が難しいです。

所要時間は8分16秒でした。

今度はさらに「Sampling steps」の数値を下げて、「100」→「50」とします。
ついでに、プロンプトを修正し、服装を変更してみました。
- High-cut leotard
脚の付け根部分のカットが高く設計されたレオタードです。

「Sampling steps」の数値を「50」としたイラストです。「150」や「100」の時と比較して、それほど品質の劣化は感じられません。

所要時間は4分39秒でした。「Sampling steps」が「100」の時と比べて、半分強といったところでしょうか。

では、次は「Sampling steps」の数値を初期値の「20」よりも低い「10」とします。

生成前は、やべーイラストが出来上がってくるものと思っていましたが、そんなことはなく、十分実用(何のだ)に耐えうる品質のものとなりました。

所要時間は1分49秒でした。1枚あたり20秒ちょっとです。ここまでくると爆速レベルです。

最後に、「Sampling steps」の数値を初期値の「5」としてみます。
「1」ではノイズだらけの画像となり、「10」であればほとんどノイズがありませんでした。
その中間ということになります。

なかなか味のある画像が個人的には、これはこれでアリなのではと思ったりしています。
こういう画風だと言われれば納得してしまいそうです。

なお、所要時間は1分21秒でした。
結論:
初期値の「20」から、数値を増やしても目に見えた変化は感じられませんでした。もっとも、見る人が見れば違いが分かるのかもしれませんが…
というわけで、これからも初期値の「20」でやっていこうと思います。
…と、言いたいところですが、実は、「checkpoint」(モデル)によって、推奨されている設定が存在します。
次回の記事では、「Civitai」のWebサイトにおける、「checkpoint」ごとの推奨値の確認方法についてご紹介します。
以上をもちまして今回の記事を終了とします。最後まで読んでいただき、ありがとうございました。


コメント