
画像生成をしていて、異なるモデルやパラーメータを比較したいと思ったことはないでしょうか?
通常モデルごとに画像生成をしたいとき、モデルを切り替えて1枚ずつ生成する必要があります。
しかし、「X/Y/Z plot」を使えば異なるモデルを一度に試すことができます。
また、XYZ軸それぞれにパラメータを設定できるため、モデルや値による画像の変化も効率よく確認ができます。
今回はこの「X/Y/Z plot」の使い方について、詳しく解説します。
値やモデルによる変化を一度に検証したいという方は、ぜひ参考にしてみてください。
- モデルやパラメータで結果を比較したい
- X/Y/Z plotの使い方がしりたい
- どんなパラメータが使えるのかしりたい
なお、この記事はStable Difussion Web UIがインストール済みの方を対象にしています。
インストールがまだの方はこちらの記事も参考にしてみてください。
Scriptの別の機能についても解説しています。
Stable Difussion Web UI「X/Y/Z plot」とは?
X/Y/Z plotはモデルやパラーメータによる違いを一度に検証できる機能です。
設定できるパラーメータが多数あり、値やモデルによる変化を確認することができます。
またX・Y・Zにそれぞれのパラーメータを指定できるため、複数のパラメータを同時に検証することも可能です。
今回はこのX/Y/Z plotの使い方について、詳しく解説していきます。
Stable Difussion Web UI「X/Y/Z plot」の使い方
実際にX/Y/Z plotを使う方法について解説します。
X Type/X values
まず画面左下にある「Script」から「X/Y/Z plot」を選択します。

そうするとこのような画面が表示され、ここでX・Y・Z軸それぞれにパラメータを設定したり、オプションの有無を選択したりできます。

「X Type/X values」ではX軸(横)に画像を並べて、変化を確認できる機能です。
例えば使用モデルを変えて画像を比較したいときは、「X Type」で「Checkpoint name」を選択します。

「X values」で比較したいモデルを全て選択します。

これで画像を生成すると、選択したモデルごとに結果を得ることができます。

Y Type/Y values
「Y Type/Y values」はY軸(縦)に画像を並べて変化を確認できる機能です。
例えばSampling stepsの値を変えて変化を確認したい場合は、「Y type」でStepsを選択します。

「Y values」には値をカンマ区切りで入力していきます。

これで画像生成をすると、Sampling stepsの違いを縦に並べて確認ができます。

X・Y Type/X・Y values
X・Yにそれぞれ別のパラーメータを設定して変化を確認することもできます。
Xにはモデル、YにはSampling stepsを指定すると、それぞれのパラーメータを組み合わせて、マトリックス(行列)で画像生成が可能です。

Z Type/Z values
Z軸は単体で使うとX軸を同じ横並びの画像が生成できます。
X・Yを設定した状態でZのパラーメータを指定すると、X・Yに対してZのパラーメータが反映されます。
X・Yは上記と同じ設定まま、ZにClip skipの値を指定すると、以下のようになります。

値を効率良く入力する方法
値を指定するとき簡単に書ける方法がいくつかあるのでご紹介します。
値を範囲で指定する
例えば値を「1,2,3,4,5」と入力したいとき、「1-5」のように書き換えることができます。
最小値と最大値の間にハイフンを入れると、範囲内の値が順番に入力されます。
範囲内で増減した値を指定する
例えば1-10(+2)とすると、範囲内で最小値から+2ずつ加算した値のみ抽出されます。
例)1-10(+2) = 1,3,5,7,9
マイナスや少数点を使うこともできます。
例)15-10(-2) = 15,13,11
例)1+3(0.5) = 1,1.5,2,2.5,3
範囲内から指定した数だけ値を抽出
例えば1-10[5]とすると、範囲内から1と10を含む5つの値が抽出されます。
例)1-10[5] = 1,3,5,7,10
例)10-30[4] = 10,16,23,30
例)10-30[5] = 10,15,20,25,30
入力する値が多いと1つずつカンマで区切るのは大変なので、覚えておくと入力が簡単です。
X/Y/Z plotで設定できるオプション
X/Y/Z plotで使用できるオプションについて解説します。
Draw legend
使用したパラーメータを画像に表記するかどうかです。
チェックが入っていると結果に使用したパラーメータが表記されます。
チェックを外すと表記がなくなります。

