「X/Y/Z plot」の使い方!呪文や設定値を比較して研究に役立てよう【Stable Diffusion web UI】

X/Y/Z plot 使い方 画像生成AI

今回はStable Diffusion web UIの便利機能に関する初心者向けの話題で、タイトルの通り

生成結果の比較画像を簡単に作れる「X/Y/Z plot」の使い方

をご紹介するという内容になっています。

Stable Diffusion web UIを使って多くの画像を生成していると

  • 研究のために呪文や設定を少し変えて元の場合と比較したい
  • でも生成結果を一つずつ確認して見比べるのは面倒くさいなぁ

と思うことがあります。しかし実はこのようなときのために、web UIには「X/Y/Z plot」という便利機能があることはご存じでしょうか?

これを使うと例えば下のような比較画像を簡単に作ることができて研究がとても捗るので、知らなかったという方にはぜひ使いこなせるようになって頂きたいと思います。

XYZ Plot X軸のみ指定した場合

ステップ数を変えて生成した場合の比較画像

ここではこのX/Y/Z plotの使い方を丁寧にご説明していきますね。

X/Y/Z plotの出し方・設定項目について

X/Y/Z plotは「スクリプト」メニューから使用可能

まずはじめに

  • X/Y/Z plotってどこにあるんだっけ?
  • 項目が見当たらないんだけど…

と思っている方もいらっしゃるかもしれないので設定の出し方から説明します。

web UIのtxt2imgタブ(もしくはimg2imgタブ)の画面左下を見ると「スクリプト」というドロップダウンメニューがあると思います。

web UIの「スクリプト」メニュー

これを押すとその中に「X/Y/Z plot」とあるので選択してください。すると設定項目がいくつか出現するはずです。下準備はこれでOK!

主な設定項目の概要

さて出現した設定項目を見てみると下のような感じになっていると思います。

X/Y/Z Plotの設定項目

主な項目の意味は次のとおりです。

  • X/Y/Z軸の種類:
    どの要素を元に比較するかを軸ごとに決めます。後述するように色々な要素を指定することができます。
  • X/Y/Z軸の値:
    それぞれの軸に設定する値。後述するように記入にあたっては書式が決められているので、それに従う必要があります。
  • 凡例を描く:
    表の見出しを描くかどうか。
  • グリッドの間隔:
    表の画像同士の間隔。0より大きい値にすると隙間が空くようになります。

他にも項目がありますが、とりあえず上記の設定の意味だけご理解いただければ大丈夫です。

X/Y/Z plotの使い方

ではここからX/Y/Z plotの基本的な使い方についてご説明していきます。

各軸を設定していくと、どのような比較画像を得られるか?

まず、設定項目としては比較対象の要素を3軸まで指定できるわけですが、次の3パターン

  1. X軸のみを設定した場合
  2. X/Yの2軸を設定した場合
  3. X/Y/Zの3軸を設定した場合

でどのような比較画像が生成されるのか?というイメージを持っていただいたほうが分かりやすいかなと思ったので、実際に私が生成したサンプル画像を掲載しておきます。

X軸のみを設定した場合

下のような比較画像が生成されます。

XYZ Plot X軸のみ指定した場合

X/Y軸の2軸を設定した場合

下のような比較画像が生成されます。

XYZ Plot X/Y軸を指定した場合

X/Y/Zの3軸を設定した場合

  1. 一覧表
  2. Z軸の値ごとのX/Y軸の比較画像

が生成されます。

XYZ Plot X/Y/Z軸を指定した場合(1)

一覧表

XYZ Plot X/Y/Z軸を指定した場合(2)

Z軸の値ごとの比較表1

XYZ Plot X/Y/Z軸を指定した場合(3)

Z軸の値ごとの比較表2

XYZ Plot X/Y/Z軸を指定した場合(4)

Z軸の値ごとの比較表3

