こんにちは、タカムネ(@takamune_ai)です。
Stable Diffusion WebUIで髪色や服装、ポーズをランダムに切り替えて画像を生成したいときに便利なのが、拡張機能「Dynamic Prompts」です。
この記事では、導入方法から基本構文、生成例、ワイルドカードの使い方まで、実際の画像を交えて紹介します。
Dynamic Promptsのインストール方法と有効化の確認
{black|green|blue}などのランダム選択構文、重み付け、複数選択
生成画像の実例とワイルドカードによるプロンプト管理
Dynamic Promptsとは?
Dynamic Promptsは、Stable Diffusion WebUI(AUTOMATIC1111系)で利用できるプロンプトのランダム化拡張機能です。
複数の候補をあらかじめ指定しておくと、画像生成時にその中からプロンプトを選択できます。基本は1つの候補を選びますが、構文を変えれば複数候補の選択も可能です。
例えば、髪色・髪型・目の色・ポーズを組み合わせて、さまざまなキャラクターデザインを試したいときに便利です。候補を手動で書き換える手間を減らせます。
Dynamic Promptsの導入方法
Stable Diffusion WebUIの「Extensions(拡張機能)」タブ-「Available(拡張機能リスト)」タブの「Load from:(読込)」をクリックします。

表示されたリストから「Dynamic prompts」を探して、右側にある「Install」をクリックします。

「Installed(インストール済み)」タブをクリックして、一覧に「Dynamic prompts」があることを確認します。

「Apply and restart UI(適用してUIを再起動)」をクリックして、変更を反映します。環境によってはWebUI本体の再起動が必要な場合もあります。

「txt2img」タブで、下のほうに「Dynamic prompts」の項目があれば、導入ができています。
タブを開くと、「Dynamic Prompts enabled(有効化)」というチェックがあるので、チェックが入っていることを確認します。(デフォルトでオンのはず)
これで準備完了です。

Dynamic Promptsの使い方
まずは基本構文を覚えれば、髪色やポーズのランダム生成をすぐに試せます。ここでは、基本のランダム選択から順に説明します。
慣れてきたら、候補ごとの選ばれやすさを変える「重み付け」や、複数の候補を同時に選ぶ「複数選択」も活用できます。
基本的な構文
Dynamic Promptsの基本的な構文は、中括弧で全体を囲んで、複数のプロンプトを「|」で区切ります。
{A|B|C}
例 {black|green|blue} hair
例えば {black|green|blue} hair と入力すると、生成時に black hair、green hair、blue hair のいずれかが選ばれます。
重み付け
候補の前に 数値:: を付けると、選ばれやすさに重みを付けられます。数値が大きい候補ほど選ばれやすくなります。
{数値::A|数値::B|数値::C}
例 {0.7::black|0.3::green|0.2::blue} hair
数値は相対的な重みとして扱われるため、合計を1にする必要はありません。上の例なら、0.7のblackが0.3のgreenや0.2のblueより選ばれやすくなります。
複数選択
中括弧の先頭に 数値$$ を付けると、指定した数の候補を選択できます。
{数値$$A|B|C}
例 {2$$chocolate|vanilla|strawberry}
⇒要素のうち、2つが適用される
1-2$$ のように範囲を指定すると、選択する候補数自体をランダムにできます。
{数値-数値$$A|B|C}
例 {1-2$$chocolate|vanilla|strawberry}
⇒要素のうち、1つ、または、2つが選択される
Dynamic Promptsの使用例
具体的にDynamic Promptsの使用例をご紹介します。
使わせていただいたモデルは、Vすき焼き様(@Vsukiyaki_AIArt)の「ShiratakiMix」です。

キャラデザイン
キャラの印象を大きく左右する「髪色」「髪型」「目の色」をランダム生成してみます。
プロンプトは、以下の通りです。
●プロンプト
//品質向上
masterpiece,
//キャラの人数
1girl,solo,
//髪色
{black|green|blue|red|pink} hair,
//髪型
{long hair|short hair|bob cut|ponytail|twintail},
//目の色
{black|green|blue|red|pink} eye,
//画角
face only,●ネガティブプロンプト
(easynegative:1.0),(worst quality,low quality:1.2),(bad anatomy:1.4),(realistic:1.1),nose,lips,adult,fat,sad, (inaccurate limb:1.2),extra digit,fewer digits,six fingers,(monochrome:0.95)いくつか画像を生成した結果が、以下の通りです。
わかりやすいように、アングルは顔のアップを指定しています。