Keep -1 for seeds
X/Y/Z plotでは最初に与えられたシード値を固定して画像が生成されます。
これにより同じキャラクターやポーズで、パラーメータを変化させた結果が確認できます。
ただ「Keep -1 for seeds」にチェックを入れるとシード値「-1」を保持するため、全ての画像に対して新しいシード値が与えられます。
簡単にいうと全て違う画像になるということです。
Include Sub Images
チェックを入れない状態だと、比較した生成結果だけが表示されます。
チェックを入れると、それぞれ個別の生成結果も表示できます。

Include Sub Grids
比較結果のサブ画像が生成できます。

名前は変わりますがサイズがほぼ同じだったので、用途はよくわかりませんでした。
Grid margins (px)
マトリックスの間に余白を入れられる機能です。
指定した値(px)だけ余白が入ります。

X/Y/Z plotで比較できるパラーメータ一覧
X/Y/Z plotで設定できるパラーメータを簡単にご紹介します。
Sigma min・Sigma max・Face restoreはどのサンプラー・値を変えても変化が得られなかったため、省略しています。
Seed
シード値による比較ができるパラーメータです。

Var. seed/Var. strength
通常はExtraから指定できるパラーメータです。
Varはvariation(バリエーション)の意味で、最初に与えられたシード値から派生したような結果が得られます。
なお、X/Y/Z plotではVar. strengthが0のとき、またはVar. seed単体だと画像に変化は起きません。
Var. strengthで変化する強度を指定し、Var. seedの値を変えれば、ベースの画像を徐々に変化させられます。
Var. strengthの値が大きいと、変化もより顕著に現れます。

Steps
StepsはSampling stepsの比較ができるパラーメータです。
ノイズの追加と除去の工程を何回行うか指定できます。
一概に大小どちらが良いと言えるものではないので、最適な値を探してみてください。

Hires steps(Hires.fix使用時のみ反映)
Hires.fixでノイズを除去する回数を比較できるパラーメータです。
こちらも大小どちらが良いとは言えません。
通常は10~20で使用する方が多く、使用するUpscalerによっては10未満でも十分効果が得られます。

CFG Scale
CFG Scaleはプロンプトの内容にどれだけ従うか制御できるパラーメータです。
値が小さいほどプロンプトの影響が弱く、大きいと強くなります。
なお、画像の明るさ、コントラスト、色彩などにも影響がでます。

Sampler
Sampling methodの比較ができるパラーメータです。

Checkpoint name
使用するモデルを比較できるパラーメータです。

Negative Guidance minimum sigma
こちらは特定のサンプリングステップでネガティブプロンプトをスキップし、性能を向上させる機能のようです。
ただこれについて詳細がわからず、比較画像に微妙な変化はあるものの、具体的にどういう影響があるかは確認できせんでした。
機能について解説しているページがあるので、詳細はこちらをご覧ください。
Sigma Churn/Sigma noise
※Sigma ChurnはSampling methodがEuler・Heun・DPM2のときのみ動作します。
Var. strength/Var. seedと似たような結果が得られるパラーメータです。
こちらは画像の品質や内容がランダムで変動し、その度合いを値で制御できます。
値が大きくなるほど変動も大きくなります。

またSigma Churnが0のとき、Sigma noiseの値を変えても変化はありません。
Sigma Churnと一緒に使うと変化を確認できます。

Eta
EtaもVar. strengthやSigma Churnと似たような効果で、元の画像からノイズの補間レベルを制御して、派生したような画像を生成できます。
なお、EtaはSampling methodがDPM系とDDIMのときのみ変化が得られるパラーメータです。

