ChatGPT SDXL プロンプトジェネレーター vs 独自のAPIスクリプト
ChatGPT SDXL プロンプトジェネレーターのワークフローとは、チャットウィンドウを開き、アイデアを入力し、回答をコピーして画像ツールに貼り付け、これを繰り返すことです。10件のプロンプトなら問題ありませんが、1,000件では苦痛です。この記事では、そのルーチンとAPIを呼び出す短いスクリプトを比較し、両方の数値を示します。


主要ポイント
- チャットはスタイルを探求するのに最適ですが、スクリプトは量や再現性が必要な場合に最適です。
- 手動でプロンプトごとに30秒かかると、1,000件のプロンプトには約8.3時間かかりますが、スクリプトなら数分で完了します。
- このAPIでは、入力約300トークン、出力200トークンの1,000件のプロンプトで約$0.145かかります。
- スクリプトは、チャットウィンドウにはない、固定フォーマット、保存された入力、リトライを提供します。
言語モデルからSDXLプロンプトを取得する2つの方法
1つ目の方法はチャットアシスタントです。システム形式の指示を1回貼り付け、その後短いアイデアを1つずつ送信し、各返信を画像ツールにコピーします。コードは不要で、回答が即座に表示され、「より暗く、よりシネマティックに」と言って修正を得ることができます。発見にはこれを超えるものはありません。
2つ目の方法はスクリプトです。コードに指示を1回書き、ファイルからアイデアのリストを読み込み、各アイデアに対してチャット補完エンドポイントを呼び出し、結果をファイルに書き出すか画像ジェネレーターに直接送信します。このサービスは、独立したプロバイダーが提供する1つのオープンウェイトモデルを提供するOpenAI互換のテキスト専用APIです。ChatGPTでもOpenAI製品でもありませんが、ベースURLとキーを変更すれば、どのOpenAI SDKでもこれに接続できます。
どちらのアプローチも絵を描くわけではありません。両方ともモデルがテキストを生成し、別個のツール(SDXLなど)がそれをレンダリングします。
並べて比較
| 要素 | チャットウィンドウ | APIスクリプト |
|---|---|---|
| セットアップ | なし | キー、Pythonで30行 |
| 最適なバッチサイズ | 1〜20件のプロンプト | 数百〜数千件 |
| 出力フォーマット | チャットが返すもの。手動でクリーンアップが必要 | JSONモードは解析可能なフィールドを返します |
| 再現性 | 会話が進むにつれてドリフトする | すべての呼び出しで同じ指示、オプションのシード |
| 反復処理 | 自然:フィードバック付きで返信 | スクリプトを編集して再実行 |
| コストモデル | 保有しているプランによります。現在の利用規約をご確認ください。 | トークンごとの課金、前払い |
| 拒否 | アシスタントのコンテンツポリシーに依存 | このモデルは、法的な成人利用に対してコンテンツ拒否なしで応答します |
正直なまとめ:週に数枚の画像を作成し、それについて会話を楽しむなら、チャットを使い続けてください。コピー&ペーストがパイプラインで最も遅いステップになる時点で、スクリプトが効果を発揮し始めます。
コピー&ペーストの時間コスト
控えめな仮定をしましょう:1件あたりのプロンプトに30秒(アイデアを入力し、待ち、結果をコピーして貼り付ける)。1,000件のプロンプトでは、1,000 × 30秒 = 30,000秒、つまり約8.3時間の集中が必要です。
スクリプトは異なる構造を持っています。API呼び出しごとに約5秒かかると仮定します(これは仮定なので、ご自身の環境で測定してください)。フルキーの同時実行数制限である8リクエストの場合、1,000回の呼び出しには約1,000 / 8 × 5秒 = 625秒、つまり10分強かかります。1分あたり300リクエストという制限では、理論上の最短でも3分強かかります。開始してコーヒーを淹れ、後でファイルを確認しましょう。
節約された時間が主な論拠です。お金は2番目で、次のセクションで示します。
1,000件のプロンプトあたりのコスト
このAPIは、入力トークン1Mあたり$0.15、出力トークン1Mあたり$0.50を請求します。各呼び出しが250トークンの指示と50トークンのアイデア(合計300入力)を送信し、200トークンのプロンプトを返すと仮定します。
- 入力:1,000 × 300 = 300,000トークン × $0.15 / 1M = $0.045。
- 出力:1,000 × 200 = 200,000トークン × $0.50 / 1M = $0.10。
- 合計:1,000件のプロンプトで$0.145
チャットサブスクリプションや他の API と比較するには、そのプランの料金を実際に月間で行うプロンプト数で割り、記事の数字を信じるのではなく現在の料金を確認してください。サインアップ後に API キーページ でワンクリックで申請できる $0.50 のトライアルクレジットは、このサイズの 3,400 件を超えるプロンプトをカバーします。$20〜$500 のチャージは、暗号資産でご利用いただけます。詳細は 料金ページ をご覧ください。
リトライ付きバッチスクリプト
以下のスクリプトはideas.txtからアイデアを読み込み(1行に1つ)、prompts.jsonlに書き込みます。6つのワーカーを並列で実行し、429エラー時にリトライします。
import json, time
from concurrent.futures import ThreadPoolExecutor
from openai import OpenAI, RateLimitError
client = OpenAI(base_url="https://api.sdxlapi.com/v1", api_key="YOUR_KEY", max_retries=0)
SYSTEM = (
"Expand the idea into one SDXL prompt of 40 to 60 words: subject, setting, "
"lighting, style, mood, comma-separated. Return JSON with key 'prompt'."
)
def make(idea):
for attempt in range(5):
try:
r = client.chat.completions.create(
model="uncensored",
messages=[{"role": "system", "content": SYSTEM},
{"role": "user", "content": idea}],
response_format={"type": "json_object"},
temperature=0.8,
)
return {"idea": idea, **json.loads(r.choices[0].message.content)}
except RateLimitError:
time.sleep(5 * (attempt + 1))
return {"idea": idea, "prompt": None}
ideas = [l.strip() for l in open("ideas.txt") if l.strip()]
with ThreadPoolExecutor(max_workers=6) as pool, open("prompts.jsonl", "w") as out:
for row in pool.map(make, ideas):
out.write(json.dumps(row, ensure_ascii=False) + "\n")
フルキーではワーカー数を8以下、トライアルキーでは2以下に保ってください。コードconcurrencyで429エラーが表示された場合は減らしてください。rate_limitedは1分あたりの制限を超えたことを意味します。失敗したリクエストは課金されないので、リトライは無料です。パラメータの詳細はドキュメントをご覧ください。
スクリプトからより良い出力を得る
バッチの最初の試行が最良になることはめったにありません。結果を改善する簡単な変更が3つあります。
- システムプロンプトに2〜3の例を追加します。気に入った画像を生成したプロンプトと、それを生成した短いアイデアを貼り付けます。モデルは構造と詳細レベルをコピーします。
- スタイルフィールドを渡します。「フィルムスタック」「水彩画」「アイソメトリックレンダリング」などの小さな辞書を保持し、各アイデアに選択したスタイルを追加します。アイデアのリスト1つから、複数の外観を生成できます。
- 出力をフィルタリングします。 プロンプトが 25 語未満または 80 語を超える行を除外し、それらだけを再生成します。コードでの簡単なチェックは、1,000 行を読み込むよりも優れています。
各結果の横にアイデアを保存します。1つの画像がうまくいった場合、それが何を生み出したのかを正確に確認したいでしょう。チャットの履歴はスクロールして消えてしまいます。主題はあなたの判断に委ねられます:このモデルは法的な成人利用向けにチューニングされており、唯一の制限は未成年者を含む性的なコンテンツが生成されないことです。
いつチャットを使い続けるべきか
スクリプトが常に最善の選択とは限りません。まだ何を求めているかが不明な場合、各画像の構成について会話が必要な場合、またはボリュームが小さく設定時間が節約される時間を超える場合は、チャットアシスタントを使い続けてください。一般的なパターンとしては、チャットで良い指示を見つけてから、その指示をスクリプトのシステムプロンプトとして貼り付け、バッチ処理をそこで行うという方法があります。
データについても考慮してください。このAPIに送信されるプロンプトは、トレーニングには使用されません。その他のサービスについては、未発表のクリエイティブな作品を送信する前に、それぞれのデータポリシーをお読みください。
その他のガイド
質問と回答
このAPIはChatGPTと同じですか?
いいえ。これは独立したプロバイダーが提供する1つのオープンウェイトモデルを提供するOpenAI互換のエンドポイントです。OpenAI製品ではありません。
APIはSDXL画像も生成できますか?
いいえ。テキストのみを生成します。プロンプトはSDXL、ComfyUI、Automatic1111、または他の画像ツールに送信されます。
1,000件のプロンプトを生成するにはどのくらい費用がかかりますか?
入力約300トークン、出力200トークンのプロンプトの場合、入力が1Mトークンあたり$0.15、出力が1Mトークンあたり$0.50のため、約$0.145です。
バッチ処理はどのくらい高速に実行できますか?
フルキーは8つの同時リクエストと1分あたり300リクエストを許可するため、1,000個の短いプロンプトは数分で完了します。トライアルキーは2と60を許可します。
キーはフォーム 1 つで手に入ります
アカウントを作成し、キーをコピーし、ベースURLを変更します。これでセットアップは完了です。