呪文をランダム生成できる拡張機能「Dynamic Prompts」の使い方まとめ【Stable Diffusion web UI】

呪文をランダム生成しよう 画像生成AI

今回はStable Diffusion web UIの拡張機能に関する話題で、タイトルの通り

呪文をランダムに組み合わせられる拡張機能「Dynamic Prompts」の使い方

を丁寧にご紹介するという内容になっています。

Stable Diffusion web UIで画像を生成するときに

  • 呪文を手動で少しずつ変えるのは面倒くさいなぁ
  • 自動でランダムな呪文を生成できたらいいのに…

と思うことがあります。こんなときに便利な拡張機能として「Dynamic Prompts」というものがあるのですが、使い方が少し複雑なのでこれは解説記事を書いておいた方がいいかなと思った次第です。

そこでここではこの拡張機能について

  • 概要やインストール方法
  • 基本的な構文の解説や使い方
  • その他の便利機能の使い方

といった点をご紹介していきますね。

「Dynamic Prompts」について

公式ページ

GitHub - adieyal/sd-dynamic-prompts: A custom script for AUTOMATIC1111/stable-diffusion-webui to implement a tiny template language for random prompt generation
A custom script for AUTOMATIC1111/stable-diffusion-webui to implement a tiny template language for random prompt generat...

Dynamic Promptsとは?

「Stable Diffusion Dynamic Prompts extension」(長いので以下「Dynamic Prompts」と呼びます)は、呪文をランダムに組み合わせられるweb UI用の拡張機能です。この拡張機能を使えば、予め指定した呪文をランダムに組み合わせて画像を生成することができます。

なお、当然ですがこの拡張機能を使うにはStable Diffusion web UIが必要になるので、「まだweb UIをインストールしていないよ」という方は下記の記事も併せてご覧ください。

「Stable Diffusion web UI」のインストール方法・日本語化・使い方まとめ(AUTOMATIC1111版)
今回も画像生成AIに関する初心者向けの話題で、タイトルの通り 「Stable Diffusion web UI」のインストール方法・日本語化の方法・使い方 をまとめてみるという内容になっています。 画像生成AIの代表格であるStable D...

web UIへのインストール方法

web UIへのインストール方法は簡単で、他の多くの拡張機能と同様に拡張機能一覧からインストールすることができます。

web UIの拡張機能タブ→「拡張機能リスト」→「読込」ボタンを押すと、一覧にDynamic Promptsが出てくるので「インストール」ボタンを押しましょう(※もちろんインストールは無料です)。あとはweb UIを再読み込みすればOKです。

Dynamic Promptsの基本的な使い方

ではここからDynamic Promptsの基本的な使い方についてご説明していきます。

使い方の流れ

Dynamic Promptsを正常にインストールすると、txt2img・img2imgタブの左下のほうに「Dynamic Prompts」という項目が出現するのでそれを展開しましょう。すると下のように色々な設定項目が表示されます。

Dynamic Promptsの設定画面

とりあえず使ってみる場合は「Dynamic Promptsを有効化」にチェックを入れておきましょう。

また、呪文の組み合わせを総当たりで試したい場合は「組み合わせを生成」にチェックを入れて「最大生成数」を「0」にしておきます。このオプションは組み合わせが少ない場合に便利ですが、当然ながら組み合わせる呪文の種類が多いほど全部出力するのに時間がかかるようになるので注意してください(※それを避けるために生成数の上限を設定する場合は0よりも大きい値にしてください)。

あとはこの後説明する構文を呪文に追加し、生成をスタートさせればOKです。

呪文を組み合わせるための基本構文について

さて呪文をランダムに組み合わせるためには

  • どんな候補の中から呪文を選ぶか
  • 呪文を均等に選ぶのか、それとも偏った選び方をするのか
  • 1つだけ選ぶのか、それとも複数選ぶのか

といったことを指定する必要がありますよね。そこでDynamic Promptsでは構文を使ってその辺の要素を指定します。

最も基本的な構文

はじめに、最も基本的な構文(呪文A~Cの中からランダムに1つだけ選ぶ)は次のとおりです。

{ 呪文A | 呪文B | 呪文C }

呪文を半角の|で区切り、それを半角の{}で囲むだけです。

なお呪文はいくつでも追加できます。ただしあまりにも多いと書くのが面倒くさいので、そのようなときは後述するワイルドカード機能を使うことをオススメします。

選択する呪文の重みづけ

