ワイルドカード(変数)によるプロンプトの自動作成

ワイルドカード(変数)によるプロンプトの自動作成 機械学習

「プロンプトの作成をある程度自動化したい」
「自分では思いつかないようなプロンプトで画像を生成してみたい」

このような場合には、この記事の内容が参考になります。
この記事では、ワイルドカードによるプロンプトの自動作成について解説しています。

本記事の内容

  • プロンプトの自動作成とは?
  • プロンプトの自動作成に必要なモノ
  • プロンプトの自動作成による画像生成

それでは、上記に沿って解説していきます。

プロンプトの自動作成とは?

プロンプトの自動作成とは、ワイルドカードを利用してプロンプトを作成する方法です。
ここで言うワイルドカードは、プログラムにおける変数と捉えればよいでしょう。

以下は、ワイルドカードを用いたプロンプトになります。

a __adj-beauty__ woman wearing a __dress__ in __location__

ここでは、次の3つがワイルドカード(変数)として用いられています。

  • __adj-beauty__
  • __dress__
  • __location__

この変数部分に対して、動的に値が設定されることになります。
その結果、以下のようなプロンプトが自動的に作成されます。

a cute woman wearing a latex dress in street
a gorgeous woman wearing a cascade dress in bus stop
a lovely woman wearing a dirndl in arcade
a flashy woman wearing a skater dress in greenhouse

これらのプロンプトで生成した画像は、以下のようになります。

これで、ワイルドカードに値が設定されるということが理解できたと思います。
では、その設定される値はどこにどのように記載するのでしょうか?

上記に挙げた例であれば、「__adj-beauty__」に設定される値は以下となっています。

  • cute
  • gorgeous
  • lovely
  • flashy

これらは、「adj-beauty.txt」というファイルに記載されています。

同様に、「dress.txt」や「location.txt」も存在しています。
このファイルを保存する場所については、後ほど説明します。

以上、プロンプトの自動作成について説明しました。
次は、プロンプトの自動作成に必要なモノを説明します。

プロンプトの自動作成に必要なモノ

プロンプトの自動作成には、以下が必要となります。

  • Stable Diffusion web UI(AUTOMATIC1111版)
  • sd-dynamic-prompts(web UI拡張機能)
  • ワイルドカード用ファイル

それぞれを以下で説明します。

Stable Diffusion web UI(AUTOMATIC1111版)

Stable Diffusion の(AUTOMATIC1111版)のインストールは、次の記事で説明しています。

上記記事のインストール方法なら、気軽にインストールが可能です。
複数バージョンのインストールも問題ありません。

複数のweb UIがあれば、拡張機能の検証なども簡単にできます。

sd-dynamic-prompts(web UI拡張機能)

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 - adieyal/sd-dynamic-prompts

sd-dynamic-promptsは、ワイルドカード「●●」が機能するために必要です。
他にも使い方はありますが、ここではワイルドカードのために必要だけ覚えてください。

インストール方法は、他の拡張機能と同じです。

 https://github.com/adieyal/sd-dynamic-prompts.git

上記URLを入力して、インストールを行います。

ワイルドカード用ファイル

「extensions」ディレクトリ以下を確認します。

sd-dynamic-promptsがインストール済みなら、「sd-dynamic-prompts」ディレクトリが確認可能です。
さらに、「sd-dynamic-prompts」ディレクトリの下に「wildcards」ディレクトリがあります。

ここにワイルドカード用ファイルを保存します。
ワイルドカード用ファイルとは、以下のファイルのことです。

  • adj-beauty.txt
  • dress.txt
  • location.txt

これらのファイルは、自分で用意することが可能です。


しかし、すでに公開されているファイルがあります。
(Civitai上では、何個もワイルドカード用のファイルが公開されています)

200+ Wildcards (NSFW and SFW) - SD-Wildcards | Stable Diffusion Wildcards | Civitai
A collection of over 200 wildcards, with some of them generated with the help of ChatGPT . Includes both NSFW and SFW wildcards. Requires the Dynam...

上記ページから、ファイル一式をダウンロードできます。

上記ボタンをクリックすると、zipファイルをダウンロードします。
zipを解凍すると、200個以上のファイルが含まれています。

「extensions\sd-dynamic-prompts\wildcards」以下にこれらを移動します。

以上、プロンプトの自動作成に必要なモノを説明しました。
次は、プロンプトの自動作成による画像生成を説明します。

プロンプトの自動作成による画像生成

web UIを起動して、txt2img(img2imgでも可)を開きましょう。
画面の下の方(Scriptのすぐ上)に、次の項目を確認できます。

デフォルトでは、「Dynamic Prompts enabled」にチェックが入っています。

チェックが入っている場合に、ワイルドカードが有効となります。
ここまで確認できたら、以下をプロンプトに入力します。

a __adj-beauty__ woman wearing a __dress__ in __location__

それ以外は、モデルを含めて適当に設定します。
なお、生成された画像のプロンプトはその場で確認可能です。

もしくは、「PNG Info」で確認できます。

「PNG Info」については、次の記事で解説しています。

以上、プロンプトの自動作成による画像生成を説明しました。

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