ワイルドカード定義
テンプレート
`name:` の行で定義し、1行=1選択肢。テンプレに __name__ を書く。{a|b|c} は1つをランダム抽出。
サンプルプロンプト
Stable Diffusion の sd-dynamic-prompts 拡張や A1111 で使う __wildcard__(ワイルドカード)記法は、プロンプトの一部を「候補リストからランダムに1つ」差し替える仕組みです。__color__ や __pose__ のようなトークンをテンプレに書いておくと、生成のたびに別の語へ展開されます。便利な一方で、実際に画像を生成してログを見るまで「このテンプレが毎回どんな文字列になるのか」「タイプミスで未定義のワイルドカードを参照していないか」が分かりにくいのが難点です。このツールは、あなたが定義したワイルドカードを使ってその展開だけをブラウザ内で先に回し、サンプルのプロンプトを一覧でプレビューします。左の『ワイルドカード定義』に `color:` のような見出し行を書き、その下に1行1選択肢で候補を並べます(複数のワイルドカードを続けて定義できます)。『テンプレート』に __color__ などのトークンや {soft|harsh} のような択一を含むプロンプトを書くと、右側にランダム展開したサンプルが指定件数ぶん出ます。__name__ は定義した選択肢から1つをランダムに、{a|b|c} はその場で1つをランダムに選びます(ワイルドカードの選択肢の中にさらに __他のワイルドカード__ や {x|y} を入れた入れ子も展開します)。シード(乱数の種)を固定すれば毎回まったく同じサンプルが再現されるので、誰かと結果を共有したりバグを切り分けたりできます。『振り直す』で種を変えて別の出目をすぐ確認できます。プロンプトに対して全組み合わせを総当たりで出したいときは prompt-matrix を、ここでは「実際の生成に近いランダムなサンプルを数件プレビューする」用途に向いています。未定義のワイルドカードを参照していると、そのトークンはそのまま残り警告に名前が出るので、タイプミスにすぐ気づけます。処理はすべて端末上で行われ、定義もテンプレもアップロード・保存・送信されません。
使い方
- 左の『ワイルドカード定義』に `color:` のような見出し行を書き、その下に1行1選択肢で候補を並べます。複数のワイルドカードを続けて定義できます(`#` 始まりの行はコメント)。
- 『テンプレート』に __color__ などのトークンや {soft|harsh} の択一を含むプロンプトを書きます。
- 右側にランダム展開したサンプルが出ます。『サンプル数』で件数を、『シード』で再現する種を切り替えます。
- 『振り直す』で別の出目を確認し、気に入ったら『全部コピー』でサンプルをまとめてコピーします。
よくある質問
定義やテンプレートは外部に送信されますか?
いいえ。ワイルドカードのパースも展開もすべてブラウザ内で行われます。定義・テンプレ・生成したサンプルはアップロード・保存・送信されません。何も端末の外に出ません。
ワイルドカードはどう定義しますか?.txt ファイルは読み込めますか?
ファイルの読み込みは行いません(サーバーを持たない設計のため)。代わりに『ワイルドカード定義』欄に `name:` の見出し行を書き、その下に1行1選択肢で候補を貼り付けてください。手元の color.txt などの中身をそのまま貼り、先頭に `color:` を足すだけで使えます。複数のワイルドカードを続けて並べられます。
prompt-matrix と何が違いますか?
prompt-matrix は {a|b|c} を総当たりして『全組み合わせ』を出します。このツールは __wildcard__ と {a|b|c} を『ランダムに1つ』選んで、実際の生成に近いサンプルを数件プレビューします。網羅したいなら prompt-matrix、毎回の出目を確かめたいならこちらです。
シード(種)は何のためにありますか?
同じ種なら毎回まったく同じサンプルが再現されます。結果を誰かと共有したり、「このテンプレでこの組み合わせが出る」と切り分けたりするのに使います。『振り直す』を押すと種がランダムに変わり、別の出目をすぐ確認できます。
入れ子のワイルドカードや {a|{b|c}} は使えますか?
使えます。ワイルドカードの選択肢の中にさらに __別のワイルドカード__ や {x|y} を書くと、再帰的に展開します。{a|{b|c}} のような入れ子の択一も解決します。記号そのものを出したいときは \{ \} \| \_ のようにバックスラッシュでエスケープしてください。
未定義のワイルドカードを参照するとどうなりますか?
展開されず __name__ のトークンがそのまま残り、結果の下に『未定義: name』と警告が出ます。タイプミスや定義し忘れにすぐ気づけます。重み付き {2$$a|b} やパス指定の glob 参照には対応していません(別ツール/スコープ外)。