【Stable Diffusion】複数のプロンプトをテンプレ化してまとめて実行する方法

StylePile 画像生成

Stable Diffusionで画像を生成するとき、

複数のプロンプトをまとめて実行したいなあ…

と思うことがあると思います。

その解決策として「複数のプロンプトをまとめて実行する方法」を前回の記事で解説しました。

しかし、前回の記事で紹介した方法では、たくさんのプロンプトを事前にテキストに書き出しておく必要があります。

たとえば、以下のように猫の画像を生成するプロンプトを書いたとします。

(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, black hat

ここで、猫の帽子の色(black hat)を変えて10パターン(10色)の画像を生成したいとき、以下のように長いテキストファイルを用意する必要があります。

// このプロンプトで帽子の色(black hat)を変えて10パターン生成したい場合
(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, black hat
(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, white hat
(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, red hat
(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, blue hat
(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, green hat
(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, purple hat
(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, yellow hat
(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, gold hat
(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, silver hat
(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, pink hat

これはちょっと大変ですね。

基本のプロンプトは同じなので「帽子の色」だけを変えたいです。

たとえば、以下のようなテンプレートが使えればよさそうです。

// [X]に帽子の色を入れる
(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, [X] hat

some9000という方が開発したStylePileという拡張機能を使えば、プロンプトをテンプレ化して、複数のプロンプトをまとめて実行できます。

この記事では、StylePileを使ってプロンプトをテンプレ化し、いろんなパターンの画像を生成する方法を紹介します。

StylePileとは?

StylePileはStable Diffusion web UI(AUTOMATIC1111)の拡張機能のひとつで、some9000という方が開発したものです。

GitHub - some9000/StylePile: A prompt generation helper script for AUTOMATIC1111/stable-diffusion-webui and compatible forks
A prompt generation helper script for AUTOMATIC1111/stable-diffusion-webui and compatible forks - GitHub - some9000/StylePile: A prompt generation helper script...

プロンプトに[X], [Y], [A], [B]のような変数を埋め込むことで、プロンプトをテンプレ化し、異なるプロンプトを順番に実行したり、ランダムな要素を追加したりできます。

使い慣れると強力な拡張機能です。

StylePileのインストール

StylePileはweb UIのExtensionsタブからGitHubのURLを使ってインストールできます。

まずは、web UIでExtensionsタブを開きます。

Extensionsタブの Install from URL の URL for extension’s git repository に以下のURLを入力してInstallをクリックします。

GitHub - some9000/StylePile: A prompt generation helper script for AUTOMATIC1111/stable-diffusion-webui and compatible forks
A prompt generation helper script for AUTOMATIC1111/stable-diffusion-webui and compatible forks - GitHub - some9000/StylePile: A prompt generation helper script...

インストールが完了したら Installed タブに移動し Apply And Restart UI をクリックして、UIを更新します。

それから txt2img タブを開いて Script のドロップダウンを見ると StylePile が表示されます。

StylePile を選択すると次のようなUIが表示されます。

ここでは様々な設定ができますが、プロンプトをテンプレ化するにあたって重要なのは6か所だけです。

詳しく見ていきましょう。

StylePileの使い方

プロンプトをテンプレ化するときに重要なのは以下の6か所です。

  • Sequential prompts [X]
  • SubSequential prompts [Y]
  • Random [A]
  • Random [B]
  • Random [C]
  • Set batch count to prompt count

Sequential prompts [X]

StylePileのParametersタブの下の方に「Sequential prompts [X]」というテキストボックスがあります。

このテキストボックスには「メインプロンプトに順番に入れたいプロンプト」を改行区切りで入力します。

ここにプロンプトを列挙したうえで、メインプロンプトに [X] と入力すると、列挙したプロンプトが[X]の位置に順番に割り当てられます。

例として、以下を試してみましょう。

まずはメインプロンプト(いつものプロンプト欄)に以下のように入力します。

(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, [X] hat

ここでは白猫の画像を生成するものとして、帽子につく形容詞の部分を[X]としました。

次に Sequential prompts [X]のテキストボックスに改行区切りで次のように入力します。

red
green
blue

こうすることによって [X] hat の [X] 位置に帽子の色が割り当てられるようになります。

Generateボタンをクリックして画像を生成すると、これらのプロンプトがメインプロンプトの[X]に順番に割り当てられて実行されます。

すべて白猫ですが、帽子の色だけが red green blue と順番に変わっているのがわかりますね。

SubSequential prompts [Y]

SubSequential prompts [Y] のテキストボックスにも、 [X] と同様に、順番に割り当たいプロンプトを改行区切りで入力できます。

[X]と[Y]は組み合わせて使うことができます。

両方にプロンプトを書いた場合、生成される画像の総数は「(Sequential prompts [X] に書いたプロンプトの行数)x (SubSequential prompts [Y] に書いたプロンプトの行数)」になります。

やってみたほうが理解しやすいので、実際にプロンプトを書いて画像を生成してみましょう。

まずはメインプロンプトに以下のように入力します。

(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, [X] hat, [Y]

先ほどのプロンプトの最後に [Y] を追加しています。

次に Sequential prompts [X] のテキストボックスに改行区切りで次のように入力します。

これはさきほどと同じです。

red
green
blue

最後に、SubSequential prompts [Y]に以下のように入力します。

park
room

ここで[Y]には猫がいる場所(parkとroom)を指定しました。

Generateボタンを押して画像を生成すると以下のように6枚の画像が生成されます。

[X]が3行、[Y]が2行で 3x2=6枚の画像が生成されました。

それぞれ帽子の色と猫がいる場所が変わっていますね。

このように[X]と[Y]を組み合わせることで様々なパターンの画像をまとめて生成することができます。

Random [A], [B], [C]

Random [A] から Random[C] までのテキストボックスには、メインプロンプトにランダムで入れたいプロンプトを入力します。

ここも改行で入力します(カンマ区切りではないことに注意してください)。

これらのテキストボックスにプロンプトを入力したあと、メインプロンプトに [A], [B], [C] のように記述すると、その部分にランダムなプロンプトが割り当てられます。

たとえば、AI美女の画像を生成するとき、表情をランダムに変えるには [A] のテキストボックスに次のように入力すればよいです。

smile
sad
angry
closing eyes

このように入力することでランダムに美女の表情が変わります。

試しにやってみましょう。

メインプロンプトに以下のように入力します。

(RAW photo, 8k, masterpiece, best quality), [A] girl, [X] hat

[A] girlのように入力することで、ランダムな形容詞がgirlに適用されるように設定しています。

次に Sequential prompts [X] に次のように入力します。

さきほどの猫の例と同じように帽子の色を順番に変えます。

red
green
blue

そして Random [A] に次のように入力します。これがAI美女の表情についての指示です。

ここに書いたプロンプトのどれかがランダムにメインプロンプトの[A]の位置に入ります。

smile
sad
angry
closing eyes

これで画像を生成します。

すると、帽子の色は順番通りですが、表情は「closing eyes」→「sad」→「angry」のようにランダムに生成されます。

ちなみに、Random [A] から Random [C] までのテキストボックスに入力するのは単語だけでなくカンマ区切りのプロンプトでもOKです([X]と[Y]も同様です)。

改行した部分がひとつの塊になります。

たとえば、Random [A] に次のように入力したとします。

  • smile, closing eyes
  • smile, raising hands
  • sad, blond hair

この場合、プロンプトの [A] には「目を閉じた笑顔(smile, closing eyes)」か「両手を挙げて笑顔(smile, raising hands)」か「金髪で悲しい表情(sad, blond hair)」のいずれかがランダムに割り当てられます。

Set batch count to prompt count

Set batch count to prompt count(バッチカウントをプロンプトカウントに設定する)は、StylePileのParametersタブの真ん中あたりにあるチェックボックスです。

初期設定ではチェックが入っています。

ここにチェックが入っているとBatch Countがいくつに設定されていても、生成される画像の枚数は([X]の行数) x ([Y]の行数)になります。

UIで設定したBatch Countは無視されて、[X]と[Y]の組み合わせで作られるパターンの総数が生成される画像の枚数になります。

「Set batch count to prompt count」のチェックを外すと(Batch Countの数)x ([Y]の行数)の画像が生成されます。

たとえば、Batch Countを4に設定した状態でチェックを外し、以下のプロンプトを実行すると8枚の画像が次のように生成されます。

メインプロンプト:
(RAW photo, 8k, masterpiece, best quality), white cat, small, cute, [X] hat, [Y]

Sequential prompts [X]:
red
green
blue

SubSequential prompts [Y]:
park
room

Batch Countの数だけ[X]を上から順に割り当てて画像を生成し、[X]がすべて終わったら[X]の1行目からまた繰り返します。このときに[Y]にプロンプトが設定されていたら、1回の[X]の生成につき、すべての[Y]を順に実行します。

[X]に書いたプロンプトを何度も繰り返し実行したい場合は、ここのチェックを外してBatch Countを設定すればいいです。

まとめ

この記事では、プロンプトをテンプレ化して複数プロンプトをまとめて実行できる拡張機能「StylePile」を紹介しました。

いろんなパターンのプロンプトを試したいときに便利なので、ぜひ使ってみてください。

記事の内容にわからないことがある方は以下のアカウントに気軽にDMしてください!

@sti320a

また、最新の技術の活用方法など役に立つツイートを心がけているので、ぜひフォローしてもらえると嬉しいです!

タイトルとURLをコピーしました