やりたいこと
StabeleDiffusionGUIで複数の単語の候補からランダムでプロンプトを作成します。
sd-dynamic-promptsというExtensionを使います。
Automatic1111向けのExtensionですがForgeで確認を行っています。
例
以下は固定:
”a girl,”
以下からランダム:
”blue hair”、”yellow hair”
一度のGenerateで以下のプロンプトが自動で作成/画像生成されます。(ランダムなので必ず両方が作成されるわけではありません。)
”a girl, blue hair”
”a girl, yellow hair”
sd-dynamic-promptsのインストール
Extensionsタブの中のinstall from URLタブを開きます。
URL for extension’s git repositoryに以下のURLを入力します。
https://github.com/adieyal/sd-dynamic-prompts
installをクリックします。

installに失敗する場合は以下の記事をご参照ください。
StableDiffusionを再起動してインストール完了です。
プロンプトの自動作成
準備
Txt2imgもしくはImg2imgタブのDynamic Prompts(Seed設定の下)を◀をクリックし設定を開きます。Dynamic Prompts enabledにチェックが入っていることを確認します。

基本的な使い方
Promptに以下の構文で追加します。
画像生成時に設定したitemの中から一つランダムで選択され、プロンプトが再生されます。
{}の外の文字列は固定で毎回使用されます。
{item1|item2|item3|...}
Batch countを指定してGenerateをクリックして画像生成を行います。
(Batch countを5にした場合、5回プロンプトが生成されます。)
例
入力プロンプト:
a girl, {blue|yellow} hair
画像生成時に使用されるプロンプト:
a girl, blue hair
か
a girl, yellow hair
ワイルドカード(辞書ファイル)の使用方法
プロンプトに以下の構文で記載することで、設定した単語一覧からランダムで一つ選択され、プロンプトが作成されます。
__group__
“_”は2つです。
単語の設定はwebui\extensions\sd-dynamic-prompts\wildcardsにgroup.txtを以下の中身で作成します。ファイル名のgroupは作成するグループの名前です。
item1
item2
例
webui\extensions\sd-dynamic-prompts\wildcards¥color.txt:
yellow
blue
入力プロンプト:
a girl, __color__ hair
画像生成時に使用されるプロンプト:
a girl, blue hair
か
a girl, yellow hair
使用されたプロンプトの確認方法
この記事で消化した方法を使用するとプロンプトは自動生成されるため、実際に作成されたプロンプトは結果に表示されません。
最後に生成された画像のプロンプトで実際に使用されたプロンプトの確認方法を紹介します。
確認方法
PNG infoタブを開きます。
左側のソース部に作成した画像をドラッグアンドドロップして画像を表示させます。
少し待つと右側に使用したプロンプトが表示されます。(下の例では”a girl, blue hair”)

結果
StabeleDiffusionGUIで複数の単語の候補からランダムでプロンプトを作成できました。
コメント