【Stable Diffusion Web UI】表情のランダム生成(Dynamic Prompts)
この記事では、Stable Diffusion Web UIの拡張機能であるDynamic Promptsを使って、ランダムにプロンプトを選択する方法を紹介します。
目次[非表示]
- 1.Stable Diffusionとは
- 2.Stable Diffusion Web UI(AUTOMATIC1111)とは
- 3.Dynamic Promptsとは
- 4.Dynamic Promptsのインストール方法
- 5.Dynamic Promptsの使い方
- 5.1.ランダムにプロンプトを選択する{A | B | C}
- 5.2.重みをつけてランダムに選択する構文{0.1::A | 0.2::B | 0.3::C}
- 5.3.ランダムに複数選択する構文{2$$ A | B | C}
- 5.4.プロンプトの順番どおりに選択する方法(Combinatorial generation)
- 5.4.1.Combinatorial generation
- 5.4.2.Max generations
- 5.4.3.Combinatorial batches
- 6.もっと自由な画像生成を
- 7.まとめ
Stable Diffusionとは
Stable Diffusionは、無料で使える画像生成AIです。テキストを打ち込むと、それに応じた画像が生成されるしくみです。人物や動物、風景など、さまざまな画像を生成できます。
例えば、「サングラスをかけた猫」と入力するとそのような画像が生成されます。生成する画像のスタイルも多様でイラストや写真、水彩画やアニメ調など、自分の好きなテーマでAIに生成してもらうことができます。
Stable Diffusion Web UI(AUTOMATIC1111)とは
Stable Diffusion Web UI(AUTOMATIC1111)ブラウザを通じて手軽に画像生成を行える無料のWEBアプリケーションで、Google Chromeなどの主要なブラウザで利用できます。
プログラミングを一切必要とせず、WEB UIによる簡単なグラフィカルな操作が可能です。Stable Diffusion Web UIをローカルPCにインストールして使用する、もしくはクラウドサーバーにインストールして使用します。
Stable Diffusion Web UI(AUTOMATIC1111)に関する全般的な使い方については、以下の記事でまとめていますので、あわせてご覧ください。
Dynamic Promptsとは
「Dynamic Prompts」はStable Diffusion WebUIの拡張機能の1つで、プロンプトをランダムに選択できる機能です。
このDynamic Promptsを使えば、予め指定したプロンプトをランダムに組み合わせて画像を生成することができます。
Dynamic Promptsのインストール方法
- [Extensions]タブを開きます。
- [Install from URL]タブを開きます。
- [URL for extension's git repository]に以下のURLを入力します。
https://github.com/adieyal/sd-dynamic-prompts.git - [Install]ボタンを押します。
- [Installed]タブを開きます。
- [sd-dynamic-prompts]が表示されていることを確認します。
- [Apply and restart UI]ボタンをクリックして、WebUIに変更を反映させます。
Dynamic Promptsの使い方
ランダムにプロンプトを選択する{A | B | C}
txt2imgのタブを開きます。
- [Dynamic Prompts]の[◀]ボタンを押して開きます。
- [Dynamic Prompts enabled]にチェックを入れます。
- [Batch count]に生成したい画像の枚数を指定します。
- [Prompt]に{smile |angry |wince }を追加します。
- [Gererate]ボタンをクリックして、画像を生成します。
Promptに追加した{smile |angry |wince }の中から1つのプロンプトがランダムに選択され、生成画像に反映されます。
この記事では、smile(笑み)、angry(怒り)、wince(しかめ面)のプロンプトを使用しましたが、他の表現でもOKです。
重みをつけてランダムに選択する構文{0.1::A | 0.2::B | 0.3::C}
ランダムに選択される確率の重みをつける構文は以下のとおりです。
{0.1:: smile | 0.2:: angry | 0.3:: wince}
この場合、wince、angry、smileの割合でプロンプトが選択される確率が高くなります。
ランダムに複数選択する構文{2$$ A | B | C}
プロンプトの中からランダムに複数を選択する場合の構文は以下のとおりです。
{ N $$ A | B | C }
[N]には、プロンプトを複数選択する数を指定します。
[A]、[B]、[C]には任意のプロンプトが入ります。
smile、angry、winceから2つのプロンプトをランダムに選択する例は以下のとおりです。
{2$$ smile | angry | wince }
プロンプトの順番どおりに選択する方法(Combinatorial generation)
Combinatorial generation
[Dynamic Prompts]の[Combinatorial generation]にチェックを入れます。
プロンプトに{smile |angry |wince }と入力した場合、smile → angry → winceの順に選択して画像が生成されます。
このときBatch countは1のままにしておいて問題ありません。
Conbinatiorial generationを有効にした場合は、プロンプトの数分だけの画像が生成されます。
Max generations
[Max generations]では、最大の生成枚数を指定します。
例えば、[Max generations]を”2”に設定した場合、[smile]、[angry]の合計2枚まで画像が生成されます。
Combinatorial batches
[Combinatorial batches]では、入力したプロンプトを同じ枚数だけ画像生成できます。
例えば、[Combinatorial batches]を”2”に設定した場合、[smile]x2枚、[angry]x2枚、[wince]x2枚の枚数で画像が生成されます。
もっと自由な画像生成を
Stable Diffusion Web UIを実行する環境で、以下のような悩みをお持ちの方も多いかと思います。
・画像生成が遅い
・使いたいGPUが使えない
・GPUメモリ(VRAM)が足りない
・ランタイムがリセットされる度にデータが消えるため、設定のやり直しが大変
・画像データのバックアップが面倒
・Web UIの起動に時間がかかる
・コンピューティングユニットの制限がストレス
・動作が不安定
このようなお悩みをお持ちの方は、制限なく高速・格安に画像生成が可能なGPUクラウドサービス「GPUSOROBAN」がおすすめです。
まとめ
この記事では、Stable Diffusion Web UIの拡張機能であるDynamic Promptsを使って、ランダムにプロンプトを選択する方法を紹介しました。
Stable Diffusionに関する記事を以下のページでまとめていますので、あわせてご覧ください。