stable diffusion でお気に入りの画像を生成する場合、「プロンプトを入れ替えては生成」という作業が付いて回ります。
特に大量の画像を生成させて、その中から選りすぐりたい場合、この「プロンプトを入れ替えては生成」という作業が結構面倒です。
でも、stable diffusion には、このような用途のために用意された機能が2種類用意されており、1つは「Dynamic Prompts」、もう1つは「Prompts from file textbox」です。
どちらも分かってしまえば簡単に使えますので、まだ使っていない方は、是非参考にして下さい。
Dynamic Promptsでプロンプトをランダム実行する
Dynamic Prompts は、指定したプロンプトワードの中から、ランダムに選択して画像生成するものです。例えば、 街、海、学校 という3つの場所から1つ、晴れ、雨、曇り、雪という4つの天気から2つを選んで画像生成することが出来ます。
Dynamic Promptsのインストール方法
Dynamic Prompts は、stable diffusion の拡張機能なので、インストールが必要です。但し他の拡張機能とは違い、stable diffusion Web UI から簡単にインストールできます。
「①Extensions」⇒「②Available」⇒「③Load from:ボタンをクリック」の手順で進めると画面下部に拡張機能の一覧が表示されます。
Serchの入力欄に下記のキーワードを入力すると Dynamic Prompts が表示されるので、「⑤インストールボタンをクリック」を行うだけです。
1 |
dynamic Prompts |
インストールが完了したら、「⑥Installedを選択」⇒「⑦Apply and restart UIボタンをクリック」を行ってください。
stable diffusion web ui 再起動したら、txt2imtタブにDynamic Promptsが表示されます。表示されない場合は、stable diffusionごと再起動してもらえれば表示されます。
Dynamic Promptsの使い方
Dynamic Prompts の部分をクリックすると設定画面が開きます。いくつか設定項目がありますが、3つだけ覚えておけば大丈夫です。
画面の説明
- 使うときは Dynamic Prompts enabled にチェックを入れる
- Combinatorial genaration にチェックを入れると、プロンプロ群の全ての組み合わせで生成する
- Max genaration を0以上にすると、生成枚数の上限が設定できる(0は制限無し状態)
尚、Dynamic Prompts enabledは前回のチェック状態を覚えているので、1度チェックしてしまえば、あとは気にしなくても大丈夫です。発動させるかはプロンプトの入力の仕方で決まるため、常時チェックさせておけば良いかと思います。
プロンプトの入力の仕方
Dynamic Promptsを使う場合も、今まで通りプロンプト欄に入力すれば良いのですが、その際に以下のルールで入力することで機能が発動されます。
①重みづけ無のランダム選択です。
ランダム選択したい候補を縦棒 '|' で区切って入力します。
例えば、海、山、森、街の4か所からランダムで場所を選択する場合は次のようになります。
1 |
1girl,Best quality,8k, raw photo,in the {sea| mountains|forests|towns} |
②重み付け有りのランダム選択
重み付けすることにより、選択するプロンプトの比率を変えることが出来ます。合計の数値は必ずしも1にする必要はありません。一部だけ重みを指定することも可能ですが、逆に指定しないプロンプトの方が多く生成されます。
1 |
1girl,Best quality,8k, raw photo,in the {0.5::sea|0.1::mountains|0.1::forests|0.1::towns} |
③ランダムに複数個選択
複数個の候補から指定した個数を選択するという状況があまり思い浮かびませんが、海、車、街、リンゴ、犬の5つの中から2つ選ぶように記述すると、次の様になりました。
1 |
1girl,Best quality,8k, raw photo, {2$$sea|car|city|apple|dog} |
Prompts from file or textboxでプロンプトを順番に実行する
Prompts from file or textbox は stable diffusion web ui に最初から備わっている機能で、異なるプロンプトをまとめて指定することで、そのプロンプトを順番に参照しながら画像生成してくれます。
Prompts from file or textbox の設定方法
stable diffusion web ui の左下にある Script ドロップダウンをクリックし、「Prompts from file or textbox」を選択します。
すると下記の設定画面が開くので、List of prompt inputs 欄に直接入力するか、あらかじめプロンプトを記述したテキストファイルを用意しておき、それをドラッグ&ドロップします。
後は通常通り「Generate」ボタンをクリックして、画像を生成させます。
尚、本来のプロンプト入力欄の内容は、この時無視されるようになっていますので、Prompts from file or textboxを止めて通常に戻りたい場合は、ScriptドロップダウンからNoneを選択して下さい。
Prompts from file or textboxへのプロンプトの指定方法
行毎に異なるプロンプトだと解釈されるので、1つのプロンプトが2行にまたがらないように記述します。
1 2 3 |
1girl,Best quality,4K,in the city 1dog,Best quality,4K,in the park many bird,Best quality,4K,in the sea |
今回のプロンプトで生成された画像は次の通りです。尚、通常の txt2img とは異なり、Batch Size を2以上指定しても、サムネイルは生成されません。
Prompts from file or textboxで生成される画像の順番
Batch count や Batch size を指定すると、何枚もの画像が生成されますが、あくまでもプロンプトの上から順に完結していきます。
どういう事がというと、例えば batch count に4,Batch size に1を指定した場合、最初のプロンプトで4枚生成した後で、次のプロンプトが処理されていきます。
つまり、batch countに100、Batch size に8のような大きな値を指定すると、最後にのプロンプトで生成された画像のお目にかかるまで、相当の時間が掛かることになります。
ちなみに、Genarateボタンを右クリックすると、永遠に画像を生成させ続けることが出来ますが、この機能も無効になっています。
まとめ
今回はプロンプトを切り替えながら大量の画像を生成する方法として、Dynamic PromptsとPrompts from file textboxについて紹介しました。
Dynamic Promptsは、指定したプロンプトワードの中からランダムに選択して画像生成する機能で、Prompts from file textboxは1行毎に個別のプロンプトを記述し、まとめて画像生成する機能です。
両方ミックスして使うことは出来ませんが、大量のガチャを回すときに非常に便利ですので、是非ご活用下さい。
コメント