【Stable Diffusion】X/Y/Z plotを使ってサンプラーやプロンプトによる差を比較・検証する方法!

こんにちは!悠です!

 

皆さんは「Stable Diffusion WebUI」に最初から備わっている、「X/Y/Z plot」という機能をご存知でしょうか?

これは最大3つの変数(x, y, z)を使って、異なる条件で同時に画像生成を行い、その結果を表にまとめてくれる便利機能なんです!

X/Y/Z plotを使えば、モデルに応じた最適なサンプラーやステップ数、プロンプトを簡単に比較できますよ!

 

今回の記事では、「X/Y/Z plot」の使い方に関して紹介していきます。

 

スポンサーリンク
スポンサーリンク

「X/Y/Z plot」とは?

「X/Y/Z plot」は言葉で説明するより、下の図を見ていただいた方がわかりやすいです。

 

上の図は、LonganMixMeinaPastelMeinaMixの3つのモデルに対して、Eule aDPM++ 2M KarrasDPM++ SDE Karrasという3つのサンプラーを使った際の比較画像です。

このように特定の条件を変数(この場合はモデルとサンプラー)にして、どれが一番最適なのか簡単に比較検討できるのが「X/Y/Z plot」です。

変数以外の部分は全て同じです。例えば上の画像の場合、9枚は全て同じプロンプトを使用しています。

 

ちなみにX軸は横軸(上図でいうサンプラー)、Y軸は縦軸(上図でいうモデル)を指します。

あまり使いませんがZ軸を導入すると、下のように表が2つになります。

 

「X/Y/Z plot」の使い方

では早速、「X/Y/Z plot」の使い方を紹介していきます。

 

「Stable Diffusion WebUI」を起動し、txt2imgのタブの下にあるScriptでX/Y/Z plotを選択してください。初期状態はNoneになっているはずです。

 

新しくタブが開いて、X type(X軸)、Y Type(Y軸)、Z type(Z軸)の入力欄が表示されると思います。

 

各軸に設定する変数を決めていきましょう。X typeのプルダウンボタンをクリックし、自分の好きな変数を選択してください。

変数はたくさんありますが、主に使いそうなのは次の通りです。ControlNetを導入しているとさらに変数が増えます。

  • Seed:シード値
  • Var. seed:Extra機能のVariation Seedの値
  • Var. strength:Extra機能のVariation strengthの値
  • Steps:ステップ数
  • Hires steps:アップスケールの際に使うステップ数
  • CFG Scale:スケール数
  • Prompt S/R:プロンプトの置換(後述)
  • Prompt order:プロンプトの順番を入れ替える
  • Sampler:Sampling method
  • Checkpoint name:モデルデータ
  • Clip skip:1と2の比較など
  • Denoising:Denoising strengthの値
  • Hires upscaler:高画質化で使うアップスケーラー
  • VAE

 

変数を選んだら、X valuesに比較したい数やモデル、プロンプトを入力します。

なおモデルやサンプラーに関しては、ノートブックのマークをクリックすると使用できる候補が自動的に入力されます。

 

この際注意点なのですが、valueの値は必ずコンマだけで区切りましょう。

コンマ+半角スペースを使うと、空のデータで画像を作成してしまうことがあります。

(良い例)「A,B,C」
(悪い例)「A, B, C」

 

X軸に使う変数と値が決まったら、同様にY軸とZ軸も設定しましょう。使わない軸はNothingにしておけばOKです。

 

軸設定下の比較表の外観に関する部分は初期設定のままでOKです。Draw legend(凡例を表示)にチェックが入っていることを忘れないにようにしましょう。

 

これでGenerateボタンを押せば比較表が生成されます。

ちなみに比較表で使われている画像(グリッド内の画像)もoutputフォルダ(~\webui\outputs\txt2img-images\2023-xx-xx)に保存されています。

 

「Prompt S/R」の使い方

変数の1つである「Prompt S/R」は、特定のプロンプトだけを置換してくれる機能なんですが、ちょっと使い方が独特なので追加で補足しておきます。

 

例えば、下記のポジティブプロンプトのmedium breastsの部分だけを変更した表を作成したい場合は、

masterpiece, best quality, highres, official art, 1girl, solo, medium breasts, red hair, upper body, white dress

 

x values(yでもzでもいいです)の場所に、次のように書き込みます。

medium breasts,small chest,large breasts

 

すると下記のような比較画像が表示されます。

 

次に、2つ以上のプロンプト、例えば下のmedium breastsとred hairの部分を変更したい場合は、

masterpiece, best quality, highres, official art, 1girl, solo, medium breasts, red hair, upper body, white dress

 

x values(yでもzでもいいです)の場所に、次のようにダブルクォーテーションで区切って書き込みます。

“medium breasts, red hair”,”small chest, blue hair”,”large breasts, white hair”

 

すると下記のような比較画像が表示されます。

 

まとめ

以上が「Stable Diffusion WebUI」で、変数比較機能「X/Y/Z plot」を使ってモデルに応じた最適なサンプラーやプロンプトを簡単に調べる方法でした。

「プロンプト案は思い浮かんだけれど、どのモデルを使えばいいか悩む!」という場合にぴったりの機能ですので、ぜひ皆さんも活用してみてくださいね!

 

では、ここまで読んでいただきありがとうございました。

コメント