このように、同じ基本プロンプトから髪色・髪型・目の色の異なるキャラクターを生成できます。気に入った組み合わせが見つかったら、候補を絞って調整するのもおすすめです。
以下のように色が指定通りにならないことがあります。
- 黒髪を指定したのに、目の色と同じピンク髪になった
- 黒髪の一部が、青色の目に影響されて、部分的に青色になった
このように、色が影響しあうことはよくあります。
色の指定が混ざる場合は、候補を減らして原因を切り分けたり、髪色と目の色を個別に調整したりしてみてください。ただし、モデルによっては完全に防げないこともあります。
キャラのポーズ
次は、キャラクターの外見をある程度固定し、ポーズだけをランダムに切り替えてみます。
プロンプトは、以下の通りです。ネガティブプロンプトは、先ほどと同様です。
●プロンプト
//品質向上
masterpiece,
//キャラ全般
1girl,solo,black hair,short hair,blue eye,
//ポーズ
{sit|head tilt|claw pose},
//画角
fullbody,いくつか画像を生成した結果が、以下の通りです。
わかりやすいように、アングルは全身を指定しています。






今回は、割とざっくりと指定したので、同じポーズでも状況がかなり異なりますね。
また、ポーズは、画像のサイズによっても、見え方が変わってきます。
最終的には、キャラデザインやポーズだけでなく、服装や背景なども決めて、完成に近づけていくことになると思います。
タカムネプロンプトは、ざっくり指定して大量に画像を生成してみるのもアリ。予想外の画像ができたりもするので、面白いです。
ワイルドカードの使い方
Dynamic Promptsがさらに便利に使える機能として、「ワイルドカード」があります。
事前に、プロンプトのリストを作成しておくことで、簡単な指定方法でDynamic Promptsが使えます。
ワイルドカードは、以下の2種類の方法がありますので、順番に説明します。
- 標準のコレクションを使用
- 自分でテキストファイルを作成
標準のコレクションを使用
ワイルドカードの管理画面では、利用できるコレクションを取り込める場合があります。ここでは記事作成時に利用したコレクションを例に説明します。
「Wildcards Manager(ワイルドカードの管理)」タブで、「select a collection(コレクションを選択)」から目的のコレクションを選択します。表示されるコレクションや操作項目はバージョンによって異なる場合があります。
今回は「devilkkw」を選択して、「Copy collection(コレクションをコピー)」をクリックします。


ツリーが追加されるので、今回はそのなかにある「devilkkw/animals/animals_categories」をクリックします。
右側の「Wildcards file」という項目にある「__devilkkw/animals/animals_categories__」がワイルドカードです。


試しに、このワイルドカードをプロンプトに貼り付けて画像を生成しました。








このワイルドカードは、動物がリストされているようですね。
自分でテキストファイルを作成
やりたいことが明確に決まっている場合は、自分でリストを作ったほうがいいです。
テキストファイルを新規で作成して、以下のようにプロンプトを改行して記載します。
black
green
blue
red
pink作成したテキストファイルは、Dynamic Prompts拡張機能の wildcards フォルダに保存します。以下はWebUIをCドライブ直下に設置した場合の例です。
C:\stable-diffusion-webui\extensions\sd-dynamic-prompts\wildcards
保存後、ワイルドカードが認識されない場合は、管理画面で再読み込みするかWebUIを再起動してみてください。
ワイルドカードの指定方法
ワイルドカードの指定方法は、テキストファイル名(拡張子なし)を「__」で囲みます。
先ほどのプロンプトをワイルドカードで置き換えると、以下のようになります。
//品質向上
masterpiece,
//キャラの人数
1girl,solo,
//髪色
__color__ hair,
//髪型
{long hair|short hair|bob cut|ponytail|twintail},
//目の色
__color__ eye,
//画角
face only,ワイルドカードを使うことで、入力の手間が省けるので、効率アップ!
同じワイルドカードをプロンプト内の複数箇所で使うこともできます。ただし、髪色と目の色で同じ __color__ を使っても、必ず同じ色が選ばれるとは限りません。
まとめ
Dynamic Promptsを使えば、髪色やポーズなどの候補を毎回手入力し直さずに、さまざまなパターンの画像を生成できます。まずは {A|B|C} の基本構文から試し、候補が増えてきたらワイルドカードで整理すると便利です。






コメント