#contents

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

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

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

*注意事項 [#c3f869ac]
Generateボタンを押す前に、Batch countとBatch sizeは両方とも1にしとけ
''Generateボタンを押す前に、Batch countとBatch sizeは両方とも1にしとけ''
''&color(red){''Generateボタンを''};''&color(#ffa712){''押す前に、''};&color(#cccc00){''Batch countと''};&color(#00cc00){''Batch sizeは''};&color(blue){''両方とも''};&color(purple){''1にしとけ!''};
…でもこれうっかり忘れて(あれ? やけに時間かかってるな…あっ!)ってInterruptするんだよなー

*チュートリアル [#efd7f566]
**(例題1) ステップ数の比較 [#g084abc1]
ステップ数が生成画像にどう影響するか、比較してみようぜ!
#fold(もっと見る){{
+まずはtxt2imgの設定をしよう。
|モデル|お好みでOK|
|プロンプト|~|
|ネガティブ|~|
|Width|512|
|Height|512|
|Batch count|1にしてくれ!|
|Batch size|1にしてくれ!|
「1にしてくれ」については前述の[[注意事項>#c3f869ac]]にも書いた通り。
まあ仮に2以上にしてしまっても、所要時間と画像サイズと見づらさの3つがひでぇことになるという、ただそれだけだが…。
+ここまで終わったらいよいよX/Y/Z plotの設定だ。
txt2imgの左下、ScriptのプルダウンからX/Y/Z plotを選択しよう。
+するとパネルが開いて設定項目が色々出現する。
今回は下記のように変更してほしい。
|X type||X values|
|Steps||10,15,20|
||||
|Y type||Y values|
|Seed||-1,-1,-1|
||||
|Z type||Z values|
|Nothing||&color(gray){(空欄のままでOK)};|
+&color(white,#ce6400){ ''Generate'' };だ!

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

**(例題2) プロンプトの比較 [#g084abc1]
Prompt S/Rを利用して、プロンプトの一部を置換しつつ比較してみよう。
#fold(もっと見る){{
+例によって例の如く、まずはtxt2imgの通常部分の設定から。
|モデル|お好みでOK…だけど&br;二次絵向けのモデルが望ましい|
|プロンプト|kisaragi chihaya, &br;1girl, solo, upper body, &br;blue hair, long hair, straight hair, &br;flat chest, &br;&color(gray){(改行の有無は問わない。閲覧と編集の際に便利ってだけ)};|
|ネガティブ|(worst quality:1.4), (low quality:1.4), (monochrome:1.1),|
|Width|512|
|Height|512|
|Batch count|1|
|Batch size|1|
+次にX/Y/Z plotの設定を行う。
今回は下記の通り。
|X type||X values|
|&nobr{Prompt S/R};||flat chest,small breasts,"large breasts,smile,closed eyes,open mouth","huge breasts,(sweatdrop:1.1)"|
||||
|Y type||Y values|
|Seed||-1,-1,-1|
||||
|Z type||Z values|
|Nothing||&color(gray){(空欄のままでOK)};|
+&color(white,#ce6400){ ''Generate'' };だ!

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

質問コーナー
Q. これ何やってんの?
A. つまり元のプロンプト内にあったflat chestを探し出して
-flat chest
-small breasts
-"large breasts,smile,closed eyes,open mouth"
-"huge breasts,(sweatdrop:1.1)"

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

*利用可能な項目 [#h491d259]
全部書くと長いから、主要な項目をピックアップして紹介
|~項目|~解説|
|Nothing|空。「この軸は使わないよ」って意思表示|
|Checkpoint name|モデル名。部分一致でも動作はする(ただし不確実になる)&br;📒を押すと手持ちのモデル全部の名前がぶっ込まれる。&br;万が一そのまま実行しようものなら、所要時間や画像サイズがひでぇことになる恐れがある|
|VAE|ほらあの生成画像の色や線に影響を与えるファイルのことだよ|
|Prompt S/R|プロンプトまたはネガティブの一部を置換して比較したい際に利用する。&br;search/replaceの略((https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#prompt-sr))|
|Steps|画像を改善する処理を何回繰り返すか…&br;だけどあんま多くても頭打ち感が強くなるよ。&br;何より、画像生成の所要時間に直結するしね|
|Sampler|txt2imgやimg2imgのサンプラーのこと。Euler aとか|
|Seed|具体的に指定してもいいけど、多くの場合、-1でいいでしょう。&br;-1を入れるとランダムになる。でも同じ軸では値が共有される&br;(でないと比較として役に立たないからね)|
|Size|画像解像度&br;例:1024x1024, 1296x832 (xは英小文字のエックス)|
|Hires upscaler|Hires.fixの拡大補正処理の種類|
|Hires steps|Hires.fixを有効にした場合の、2段階目のステップ数。&br;0だと1段階目と同じ値が利用される|
|Denoising|Hires.fixやいもげいもげでのノイズ除去の強さ|

#fold(残り){{
よくわかんなかったら、選択して切り替えた後にマウスカーソルを合わせると、短い説明が表示される(ものもある)よ
|~項目|~解説|
|Var.seed|Variation seedの略。txt2imgやimg2imgのExtraチェックボックスをONにした際に出現するアレ|
|Var.strength|Variation strengthの略。同上|
|CFG Scale|プロンプトを画像生成結果にどの程度反映させるかの強弱|
|Prompt order|プロンプト内の単語の順番を入れ替えて検証する時に利用する|
|Sigma Churn||
|Sigma min||
|Sigma max||
|Sigma noise||
|Eta|いわゆる31337(ENSD)のことではなさそう(確認済み)。&br;eta (noise multiplier) for DDIMか、&br;もしくはeta (noise multiplier) for ancestral samplersか(未確認)|
|Clip skip|1派と2派に分かれてるアレのことだよ|
|Styles|Generateボタンのすぐ下にあるアレのこと|
}}

#fold(ControlNetの拡張を導入済みの場合にのみ出現する項目){{
ControlNetの拡張を導入済みの場合にのみ出現する項目
|~項目|~解説|
|[ControlNet] Model|ControlNetのモデル名|
|[ControlNet] Weight||
|[ControlNet] Guidance Strength||
|[ControlNet] Resize Mode|拡大縮小の種類|
|[ControlNet] Preprocessor|前処理の内容|
|[ControlNet] Pre Resolution|前処理の解像度|
|[ControlNet] Pre Threshold A||
|[ControlNet] Pre Threshold B||
}}

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

*よくある質問 [#d6ea1b26]
**作成した表の画像ってどこかに自動保存されてますか? [#c009bb59]
-txt2imgならoutput/txt2img-grids
-img2imgならoutput/img2img-grids

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

**LoRA強弱の適正値を探るのに利用したいんだけど… [#b701d88a]
Prompt S/Rでできるよ。
元のプロンプトが<lora:toshiaki:1>だとしたら
>~<lora:toshiaki:1>,<lora:toshiaki:0.8>,<lora:toshiaki:0.6>

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

**LoRA強弱の適正値と同時にLoRA自体も適正なチェックポイントを探りたいんだけど... [#j3c066ab]
X軸にPromp&#116; S/Rを選んで重み付けを入れた複数のLoRAを列挙、
Y軸にもPromp&#116; 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 type||X values|
|&nobr{Promp&#116; S/R};||<lora:toshiaki-000001:0.7>,<lora:toshiaki-000002:0.7>,<lora:toshiaki-000003:0.7>,(中略)<lora:toshiaki:0.7>|
||||
|Y type||Y values|
|Promp&#116; 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>を入れるなどの工夫が必要。

**Promp&#116; S/Rを利用して、プロンプト内の特定の単語を(空)に置換したい場合はどうするの? [#ra747bdf]
例えば「カンマ+半角スペース」で終えるとかすればいい。Prompt S/Rの場合、「カンマ+半角スペース」で終えると、「最後の項目は空(半角スペース)」という指示になる。
>radio controller,radish, 

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

**Promp&#116; S/Rで、2単語以上組み合わせるには? [#j141f21d]
1つの組み合わせを" "で囲めばOK。
 "1girl,anime","1woman,realistic"
を書くと「1girl,anime」「1woman,realistic」がそれぞれ出力される。

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