【初心者向け】xyz plotの使い方。パラメータ研究に必須!
こんにちは、画像生成AIでひたすら猫のイラストを生成している じょじお(@jojio‗illust)です。
皆さんは、サンプラーやステップ数などのパラメータ調整に頭を悩ませていないでしょうか?
この記事ではパラメータ研究を超絶効率化できる「x/y/z plot」の使い方について紹介します。
Stable Diffusion WebUIユーザー(ローカル・Colab)
▲AI画像の大量ファイルをプロンプトと一緒に簡単に整理する方法はこちら。
Stable Diffusionのプロンプトエンジニアリングの基本について理解したい方には、初心者向けのプロンプトガイドを作りましたのでそちらを見てください!
X/Y/Z Plotとは?
x/y/zプロットは、3つの変数(x/y/z)を使って同時に画像生成を行い、その結果をマトリクス表にする方法です。
X/Y/Z Plotのメリット
AI画像のパラメータの組み合わせを簡単に試すことができます。
たとえばx変数の項目をVAE、y変数の値をモデルにすると、指定したモデルとVAEの組み合わせの数だけマトリクス表を作成することができます。各モデルファイルに自分の持っているVAEファイルのどれが最適なのかを簡単に調査できます。
x/y/z変数に使用できるパラメータ
パラメータ | 説明 |
Nothing | なし |
Seed | シード値 |
Var. seed | Variation seed |
Var. strength | Variation strength |
Steps | ステップ数 |
CFG Scale | CFGスケール |
Prompt S/R | プロンプトの置換 |
Prompt order | プロンプトの順番入れ替え |
Sampler | サンプラー |
Checkpoint name | モデル |
Hypernetwork | ハイパーネットワーク |
Hypernet str. | ハイパーネットワーク強度 |
Sigma Churn | シグマチャーン |
Sigma min | シグマ最小値 |
Sigma max | シグマ最大値 |
Sigma noise | シグマノイズ |
Eta | |
Clip skip | |
Denoising | |
Cond. Image Mask Weight | |
style | 保存したプロンプトセット。 |
パラメータ調整に便利なんです。
使い方の例
- 同じプロンプトでモデルの違いを比較する。
- 同じモデルでベストなサンプラーを探す。
- 品質呪文の組み合わせの効果を検証する。
- ステップ数の変化による画像の品質向上の度合いを調べる。]
- ベストなVAEの調査
- など。
参考
- https://github.com/xrpgame/xyz_plot_script
- https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#xyz-plot
x/y/z plotの使い方
使ってみます。
ためしに、サンプラー別にステップ数を変化させた時の影響度を見てみたいと思います。
x/y/z Plotを有効にするにはScriptプルダウンリストからx/y/z Plotを選択します。
↑ここがスクリプトのオフオンになります。
TYPE | Value | |
---|---|---|
X | step | 20,25,30 |
Y | Samplar | Euler a, Euler, LMS, Heun, DPM2, DPM2 a, DPM++ 2S a, DPM++ 2M, DPM++ SDE, DPM fast, DPM adaptive, LMS Karras, DPM2 Karras, DPM2 a Karras, DPM++ 2S a Karras, DPM++ 2M Karras, DPM++ SDE Karras, DDIM, PLMS |
Z | none | none |
私は項目数が多いパラメータをY軸に選ぶようにしています。
横長の表より縦長の表の方が見やすいからです。
▲それぞれに値を入力します。
▲あらかじめパラメータが決まっている値(サンプラー名やモデル名など)については、テキストボックスの右のノートブックアイコンをクリックすると値を自動挿入できます。入力の手間を省けます。
▲X/Y/Z Plotの設定を終えたら、通常通りプロンプトを入力してGenerateボタンをクリックすれば終了です。
▲しばらくするとこのようなマトリクス表が表示されます。
設定の数だけ画像を生成するので、その分時間もかかります。
ケース別の使用例
いくつか使用例を紹介したいと思います。
モデル別VAEの効果チェック
モデル別に最適なVAEを探してみました。
似たようなモデルで同一プロンプトを使ったときの比較
同じプロンプト・同じパラメータで、モデルだけ変えてみました。
Prompt S/R
Prompt S/Rは、プロンプト内の特定のワードを、別のワードに順番に置き換えて画像を生成します。
a beautiful girl, (black clothes:1.4), (face close up), looking at viewer
▲こういうプロンプトがあって、(black clothes:1.4)のワードをいろいろ変化させることができます。
▲typeに「Prompt S/R」を選択、valuesに「(black clothes:1.4)」の後に、カンマ区切りで変化させたいワードを書きます。CSVファイルのような書き方です。
(black clothes:1.4), (red clothes:1.4), (blue clothes:1.4)
▲例えば↑のように書くと、最初にblack clothesを実行し、次にredに置換して実行、最後にblueに置換して実行します。
空の値を使う方法!
空の値の指定方法に迷ったので共有します。
これを知っておけばVAEなどの比較をする際に、「VAEを使用しない場合」というパターンも含めることができます。
空の値を使うには何も入力しないでカンマを使うだけです。
下記に例を示します。
VAE-A,VAE-B,
▲この場合、値は「VAE-A、VAE-B、空の値」の3つになります。最後にカンマがあるので3ん番目が空の値として認識されています。
VAE-A,VAE-B
▲この場合、値は「VAE-A、VAE-B」の2つになります。
,VAE-A,VAE-B
▲この場合、値は「空の値、VAE-A、VAE-B」の3つになります。最初にカンマがあるので、最初に空の値が入っていると認識されます。
x/y/z plotの無効化
無効にするには、WebUIのスクリプトのプルダウンリストから「None」を選択します。
オプションについて
- Draw leged:一枚一枚画像をWebUI上に表示。チェックがオフの場合、マトリクス表だけは表示。
- Keep -1 for Seeds:チェックするとシード値をランダムにする。
コメント