Stable Diffusionの拡張機能『Dynamic prompts』でワイルドカードを使う方法!

Stable Diffusion

ワイルドカードと聞いて思い出すのは、やっぱり野球のメジャーリーグですか?

画像生成AIを使っている者にとってワイルドカードとは

Stable Diffusion のとっても便利な拡張機能の事なんです。

本記事ではStable Diffusion の『ワイルドカード』について解説していきます。

スポンサーリンク

Stable Diffusionの『ワイルドカード』とは?

Stable Diffusion web ui の拡張機能「dynamic-prompts」の機能の一つで、テキストファイルの中からランダムにプロンプトを拾って画像を生成できます。

ある程度決まったパーターンの画像をバージョン違いで生成する必要がある時や、服装だけ、髪型だけ、背景だけなどランダムに変えたい時にとても有用です。

詳細はこちらのURLからご確認ください。

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 generation - GitHub - adieyal/sd-dynamic-prompt...
Stable Diffusionの画像生成を最速で学びたいあなたへ!
  • Stable Diffusionの基礎を2時間でマスター!
  • 高スペックPCがない方向けに徹底解説。
  • ControlNetなど、必須級の拡張機能も網羅。
  • 今話題のSDXL、AI動画生成も。
  • 特典として、大人気「おすすめ拡張機能・モデル解説」「プロンプト大全」つき!
\このボタン限定!70%オフキャンペーン実施中!/
70%オフキャンペーン実施中!/

『ワイルドカード』の使い方

それでは、具体的に『ワイルドカード』の使い方をみていきましょう!

①Stable Diffusion Web UIを立ち上げる

Stable Diffusion Web UI を立ち上げてください。

もしも、まだ使用環境が整っていない方がいたら、この記事を参考にして環境を構築してください。

②拡張機能「dynamic-prompts」を導入する

拡張機能「dynamic-prompts」の導入は以下の手順となります。

  1. Stable Diffusion の Extensions のタグを選択
  2. Install from URL を選択
  3. URL for extension’s git repositoryに以下のURLを貼り付け https://github.com/adieyal/sd-dynamic-prompts.git
  4. Installをクリック

「dynamic-prompts」のダウンロードはこれで終了です。

1度リロードをしてください。

③『ワイルドカード』用のファイルを導入する

『ワイルドカード』を使用するには事前にテキストファイルの準備が必要です。dynamic-promptsから呼び出せるワイルドカードもありますが、あまり実用性はありません。実用的なものはCIVITAIに作成済みのテキストファイルがいくつか無料配布されていますので、それを使う方法もあります。以下はCIVITAIからダウウンロード可能なワイルドカードの一部です。

代表的なワイルドカード

ダウンローとしたテキストファイルは「stable-diffusion-webui」>「extensions」>「sd-dynamic-prompts」>「wildcards」フォルダの中に入れてください。

④『ワイルドカード』を使う・作る

試しにdynamic-promptsのデフォルトで呼び出せるワイルドカードを使ってみましょう。

上部タグからWildcards Manager を選択します。

Collection Actions を開き、今回はartistsを選択し Copy Collection を押します。

これでartistsのファイルが呼び出しできました。

このartistsを開いていくとartists/Japanese Art/ukiyoeのワイルドカードがあるのでこれを使って画像を生成していきます。

ワイルドカードを使うためには、専用の構文を使う必要があります。

__ワイルドカード名__

左右のアンダーバーはそれぞれ2本連続で記述してください。

ではtxt2imgで画像を生成します。プロンプトは

__artists/Japanese Art/ukiyoe__

Batch sizeは6にしました。

次にdynamic-promptsのパラメーターを設定します。

Dynamic Prompts enabled – 有効・無効のスイッチです。有効にします。

以上の条件で画像を生成すると、

それぞれの画像はワイルドカードartists/Japanese Art/ukiyoe内にあったものから選択されます。生成された画像のプロンプトはそれぞれ

Miyagawa Chōki, Tsukioka Yoshitoshi, Katsushika Ōi, Toyohara Kunichika, Torii Kiyohiro, Tsukioka Yoshitoshi

となります。(モデルが学習できいないものは表現できないようです。)

