Stable Diffusion Web UIのtxt2imgには、3つのスクリプトが用意されており、それぞれプロンプトの組み合わせや、各種パラメータの調整に役立つ便利な機能です。
今回は、そのスクリプトの使い方について解説したいと思います。
以下、3つのスクリプトの要点です。
- プロンプトマトリックス(Prompt matrix)
プロンプトの一部を総当たりの組み合わせで画像生成することができます。
プロンプトの調整に便利な機能です。 - ファイルまたはテキストボックスからプロンプトを入力(Prompts from file of textbox)
プロンプトを1行ずつ指定し、一度に画像生成することができます。
プロンプトの調整に便利な機能です。 - X/Y/Zプロット(X/Y/Z plot)
最大3つのパラメータを指定し、それぞれのパラメータ値を指定(複数可)して、その組み合わせで画像生成することができます。
生成モデルの選定やパラメータの調整に便利な機能です。
プロンプトの文字列の並び替えや置換もできます。
それでは、それぞれのスクリプトを具体的に解説していきます。
グラフィックボードの性能が足りない方は、この機会に是非グレードアップを検討してみてください。
◆AI画像生成の入門モデルとしておすすめのグラフィックボード
◆ワンランク上のハイエンドモデルとしておすすめのグラフィックボード
◆最高峰の超ハイエンドモデルとしておすすめのグラフィックボード
Stable Diffusionについて、さらに詳しく知りたい方はこちらも参考にしてみてください。
◆Stable Diffusion AI画像生成ガイドブック
プロンプトマトリックス(Prompt matrix)
「プロンプトマトリックス」は、プロンプトの違いが画像生成にどのような影響を与えるかを比較するのに便利な機能です。
プロンプトは、通常カンマ(,)でキーワードを区切りますが、このスクリプトを使用することでパイプライン(|)が使用でき、パイプラインで区切ることで総当たりの組み合わせで画像を生成することができます。
例えば以下のようなプロンプトを入力すると
masterpiece, best quality, ultra detailed, beautiful lighting, cute puppy, | meadow | waterfront
次の4パターンのプロンプトで画像が生成されます。
- masterpiece, best quality, ultra detailed, beautiful lighting, cute puppy
- masterpiece, best quality, ultra detailed, beautiful lighting, cute puppy, meadow
- masterpiece, best quality, ultra detailed, beautiful lighting, cute puppy, waterfront
- masterpiece, best quality, ultra detailed, beautiful lighting, cute puppy, meadow, waterfront
また、結合の区切り文字をスペースにしている場合は、4つ目のプロンプトが以下のようになります。
- masterpiece, best quality, ultra detailed, beautiful lighting, cute puppy, meadow waterfront
このプロンプトとスクリプトを使用して画像生成すると4パターンの画像と、以下のような組み合わせを示すグリッド画像が生成されます。
組み合わせの画像生成で、シード値はデフォルトでは固定されますが、1枚ずつ変更することもできます。
赤枠にチェックを入れると1枚ずつシード値が変更されます。
プロンプトマトリックスを使用した場合、バッチ回数とバッチサイズは無視される仕様のようです。
また、狙っていない組み合わせでも画像生成されてしまうので、個人的にはちょっと使いにくいかなと思いました。
ファイルまたはテキストボックスからプロンプトを入力(Prompts from file of textbox)
「ファイルまたはテキストボックスからプロンプトを入力」は、複数のプロンプトをテキストファイルまたはテキストボックスから一括で実行できる機能です。
先ほどの4パターンのプロンプトで画像を生成する場合、テキストボックスに1行ずつ入力すればOKです。テキストファイルに書いてアップロードしたのでもOKです。
↓生成された画像
また、以下のように記述することで、ネガティブプロンプトの指定もできます。
--prompt "ここにカンマ区切りのプロンプトを記述" --negative_prompt "ここにカンマ区切りのネガティブプロンプトを記述"
他にも下記のキーワードで要素を指定することができます。
キーワード | 引数 |
---|---|
--sd_model | 調査中。 |
--outpath_samples | 調査中。 |
--outpath_grids | 調査中。 |
--prompt_for_display | 調査中。 |
--prompt | “プロンプト” |
--negative_prompt | “ネガティブプロンプト” |
--styles | 調査中。 |
--seed | シード値 |
--subseed_strength | 調査中。 |
--subseed | 調査中。 |
--seed_resize_from_h | 元の幅と対応するシードからのサイズ変更 |
--seed_resize_from_w | 元の高さと対応するシードからのサイズ変更 |
--sampler_index | 調査中。 |
--sampler_name | “サンプリング方法” |
--batch_size | バッチサイズ |
--n_iter | 調査中。 |
--steps | サンプリングステップ数 |
--cfg_scale | CFGスケール |
--width | 幅 |
--height | 高さ |
--restore_faces | 顔の修復 |
--tiling | タイリング用の画像を生成 |
--do_not_save_samples | 調査中。 |
--do_not_save_grid | 調査中。 |
X/Y/Zプロット(X/Y/Z plot)
「X/Y/Zプロット」は、パラメータの違いが画像生成にどのような影響を与えるかを一目で比較できる便利な機能です。
3つの変数(X/Y/X)を使って、異なる条件(パラメータなどの設定)で同時に画像生成を行い、その結果を表にまとめてくれます。
Xのみを使用した例:(Xは生成モデルにします)
今回はXに生成モデル(Checkpoint name)を指定してみます。これで同じプロンプト/パラメータで、生成モデルによる違いを見ることができます。
赤枠の部分をクリックすると、使用可能な全ての生成モデルが自動で「X軸の値」に入力されます。
今回は、次の3つのモデルを選択してみます。
- anything-v3-full.safetensors [abcaf14e5a]
- citrinedreammix_v11BakedVAE.safetensors [724566c0cc]
- chilloutmix_Ni.safetensors [7234b76e42]
出力結果:
XとYを使用した例:
次はYにサンプリングステップ数(Steps)を入力してみます。パターンは20,35,50とします。
X(生成モデル)とY(サンプリングステップ数)の組み合わせで画像が生成されます。
出力結果:
XとYとZを使用した例:
次はZにCFGスケール(CFG Scale)を入力してみます。パターンは7,9とします。
先ほどのX/Yの組み合わせに加え、Zのパターンの組み合わせも生成されます。
出力結果:
X/Y/Zプロットに指定可能なパラメータ
X/Y/Zプロットには以下のパラメータを指定することができます。
パラメータ名 | 説明 | 入力形式 |
---|---|---|
Seed | シード値 | 整数値(-1~) ※-1はランダムという意味になる |
Var.seed | 変化用シード | 整数値(-1~) ※-1はランダムという意味になる |
Var.strength | 変化の強度 | 小数点を含む数値(0~1) |
Steps | ステップ数 | 整数値(1~150) |
Hires steps | 高解像度でのステップ数 | 整数値(1~150) |
CFG Scale | CFGスケール | 小数点を含む数値(1~30) |
Prompt S/R | プロンプトS/R ※1番目に指定した文字列を2番目以降の文字列に置換します。置換はプロンプト、ネガティブプロンプト内に出現するすべての個所が対象となります。 | 文字列(置換対象文字列,置換文字列,…) |
Prompt order | プロンプトオーダー ※指定したプロンプト内の文字列を並び変えます。全組み合わせで画像生成されます。(先に書かれたプロンプトの方が強調度が高くなる) | 文字列(プロンプト,プロンプト,…) |
Sampler | サンプラー | 文字列(サンプラー名) |
Checkpoint name | チェックポイント名 | 文字列(チェックポイント名) |
Sigma Churn | Euler, Heun, DPM2などのサンプラーで有効なシグマ値(ノイズレベル) ※細部の質感や陰影などに影響し、値が大きいほどバリエーションに富むが絵が破綻する可能性が上がります。 | 小数点を含む数値(0~1) |
Sigma min | Euler, Heun, DPM2などのサンプラーで有効なシグマ値の最小値。 ※細部の質感や陰影などに影響し、値が小さいほど画像が滑らかになりますが、絵が破綻する可能性が上がります。 最初のステップで使用されます。 | 小数点を含む数値(0~1) |
Sigma max | Euler, Heun, DPM2などのサンプラーで有効なシグマ値の最大値。 ※色や形などに影響し、値が大きいほど画像が多様になり、値が小さいほど、絵が単調になる可能性が上がります。 最初のステップで使用されます。 | 小数点を含む数値(0~1) |
Sigma noise | Euler, Heun, DPM2などのサンプラーで有効なシグマ値の最小値。 ※色や形などに影響し、値が小さいほど絵が多様になり、値が大きいほど、絵が単調になる可能性が上がります。 最後のステップで使用されます。 | 小数点を含む数値(0~1) |
Eta | DDIMで用いるeta(noise multiplier) | 小数点を含む数値(0~1) |
Clip skip | クリップスキップ | 整数値(1~12) |
Denoising | ノイズ除去 | 小数点を含む数値(0~1) |
Hires upscaler | 高解像度でのアップスケーラー | 文字列(アップスケーラー名) |
VAE | VAE名 | 文字列(VAE名) |
Style | スタイル | 文字列(スタイル名) |
UniPC Order | UniPC次数 | 整数値(1~50) |
Face restore | 顔の修復 | 小数点を含む数値(0~1) |
まとめ
この記事では、画像生成AI「Stable Diffusion」のWeb UIである「txt2img」のスクリプト機能について紹介しました。スクリプト機能を使うと、テキストから画像を生成するだけでなく、さまざまなパラメータやオプションを自由に設定して、画像生成のプロセスや結果をコントロールすることができます。
この記事が、画像生成AI「Stable Diffusion」のWeb UIである「txt2img」のスクリプト機能に興味がある方や、使ってみたい方の参考になれば幸いです。
コメント
コメント一覧 (2件)
読みやすいサイトをありがとうございます。
テキストを用いたスクリプトで、ネガティブプロンプトの使用や、同様の効果が出せるテキストの書き方はございますか?
コメントありがとうございます。
以下のようにすればネガティブプロンプトも指定できます。
記事の方にも反映させました。