Clip skip
Clip skipは最後から何枚目のレイヤーを使用するか選択できるものです。
Stable Diffusionは、プロンプトの情報を12層のレイヤーで処理して画像を生成します。
Clip skipが1の場合は全てのレイヤーを使用し、Clip skipが2の場合は最後のレイヤーをスキップして、1枚手前のレイヤーを使用します。
そのため、Clip skipの値が低いほどプロンプトの情報量が多くなります。

Clip skipについて、詳しくはこちらの記事も参考にしてみてください
Denoising(Hires.fix使用時のみ反映)
Hires.fixで使用できるノイズ除去の強度を比較できます。

Hires upscaler(Hires.fix使用時のみ反映)
Hires.fixで使用するupscalerのアルゴリズムを比較できます。

VAE
VAEは「Variational Autoencoder(変分オートエンコーダー)」の略称で、ディープラーニングで生成されたモデルの一種です。
VAEにはさまざまなモデルがあるため、使用するVAEによって結果は異なります。

Styles
Style機能で保存したプロンプトを比較できるパラーメータです。

UniPC Order
Sampling methodがUniPCのときのみ適用されるパラーメータです。
サンプリングの精度などに影響を与えるもので、値が大きいほど精度は向上しますが、計算量も増えるそうです。
なお、Sampling stepsの値を超えるとクラッシュしてしまい、値を5以上にすると画像が崩れ始めます。

Prompt S/Rの使い方
Prompt S/Rもパラメータの1つですが、他のパラメータと少し仕様が異なるため、分けてご紹介します。
Prompt S/RはSがSearch、Rがreplaceの意味で、プロンプトの一部を検索/置換できる機能です。
例えば以下のプロンプトで画像を生成するとします。

1girl,spring
X typeでPrompt S/Rを選択して、X valuesに変化させたいプロンプトを入力します。

spring,summer,autumn,winter
これで画像生成すると最初に入力したspringが、後に入力した「summer,autumn,winter」に置換され、画像生成ができるようになります。

入力したプロンプトの一部を別のプロンプトに置き換えて画像生成したいときに便利です。
Prompt orderの使い方
Prompt orderも他のパラメータと少し扱いが異なります。
これはPrompt orderに入力したプロンプトを並び替えられる機能です。
例えばプロンプトにdog,cat,hamsterと入力して、Prompt orderにも同じものを入力します。
そうするとプロンプトが並び替えられて、以下6通りの結果が得られます。
- dog,cat,hamster
- dog,hamster,cat
- cat,dog,hamster
- cat,hamster,dog
- hamster,dog,cat
- hamster,cat,dog
プロンプトは手前に記述された要素の影響が強くでるため、並び替えたときに出る画像の変化などが確認できます。
なお、Prompt orderに入力したプロンプトのみ並び替えられるため、他の要素を保持した状態で結果を得ることも可能です。
例えば以下のようにプロンプトを入力します。
country,morning,summer,best quality,masterpiece,ultra high res
Prompt orderには「country,morning,summer」の3つだけを入力します。
こうすると「best quality,masterpiece,ultra high res」は保持したまま、「country,morning,summer」を並び替えた結果だけが得られます。

「X/Y/Z plot」の使い方まとめ
今回はStable Difussion Web UIの「X/Y/Z plot」について解説しました。
- Stable Difussion Web UI「X/Y/Z plot」とは?
- Stable Difussion Web UI「X/Y/Z plot」の使い方
- 値を効率良く入力する方法
- X/Y/Z plotで設定できるオプション
- X/Y/Z plotで比較できるパラーメータ一覧
- Prompt S/Rの使い方
- Prompt orderの使い方
「X/Y/Z plot」を使うと画像生成効率が大幅に向上します。
単純に1回の生成で得られる結果が多いため、理想のモデルや値が見つけやすいです。
またこのように比較画像を生成していると、パラメータによる影響や、画像の些細な変化などにも気づけるようになります。
より画像生成が楽しめるようになるので、ぜひ使ってみてください。
コメント