StableDiffusionには様々なパラメータがあります。
ひとつひとつ変更することで様々なAIが画像を生成することができますが、何をどれくらい変えるとどういった画像になるのかを調べることは非常に大変な作業です。
そこで便利なのが、「X/Y/Zプロット」という機能です。
X/Y/Zプロットを使用することで、パラメータの変更がカンタンに直感的に理解することができます。
この記事では、StableDiffusionのX/Y/Zプロットを活用して、パラメータの効果を確認する方法について解説します。この記事を通じて自分好みのAI画像を探求してみてください。
x/y/zプロットとは
パラメータの効果をカンタンに比較・可視化できる機能です。
例えば、一部のパラメータを変更して生成したときの画像です。
5パターンで生成して、横並びで違いを比較することができます。
非常に見やすいですね。
使用するモデルによって特性が違うので、好みの仕上がりにするにはどのパラメータをどのくらい値にすれば良いかをカンタンに検証することができます。
これによってAI生成にかける労力・効率を最大限にあげることができます。ぜひ覚えておきたい機能です。
「スクリプト」という項目のプルダウンから「X/Y/Z plot」があります。
それでは、X/Y/Zプロットを使ってパラメータを変えたときの生成画像の仕上がりの変化を見てみましょう。
SEEDをx/y/zプロットで見てみる
SEED値とは、生成画像のランダム性を制御するためのパラメータです。
通常、SEED値はランダムで生成されます。その場合、過去生成した画像が気に入ったのでもう一度作りたくても生成されなくなります。
そこで、同じSEED値を使うと若干の違いはありながらも同じ構図の画像が生成することができるのがSEED値です。
スクリプトに「X/Y/Z plot」を選択し、X軸の種類欄に「seed」を選択します。
そして、X軸の値に「1,2,3」と入力します。
これは、SEED値が1~3の画像をそれぞれ作成するように指示することを指します。
これで作成してみましょう。
無事3枚とも作成されました。
SEEDごとに違う画像が生成されましたね。
Sampling Stepsをx/y/zプロットで見てみる
Sampling Steps値とは、生成する画像のノイズをどれくらい除去して精度を上げるか、をイメージしてもらえれば良いかと思います。
スクリプトに「X/Y/Z plot」を選択し、X軸の種類欄に「steps」を選択します。
そして、X軸の値に「1,10,20,50,100,150」と入力します。
これは、ノイズ除去処理を1回だけ行った画像~150回行った画像までをそれぞれ作成するように指示することを指します。
これで作成してみましょう。
Steps1だとノイズがひどいのがわかります。一方、Steps10だと十分なクオリティで生成できました。
steps:20
steps20にした場合は、こんな感じです。
非常にクオリティ高く、そばかすなど細かい描写までされていますね。
steps:50
steps50にした場合は、こんな感じです。
spteps20とあまり変わりませんね。
モデルによりますが、だいたいsteps20くらいで十分な完成度になりそうです。
但し、ステップ数を上げればよいという訳ではありません。
注意点としては、所要時間です。step1とstep10では生成にかかる時間が単純に10倍違います。
ですので、私の場合はsteps20で作成してみて、気に入った画像があればSEED値を指定してsteps数を増やすやり方をしています。
まとめ
X/Y/Zプロットでパラメータの効果を確認する方法をまとめました。
どのパラメータをどれくらい変えるとどういった画像になるのかを知ることは非常に重要なことです。
この機能を使うことで、パラメータを変えた場合の違いを分かりやすく比較分析することができますね。
他にも変更できるパラメータ値が沢山あるので、いろいろ試すと新しい発見がありそうです。
非常に便利な機能ですので、一度試してみてください。