X/Y/Z plot

Last-modified: 2024-01-28 (日) 13:45:20

X/Y/Z plotとは

1111に標準で用意されている機能の一つ。
txt2imgやimg2imgの左下、Scriptから選択して利用可能。
X/Y/Z plotの例
こんな比較表を簡単に作ることができる。
上記の例ではX方向にSeed、Y方向に3種類のモデルを設定し、Z方向は使用していない。

こんな時に便利だよ

  • このモデルとこっちのモデルはどう違うんだろう
  • このパラメータを変えると結果がどう変わるだろう
  • このパラメータの適正値はどれくらいだろう
  • プロンプト/ネガティブにこの単語を追加/削除したらどう変わるだろう

1111の初心者からベテランまで、幅広い層に役立つオススメ機能の一つ。

注意事項

Generateボタンを押す前に、Batch countとBatch sizeは両方とも1にしとけ
Generateボタンを押す前に、Batch countとBatch sizeは両方とも1にしとけ
Generateボタンを押す前に、Batch countとBatch sizeは両方とも1にしとけ!
…でもこれうっかり忘れて(あれ? やけに時間かかってるな…あっ!)ってInterruptするんだよなー

チュートリアル

(例題1) ステップ数の比較

ステップ数が生成画像にどう影響するか、比較してみようぜ!

もっと見る
  1. まずはtxt2imgの設定をしよう。
    モデルお好みでOK
    プロンプト
    ネガティブ
    Width512
    Height512
    Batch count1にしてくれ!
    Batch size1にしてくれ!
    「1にしてくれ」については前述の注意事項にも書いた通り。
    まあ仮に2以上にしてしまっても、所要時間と画像サイズと見づらさの3つがひでぇことになるという、ただそれだけだが…。
  2. ここまで終わったらいよいよX/Y/Z plotの設定だ。
    txt2imgの左下、ScriptのプルダウンからX/Y/Z plotを選択しよう。
  3. するとパネルが開いて設定項目が色々出現する。
    今回は下記のように変更してほしい。
    X typeX values
    Steps10,15,20
    Y typeY values
    Seed-1,-1,-1
    Z typeZ values
    Nothing(空欄のままでOK)
  4.  Generate だ!

質問コーナー
Q. 「10,15,20」とかさあ、最後カンマで終えてないけどいいの?
A. いい。ってかカンマで終えない方がいい。
 やってみるとわかるけど、カンマで終えるとエラー吐いちゃう。
 最後をカンマで終えると、「4項目めは空でお願いね」という指示が送られてしまい、エラーになっちゃうわけ。
 Steps=(空) とか、Seed=(空) とか指示されても1111君も困っちゃうからね。Seed=-1 とかならともかく。

(例題2) プロンプトの比較

Prompt S/Rを利用して、プロンプトの一部を置換しつつ比較してみよう。

もっと見る
  1. 例によって例の如く、まずはtxt2imgの通常部分の設定から。
    モデルお好みでOK…だけど
    二次絵向けのモデルが望ましい
    プロンプトkisaragi chihaya,
    1girl, solo, upper body,
    blue hair, long hair, straight hair,
    flat chest,
    (改行の有無は問わない。閲覧と編集の際に便利ってだけ)
    ネガティブ(worst quality:1.4), (low quality:1.4), (monochrome:1.1),
    Width512
    Height512
    Batch count1
    Batch size1
  2. 次にX/Y/Z plotの設定を行う。
    今回は下記の通り。
    X typeX values
    Prompt S/Rflat chest,small breasts,"large breasts,smile,closed eyes,open mouth","huge breasts,(sweatdrop:1.1)"
    Y typeY values
    Seed-1,-1,-1
    Z typeZ values
    Nothing(空欄のままでOK)
  3.  Generate だ!

当人が満足ならいいことだ
でも俺はみんな違ってみんな良いと思うよ

質問コーナー
Q. これ何やってんの?
A. つまり元のプロンプト内にあったflat chestを探し出して

  • flat chest
  • small breasts
  • "large breasts,smile,closed eyes,open mouth"
  • "huge breasts,(sweatdrop:1.1)"

この4パターンに置換してるわけ。
この時に注意点が2つある。

  • 1パターン目は、必ず元のプロンプト内に存在している必要がある。でないと検索して置換する際に困ってエラー吐く。
  • 途中でカンマを跨ぐ際は、ダブルクオーテーションで囲むこと。でないと単語の区切りとパターンの区切りを混同してしまうからだ。

利用可能な項目

全部書くと長いから、主要な項目をピックアップして紹介

項目解説
Nothing空。「この軸は使わないよ」って意思表示
Checkpoint nameモデル名。部分一致でも動作はする(ただし不確実になる)
📒を押すと手持ちのモデル全部の名前がぶっ込まれるぶっ込まれた。
万が一そのまま実行しようものなら、所要時間や画像サイズがひでぇことになる恐れがある
VAEほらあの生成画像の色や線に影響を与えるファイルのことだよ
Prompt S/Rプロンプトまたはネガティブの一部を置換して比較したい際に利用する。
search/replaceの略*1
Steps画像を改善する処理を何回繰り返すか…
だけどあんま多くても頭打ち感が強くなるよ。
何より、画像生成の所要時間に直結するしね
Samplertxt2imgやimg2imgのサンプラーのこと。Euler aとか
Seed具体的に指定してもいいけど、多くの場合、-1でいいでしょう。
-1を入れるとランダムになる。でも同じ軸では値が共有される
(でないと比較として役に立たないからね)
Hires upscalerHires.fixの拡大補正処理の種類
Hires stepsHires.fixを有効にした場合の、2段階目のステップ数。
0だと1段階目と同じ値が利用される
DenoisingHires.fixやいもげいもげでのノイズ除去の強さ
残り