また、ワイルドカードは自分で作成した物を使うことができます。その場合は通常のテキストファイルで作成しても良いですし、Wildcards Manager のタグから既存のワイルドカードを編集して使うこともできます。

romptn Q&Aで画像生成の悩みを解決しよう!
  • Stable Diffusionのエラーが解決しない
  • 画像生成がうまくできない
  • おすすめのモデルが知りたい
など、AIに関するお悩みがあれば投稿してみてください。
詳しい人が解決してくれるかもしれません。

テキストファイルを使わないで『ワイルドカード』を使用する場合

dynamic-prompts はワイルドカードを使わないで、プロンプトの中からランダムで選択できるdynamic-prompts 専用の構文があります。

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

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

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

Dynamic Prompts enabled を有効化し、プロンプトに

{ cat | dog | bird }

このように書くと

cat , dog , bird から一つが選択された画像が生成されます。

①複数を選択する

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

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

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

a girl { 2$$ glasses | earrings | hair ribbon}

この場合は、メガネ、イヤリング、リボンの中から2つ選択された画像が生成されます。

②「and」で結合する

My favourite ice-cream flavours are {2$$ and $$chocolate|vanilla|strawberry}

このように書くと、2$$ と $$ の部分にそれぞれ1語が選択され

  • My favourite ice-cream flavours are chocolate and vanilla
  • My favourite ice-cream flavours are chocolate and strawberry
  • My favourite ice-cream flavours are vanilla and chocolate

のようにandで結合されたプロンプトで画像を生成することができます。

③選択する数をランダムにする

以下の構文で選択数をランダムにすることができます。

My favourite ice-cream flavours are {1-2$$ and $$chocolate|vanilla|strawberry}

このようにプロンプトを描いた場合

  • My favourite ice-cream flavours are chocolate
  • My favourite ice-cream flavours are strawberry
  • My favourite ice-cream flavours are vanilla
  • My favourite ice-cream flavours are chocolate and vanilla
  • My favourite ice-cream flavours are chocolate and strawberry
  • My favourite ice-cream flavours are vanilla and chocolate

このように1語もしくは2語を選択したプロンプトで画像が生成されます。

④重みを付ける

選択されるプロンプトの割合を変更することもできます。

{0.5::summer|0.1::autumn|0.3::winter|0.1::spring}

このように書くと、夏:5 秋:1 冬:3 春:1 の割合で選択されます。

dynamic-prompts については独自の構文がまだまだ沢山あります。詳しく知りたい方は下記のURLで学習してください。

https://github.com/adieyal/sd-dynamic-prompts/blob/main/docs/SYNTAX.md

「Wildcards Manager」を使う方法

Wildcards Managerを使うと、ワイルドカードの中から必要なものを探したり、ワイルドカードを編集することができます。

上部ダグからWildcards Managerを選択し、ヘアスタイルを変更できるワイルドカードを探してみましょう。

Search in wildcard namesに “hair” と入力します。

そうすると、髪型に関するワイルドカードの一覧が選ばれます。その中から一つを選びましょう。右側にワイルドカード内のプロンプトが表示されるので、確認しながら今回はdevilkkw/body-1/hair_styles_shorを選びました。

さらに中身も編集してしまいましょう。

File editorをそのまま書き換えて、下にあるSave wildcardsを押します。

これで画像を生成すると・・・

中からランダムに髪型を選んで画像を生成してくれます。

服装のワイルドカードや表情のワイルドカードを作ってしまえば、かなり便利に使えそうですよね。

まとめ

いかがでしたでしょうか?

Stable Diffusionの拡張機能『Dynamic prompts』でワイルドカードを使う方法!について解説してきました。

今回のポイントをまとめると、以下のようになります。

  • Dynamic promptsはプロンプトをランダムにできるツールです。
  • ワイルドカードを使うと、髪型だけ、服装だけ、表情だけを変えることも可能です。

Dynamic promptsはかなり多機能な拡張機能です。

うまく使いこなせば、きっとあなたの制作を助けてくれると思います。

ぜひ活用してみてください。

romptn Q&Aで画像生成の悩みを解決しよう!
  • Stable Diffusionのエラーが解決しない
  • 画像生成がうまくできない
  • おすすめのモデルが知りたい
など、AIに関するお悩みがあれば投稿してみてください。
詳しい人が解決してくれるかもしれません。