次に先ほどは平等な確率で選ぶやり方でしたが、偏った選び方をすることもできます。その場合の構文は次のとおりです。

{ 重みA :: 呪文A | 重みB :: 呪文B | 重みC :: 呪文C }

呪文の前に重み(実数値)と二重の半角セミコロン::を追加します。具体例は次のとおり。

{ 0.1 :: black | 0.3 :: white | 0.5 :: blonde }

ちなみに重みは相対的なものであり合計を1にする必要はありません

複数選択

あとは呪文の中からランダムに複数を選択することもできます。その場合の構文は次のとおり。

{ 選択する数 $$ 呪文A | 呪文B | 呪文C }

具体例は次のような感じです。

she has { 2 $$ apple | banana | grape }

この場合、例えば次のような呪文が生成されます。

  1. she has apple, banana
  2. she has banana, grape
  3. she has grape, apple

生成例

ではここまでの内容のおさらいとして、簡単な構文を使って実際に画像を生成してみましょう。

  • Dynamic Promptsを有効化
  • 組み合わせを生成

の2項目にチェックを入れてからプロンプト欄に次の呪文を記入して画像を生成してみてください。

super fine illustration, an extremely cute and beautiful girl, highly detailed beautiful face, look at viewer, cowboy shot, solo, dynamic angle, beautiful { black | white | blonde } hair,

私が使っているモデルでは次のように3枚の美少女イラストが生成されました。

Dynamic Promptsを使って生成した美少女イラストの例(1) Dynamic Promptsを使って生成した美少女イラストの例(2) Dynamic Promptsを使って生成した美少女イラストの例(3)

それぞれ女の子の髪の色が黒髪・銀髪・金髪になっていることが分かります。

ワイルドカードの使い方

さて基本的な使い方は上記のとおりなのですが、Dynamic Promptsには他にも便利な機能があります。ただその全てについて詳しく説明していると記事がかなりの長さになってしまいますので、ここではよく使うワイルドカード関係の機能に絞ってご説明しますね。

  1. ワイルドカードの基本的な使い方
  2. 「ワイルドカードの管理」機能

ワイルドカードの基本的な使い方

まずはワイルドカードの使い方についてです。

ワイルドカードを使うと、予めテキストファイルにリストアップしておいた呪文の中からランダムに選択して画像を生成することができます。つまり先ほどのようにいちいち呪文の候補を手打ちする必要がなくなるのでとても便利です。

テキストファイルの作り方

ワイルドカードを使う前の準備として、テキストファイルに呪文の候補の一覧を書いておく必要があります。書き方は基本的には次のように1行につき呪文を1つずつ書いていけばOKです。

呪文A
呪文B
呪文C

テキストファイルを作れたら下記のフォルダに入れてください。

webui\extensions\sd-dynamic-prompts\wildcards

これでワイルドカードを使う準備ができました。

ワイルドカードの基本構文

さてワイルドカードを使うには次の構文を呪文に含めます。

__テキストファイルのファイル名__

見てのとおりテキストファイルの名前(拡張子は除く)を二重の半角アンダーバー(_)で囲った構文ですね。

例えばテキストファイル名が「fruits.txt」の場合の呪文は次のようになります。

masterpiece, 1 girl, she has __fruits__

「ワイルドカードの管理」機能

お次はワイルドカードの管理機能についてです。ワイルドカードの管理機能を使うと、自分でいちいちテキストファイルを作らなくても既存のテンプレートをコピーしてそれを手軽に編集することができます。

使い方はまず「ワイルドカードの管理」タブを開きます。すると次のような画面が出るので、「コレクションを選択」メニューから好きなコレクションを選んで「コレクションをコピー」ボタンを押します。

ワイルドカードの管理画面

例えば「アーティスト」を選んでコレクションをコピーすると、下のようにアートスタイルのジャンルがいろいろ出てきます。

ワイルドカードのコレクションの例

ここで好きなジャンルを選ぶと画面右側にワイルドカード構文とテキストファイルの中身が表示されます。

ワイルドカード編集画面の例

あとはワイルドカード構文をコピーして使ったり、テキストファイルを適当に編集したりすればOKです。

ちなみに自作のワイルドカードもこの画面で手軽に編集できるのでぜひ活用しましょう。

おわりに

以上、呪文をランダム生成できる拡張機能「Dynamic Prompts」の使い方をご紹介しました。この拡張機能を使いこなせば予想外の組み合わせを試すことができ、新しい発見があって楽しいのでぜひ試してみてください。

この記事が何かしら参考になれば幸いです。