私がChatGPTなどに質問したことを書いていくブログ

Chat GPTヘビーユーザーの管理人が、日常に役立つことからどうでもいいことまで様々な質問をまとめたブログです。

Prompts from file or textbox で一括入力する際に、たとえばoutdoor というプロンプトを新たに追加したいと考えます。そしたらoutdoor プロンプトを一行ずつ追加していかなければならないのですか?

Prompts from file or textbox で一括入力する際に、たとえばoutdoor というプロンプトを新たに追加したいと考えます。そしたらoutdoor プロンプトを一行ずつ追加していかなければならないのですか?
 
ChatGPT:

とても良い質問です。
Stable Diffusion WebUI の 「Prompts from file or textbox」(=Dynamic Promptsなどの拡張機能)を使う場合、
outdoor」という単語を既存の全プロンプトに一括で追加したいとき、
一行ずつ手作業で追加する必要はありません。

いくつかの効率的な方法があります👇


🧩 方法①:テキストエディタの一括置換を使う

  1. prompts.txt などのプロンプトファイルをメモ帳ではなく VSCode・Notepad++ などで開く。

  2. 「行頭に outdoor, を追加する」ような正規表現置換を使う。

例(Notepad++の場合)

  • 検索:^(.*)

  • 置換:outdoor, \1

  • 正規表現」をオンにして「すべて置換」

👉 これで全行の先頭に outdoor, が追加されます。


🧩 方法②:Dynamic Prompts 機能で組み合わせる

もし拡張機能sd-dynamic-prompts なら、
ファイルを2つ用意して組み合わせることもできます。

例:

prompts.txt

 
beautiful landscape anime girl cyberpunk city

location.txt

 
(outdoor)

Dynamic Prompts では次のように書けます:

 
__location__ beautiful landscape __location__ anime girl __location__ cyberpunk city

あるいは:

 
__location__ {beautiful landscape|anime girl|cyberpunk city}

__location__ の部分を location.txt とリンクさせれば、
すべての組み合わせに「outdoor」が自動的に含まれます。


🧩 方法③:ワイルドカード構文で統合

wildcards フォルダを使って

 
outdoor

を含むカテゴリを作っておけば、

 
__scene__ beautiful girl

というように書くだけで、
scene.txtoutdoor を含めることもできます。


✅ 結論


もしあなたが「Dynamic Prompts」のどの拡張機能を使っているか(例:sd-dynamic-prompts or dynamic-prompting)を教えてもらえれば、
その機能に合わせた最適な構文を例付きで書けます。
どちらをお使いですか?

 
あなた:
Prompts from file or textbox を使って10枚ずつ出力していくにはどうしたらいいですか?
 
ChatGPT:

いい質問です。
Prompts from file or textbox」でプロンプトを大量に用意した場合、
Stable Diffusion WebUI はデフォルトで全ての行をまとめて処理しようとします。
しかし「10枚ずつ」など分割して出力したい場合は、ちょっと工夫が必要です👇


✅ 方法①:Batch countBatch size を使う(最も簡単)

設定手順

  1. WebUI(txt2img タブ)で
    Script → 「Prompts from file or textbox」を選ぶ

  2. 下に「Prompts from file or textbox」という入力欄が出るので、
    複数行のプロンプトを入れる or ファイルを指定

  3. 右側の設定で以下を指定:

    • Batch size:同時生成枚数(例:10)

    • Batch count:繰り返しの回数(例:3)

こうすると:

 
10枚 × 3回 = 合計30枚

という形で生成できます。

ただし、この方法では1回目にプロンプト1〜10行目、2回目に11〜20行目…というわけではなく、
指定したすべての行が繰り返し出力される点に注意です。


✅ 方法②:プロンプトを10行ずつに分割して別ファイルにする

大量のプロンプトを「10枚ずつ」順番に出したい場合は、
ファイルを分割して使うのが確実です。

手順(Windows 例)

  1. prompts.txt を作成(100行など)

  2. 下記のような PowerShell コマンドで10行ずつに分割:

     
    Get-Content prompts.txt | ForEach -Begin {$i=0} -Process { $i++ $file = "prompts_$([math]::Ceiling($i/10)).txt" Add-Content $file $_ }

    prompts_1.txt, prompts_2.txt, ... ができます。

  3. それぞれを「Prompts from file」に指定して実行。
    これで10枚ずつ生成可能です。


✅ 方法③:Dynamic Prompts のオプションを利用(sd-dynamic-promptsを使っている場合)

もし「sd-dynamic-prompts」拡張を入れているなら、
Prompt SchedulesCombinatorial generation を使ってランダムまたは順番に生成できます。

例:

  • 「Generate all combinations」チェックをオフ → ランダム生成(1回で複数組み合わせ)

  • 「Batch size: 10」+「Batch count: 1」→ 10枚ずつ生成

  • 次にもう一度「Generate」ボタンを押せば次の10枚

この方法なら、同じファイルから10枚ずつ進めていけます。


✅ 方法④:外部スクリプトで制御(上級者向け)

Python などで WebUI の API を叩き、
10行ずつ読み込んで自動生成することも可能です。
これは大量生成を自動化したい場合に便利です。


💡まとめ

目的 おすすめ方法
単に10枚ずつ同じ設定で出力 方法①(Batch size)
順番に10行ずつ消化していきたい 方法②(ファイル分割)
Dynamic Prompts拡張ありで自動生成 方法③
完全自動バッチ処理を組みたい 方法④