よくわかんなかったら、選択して切り替えた後にマウスカーソルを合わせると、短い説明が表示される(ものもある)よ

項目解説
Var.seedVariation seedの略。txt2imgやimg2imgのExtraチェックボックスをONにした際に出現するアレ
Var.strengthVariation strengthの略。同上
CFG Scaleプロンプトを画像生成結果にどの程度反映させるかの強弱
Prompt orderプロンプト内の単語の順番を入れ替えて検証する時に利用する
Sigma Churn
Sigma min
Sigma max
Sigma noise
Etaいわゆる31337(ENSD)のことではなさそう(確認済み)。
eta (noise multiplier) for DDIMか、
もしくはeta (noise multiplier) for ancestral samplersか(未確認)
Clip skip1派と2派に分かれてるアレのことだよ
StylesGenerateボタンのすぐ下にあるアレのこと
ControlNetの拡張を導入済みの場合にのみ出現する項目

ControlNetの拡張を導入済みの場合にのみ出現する項目

項目解説
[ControlNet] ModelControlNetのモデル名
[ControlNet] Weight
[ControlNet] Guidance Strength
[ControlNet] Resize Mode拡大縮小の種類
[ControlNet] Preprocessor前処理の内容
[ControlNet] Pre Resolution前処理の解像度
[ControlNet] Pre Threshold A
[ControlNet] Pre Threshold B

その他のオプション

項目解説
Draw legend表の凡例、項目の説明書きの有無。
この場合「伝説」の意味ではない。
デフォルトON
Keep -1 for seedsX/Y/Z plotは比較検証のための機能なので、基本的に全てのセルで同一のseed値が利用される。
しかしこのオプションをONにすると、あえて各セル毎にランダムなseed値が利用されるようになる。
ただしXYZいずれかの系列のtypeにseedを指定する場合は、そちらの方が優先される
Include Sub Images
Include Sub Grids
Grid margins (px)各セルの余白のピクセル数。
1以上にすると白く間が空くようになる。
デフォルト0
Swap X/Y axes
Swap Y/Z axes
Swap X/Z axes
軸を入れ替えるためのボタン。
表のレイアウトを変更したい際に

よくある質問

作成した表の画像ってどこかに自動保存されてますか?

  • txt2imgならoutput/txt2img-grids
  • img2imgならoutput/img2img-grids

に自動保存されるはずだよ。
(でも1111の設定次第では自動保存されないかもしんない)
 誘導→よくある質問#グリッド画像の生成が時間かかるしいらない

LoRA強弱の適正値を探るのに利用したいんだけど…

Prompt S/Rでできるよ。
元のプロンプトが<lora:toshiaki:1>だとしたら

<lora:toshiaki:1>,<lora:toshiaki:0.8>,<lora:toshiaki:0.6>

とかそんな感じで置換させてみよう。

LoRA強弱の適正値と同時にLoRA自体も適正なチェックポイントを探りたいんだけど...

X軸にPrompt S/Rを選んで重み付けを入れた複数のLoRAを列挙、
Y軸にもPrompt S/Rを選んで重み付けの数値を列挙すればよい。

たとえば、X軸の要素には<lora:toshiaki-000001:0.7>,<lora:toshiaki-000002:0.7>,<lora:toshiaki-000003:0.7>,...<lora:toshiaki:0.7>などとした上で
Y軸の要素には:0.7>,:0.75>,:0.65>などと入れるとX軸に入れたLoRAの個数x3というグリッド画像を出すことができる。

X typeX values
Prompt S/R<lora:toshiaki-000001:0.7>,<lora:toshiaki-000002:0.7>,<lora:toshiaki-000003:0.7>,(中略)<lora:toshiaki:0.7>
Y typeY values
Prompt S/R:0.7>,:0.75>,:0.65>

ただしこのY軸のように省略した表記を使えるのは、PromptにLoRAが1つのみの場合に限られる。
2つ以上のLoRAを使う場合は、LoRAの名前を<lora:toshiaki-000001-toshiaki:0.7>などと変えた上で、
Y軸の要素には-toshiaki:0.7>,-toshiaki:0.75>,-toshiaki:0.65>を入れるなどの工夫が必要。

Prompt S/Rを利用して、プロンプト内の特定の単語を(空)に置換したい場合はどうするの?

例えば「カンマ+半角スペース」で終えるとかすればいい。Prompt S/Rの場合、「カンマ+半角スペース」で終えると、「最後の項目は空(半角スペース)」という指示になる。

radio controller,radish,

と入力した場合、ラジコン、ダイコン、(空) の3パターンに置換される。

Prompt S/Rで、2単語以上組み合わせるには?

1つの組み合わせを" "で囲めばOK。

"1girl,anime","1woman,realistic"

を書くと「1girl,anime」「1woman,realistic」がそれぞれ出力される。

これって画像生成の優先順はどうなってるの? Xが先? Yが先?

わからん…。昔はX方向が先だったんだけど。なんかいつの間にか、自動的に変わるようになったっぽい?(2023/2/20)
特に、項目としてCheckpoint name(=モデル名)を利用すると、モデルの切替(=読込)頻度が最小になるように、勝手に上手いことやってくれるみたい。
だからとっしーはレイアウトだけ考えればいいんじゃないかな。