ランダムなプロンプト作成 Dynamic Prompts
Dynamic Promptsとは?
WebUIで画像を生成する際に、プロンプトの一部、または、すべてを換えて一度に画像を生成したいと思ったことはありませんか?
そんなときに使えるのが「Dynamic Prompts」です。
Dynamic Prompts(インストールはこちらkら)
Dynamic Promptsは、プロンプトの一部をランダムに書き換えてくれる拡張機能です。
例えば、「赤いTシャツを着た女性」の画像を生成する際のプロンプトは、「1 woman, red t-shirt」です。
そのままTシャツの色だけを変えて画像を作成したいときには、
{red t-shirt | blue t-shirt | pink t-shirt | green t-shirt}
と書くと、4つのプロンプトからランダムに選択してくれます。
複数プロンプトからランダムにひとつ
{red t-shirt | blue t-shirt | pink t-shirt | green t-shirt}
このように書くことで、ランダムにひとつプロンプトを選択してくれます。ランダムですので、Batch count「10」で10枚の画像を作成する場合「red t-shirt」が5回、「blue t-shirt」がゼロ回なども有り得ます。
複数からランダムにひとつ(重み付け)
どのプロンプトが選択されるのかを少しだけコントロールできます。
{0.3 :: red t-shirt | 0.3 :: blue t-shirt | 0.6 :: pink t-shirt | 0.9 :: green t-shirt}
のように書くことで、
- 赤と青の重みは同じ
- ピンクは、赤、青より2倍の確率
- 綠は、赤、青の3倍の確率
のようにすることができます。ただ、試行回数が少ないと必ずしも指定した重み付け通りにならないかもしれません。
複数プロンプトからランダムに複数
{選択数 $$ プロンプト1 | プロンプト2 | プロンプト3 | プロンプト4 | プロンプト5 | }
と書くと選択数で指定した数だけ選択できます。
{2 $$ hat | sunglasses | necklace }
と書くと、
- hat, sunglasses
- hat, necklace
- sunglasses, necklace
のパターンが作られます。
ワイルドカード
プロンプトに選択枝を書くのもよいのですが、再利用も考えプロンプト候補を別ファイルに切り出しておくことができます。
例えば、「simile.txt」ファイルの内容を以下のようにしておきます。
half-smile
smirk
grin
raise a smile
giggle
smile
laugh
cracking up
let out a laugh
great joy
brust out laughing
big laugh
「smile.txt」ファイルは、「stable-diffusion-webui/extensions/sd-dynamic-prompts/wildcards」フォルダに置きます。
プロンプトに、「__smile__」と入力すると毎回ファイルからランダムにプロンプトを選択します。
試してみる
以下のプロンプトで「Batch size: 9」で9枚の画像を一度に生成します。
best quality,ultra high res,(photo realistic:1.4),1 woman, upper body shot, {(Autumn Makeup:1.4) | (Orange Red lips:1.4) | (Dark Plum lips:1.4) | (Maron brown lips:1.4)}
毎回メーク部分のプロンプトが変わります。シード値を固定していますがプロンプトが変わるため画像も変わります。
ワイルドカード
上記の「smile.txt」を使い同じく9枚を一度に作成します。
best quality,ultra high res,(photo realistic:1.4),1 woman, upper body shot, __smile__
毎回、smile.txtから1行選択し「__smile__」の部分に代入します。笑顔が変わっています。