なお見てのとおりたくさんの画像を生成することになり、生成に時間がかかるのでZ軸まで指定することはあまりないと思います。

軸に設定できる要素について

次に各軸には色々な要素を指定することができるのですが、各要素の値として何を記入すればよいのかを予め知っておいたほうがいいです。そこでここではよく使う要素を抜粋して一覧表でまとめておきます。

要素名 入力する値の型 説明
Nothing その軸を使用しない。
シード 整数(-1, 0, 1, 2…) 生成に使用するシード。
「-1」でランダムだが、軸ごとに同じ値になる(※同じじゃないと比較に使えないので)。
ステップ数 整数 ステップ数を指定
CFGスケール 実数(小数もOK) CFGスケールの値を指定
Prompt S/R 文字列 詳細は後述
サンプラー 文字列 サンプラーの名前を記入
Checkpoint名 文字列 モデルの名前を記入
VAE 文字列 VAEの名前を記入

他にも様々な要素を指定できます。また、ControlNetを導入している場合はそれに関連する要素も選べるようになるので色々試してみてください。

入力する値の書式について

さて各軸の値の入力にあたっては、書式が決まっていてそれに従って記入する必要があります。使える書式は何パターンもあるようですが、とりあえず次の2つのルールを覚えて頂ければ困ることはないと思います。

  1. 複数の値は半角のカンマで区切って入力する。
    (例)1, 2, 3
  2. カンマを含む文字列は半角のダブルクォーテーション(”)で囲む。
    (例)”masterpiece, super fine illustration”

「Prompt S/R」について

それから先ほどの表でご紹介したPrompt S/Rでは、最初に指定したキーワードを2番目以降のキーワードで置き換えて呪文を適用し比較を行います。例えば次の条件で設定を行うと…

  • 元の呪文:
    super fine illustration, an extremely cute and beautiful knight girl, highly detailed beautiful face and eyes, beautiful blonde hair, look at viewer, cowboy shot, solo, dynamic angle, smiling
  • Prompt S/Rの値:
    smiling, sad, angry, happy

下のような比較画像が生成されます。

Prompt S/Rの例

要するに呪文の「smiling」の部分をsmiling→sad→angry→happyという風に順番に入れ替えていくというわけです。これを使いこなせば呪文の違いで生成結果がどのように変わるのかが一目瞭然!とても便利ですよ。

生成した比較画像の保存先

X/Y/Z plotで生成した比較画像の保存先は(txt2imgの場合)デフォルトだと次のフォルダになっています。

webui\outputs\txt2img-grids

少々分かりにくい保存先になっているのでご注意ください。

チュートリアル:実際に使ってみよう!

では基本的な使い方をご理解頂いたところで、実際にX/Y/Z plotを使って比較画像を作ってみましょう。

ここではステップ数の違いが生成結果にどのような影響を及ぼすかを調べてみることにします。この場合の設定は次のとおりです。

ステップ数の比較表を作る場合の設定例

  • X軸の種類:ステップ数
  • X軸の値:20, 30, 40, 50, 60
  • Y/Z軸の種類:Nothing

この設定で画像を生成すると次のような比較画像が作成されます。

X/Y/Z Plot サンプル画像

これを見てみると、今回私が使用したモデルの場合

  • ステップ数20だと顔など一部絵が崩れている部分があり、値が小さすぎる
  • ステップ数60だと50のときと比べて生成時間がかかる割にあまりよい変化がなく、逆に色が変になるなどの副作用がみられる
  • ステップ数40~50くらいが一番良い結果を得られる

というようなことが分かります。こんな感じで値を少しずつ変えて検証すると新しい発見があったりして面白いです。

おわりに

以上、Stable Diffusion web UIのX/Y/Z plotの使い方についてご説明しました。この機能を使いこなせば研究が捗り、よりハイクオリティなイラストを生成するのに役立つのでぜひ使ってみてください。

この記事が何かしらお役に立てば幸いです。