コード、エージェント、バッチスクリプトから画像を生成したい。しかもリクエストを送る前に費用を知っておきたい。Lovely Router の AI 画像生成 API は、GPT Image 2 と GPT Image 2.5 向けに OpenAI Images API の生成と編集を提供しています。画像は、サイズや品質にかかわらず 1 枚 $0.04 で、モデルの呼び出しと同じプリペイド残高から支払われます。
AI エージェントに任せる
このプロンプトを Claude Code、Cursor、Codex などのコーディングエージェントに貼り付けてください。ドキュメントの場所と API キーの使い方をエージェントに伝えます。
Integrate models from Lovely Router into this project through the OpenAI Images API. - Docs (read first): https://lovelyrouter.com/docs/models/images.md - Use the official OpenAI SDK with base URL https://lovelyrouter.com/v1: POST /v1/images/generations and /v1/images/edits. For long or batch work, queue jobs with POST https://lovelyrouter.com/v1/images/jobs and fetch them when done. - One flat price per image; the price list is in the docs and GET https://lovelyrouter.com/v1/models. - GET https://lovelyrouter.com/v1/models lists every model id with its price; pick one there, do not guess ids. - Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys. - Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large. - Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt. My task: <describe what you want to build or get>
仕組み
キーを作成する
OpenAI SDK の接続先を Lovely Router にする
ベース URL を
https://lovelyrouter.com/v1に設定します。リクエストは OpenAI の定義どおりに渡されるため、公式 SDK はそのまま動きます。画像を生成する
POST /v1/images/generationsは画像ができるまで接続を保持し、b64_jsonに base64 で返します。Shellcurl https://lovelyrouter.com/v1/images/generations \ -H "Authorization: Bearer $LOVELY_API_KEY" \ -H "content-type: application/json" \ -d '{ "model": "gpt-image-2", "prompt": "A watercolor painting of a red fox in a snowy birch forest at dawn", "size": "1024x1024", "quality": "medium" }' | jq -r '.data[0].b64_json' | base64 --decode > fox.png
画像 1 枚の生成には通常 40 秒から 2 分かかり、これにキューでの待ち時間が加わります。ゲートウェイは 9 分以内に応答するため、HTTP クライアントのタイムアウトは 10 分以上にしてください。response_format: "url" は無視され、画像は常に base64 で返されます。
モデルとサイズ
| モデル | 料金 | 対応機能 | 最大サイズ |
|---|---|---|---|
gpt-image-2 | 1 枚 $0.04 | 生成と編集 | 3840×2160 |
gpt-image-2.5-flare | 1 枚 $0.04 | 生成と編集 | 3840×2160 |
gpt-image-2.5-sunburst | 1 枚 $0.04 | 生成と編集 | 3840×2160 |
size:1024x1024、1536x1024、1024x1536、2048x2048、3840x2160、または任意の WIDTHxHEIGHT を指定できます。任意のサイズは、両辺が 16 の倍数で、長辺が 3840 ピクセル以下かつ短辺の 3 倍以下である必要があります。auto を指定するとモデルがサイズを選びます。
quality:low、medium、high、auto のいずれか。料金はどれも同じで、GPT Image 2.5 のモデルでは効果がありません。
output_format:png(既定)、jpeg、webp のいずれか。後の 2 つでは output_compression も指定できます。background: "transparent" は png と webp で使えます。
編集するとき、またはモデルに参考画像(商品、ロゴ、人物、スタイル)を渡すときは、最大 16 枚の画像と、必要に応じて mask を、いずれかのモデルを指定して POST /v1/images/edits に送ります。multipart/form-data のファイルでも、JSON の URL でもかまいません。編集の料金は生成と同じです。
curl https://lovelyrouter.com/v1/images/edits \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-F model=gpt-image-2 \
-F image=@fox.png \
-F prompt="Make it night with a full moon" | jq -r '.data[0].b64_json' | base64 --decode > fox-night.png画像ジョブ:今すぐ送信して、あとで受け取る
画像リクエストはすべてキューに入り、空きができ次第生成が始まります。そのため、一度に大量のリクエストが来ても失敗せず、順番を待ちます。各アカウントで、キュー待ちまたは生成中の画像は同時に 20 枚までです。数分間も接続を開いたままにしたくない場合は、画像ジョブを使ってください。
# Submit: returns 202 with the job id and its queue_position
curl https://lovelyrouter.com/v1/images/jobs \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{"model": "gpt-image-2", "prompt": "A red fox in a snowy birch forest", "size": "1536x1024"}'
# Wait up to 60 seconds for it, then download the file
curl "https://lovelyrouter.com/v1/images/jobs/img_8c1f0e2a9b7d4f3e6a5c2b1d?wait=60" \
-H "Authorization: Bearer $LOVELY_API_KEY"
curl -o fox.png https://lovelyrouter.com/v1/images/jobs/img_8c1f0e2a9b7d4f3e6a5c2b1d/content \
-H "Authorization: Bearer $LOVELY_API_KEY"ジョブには生成と同じフィールドを指定します。入力画像を付けると、編集のジョブになります。完了したジョブの画像は 7 日間取得できます。最近のジョブの一覧を取得したり、キュー待ちのジョブをキャンセルしたりもできます。同期リクエストが 9 分経っても完了しない場合は、x-lovely-image-job ヘッダーにジョブ ID を付けて 504 が返されます。画像の生成は続くため、ジョブとして受け取れます。
プレイグラウンドと MCP から使う
コードを書かずにプロンプトや編集を試すには、プレイグラウンドを Images に切り替えます。プレイグラウンドは画像ジョブを使って動作します。
エージェントも画像を作れます。MCP サーバーには generate_image ツールがあり、GPT Image 2.5(使えない場合は GPT Image 2)を、同じ 1 枚あたりの料金で使います。参考画像も URL で渡せます。応答には、キーなしで 24 時間使えるダウンロードリンクと、ファイルを保存する curl コマンドが含まれます。まだ完成していない画像は get_image で待てます。Claude Code にサーバーを追加するには、次のようにします。
claude mcp add --transport http lovely-tools https://lovelyrouter.com/mcp \
--header "Authorization: Bearer $LOVELY_API_KEY"あとは、たとえば次のように頼みます。「灯台の夕暮れを描いた 1536x1024 のヒーロー画像をフラットなイラスト風で生成し、public/hero.png に保存して」
レシピ
gpt-image-2 で background: "transparent" と output_format: "png" を指定すれば、どんな色のページにもそのまま配置できます。
3840x2160 を指定します。料金は正方形のサムネイルと同じで、PNG はおよそ 14 MB になります。
アカウントの上限である 20 件ずつジョブを送信し、1 件終わるごとに次を送信します。結果は、ポーリングの合間にスリープする代わりに ?wait= で受け取ります。
変更したい部分を覆うマスクと、変更内容を説明するプロンプトを付けて /v1/images/edits に送ります。
Claude Code がページを作りながら MCP 経由で generate_image を呼び出し、コードが参照する場所に各ファイルを保存するようにします。
支払う料金
生成でも編集でも、サイズや品質にかかわらず 1 枚 $0.04 の定額です。レスポンスの usage オブジェクトは参考情報で、料金には影響しません。
画像を送信すると、その料金が残高から確保され、画像が完成した時点で精算されます。リクエストが拒否された場合、ジョブをキャンセルした場合、画像が生成されなかった場合は課金されません。画像が生成された後は、届く前にクライアントの接続が切れても課金されます。サブスクリプションはありません。同じ残高で使えるほかのプロダクトについては料金を参照してください。
よくある質問
GPT Image 2 API の料金はいくらですか?+
画像は 1 枚 $0.04 で、サイズや品質にかかわらず、生成でも編集でも同じです。現在の料金は GET /v1/models の pricing.per_image で確認できます。
画像 1 枚の生成にどれくらいかかりますか?+
通常は 40 秒から 2 分で、これにキューでの待ち時間が加わります。同期リクエストは最大 9 分待ちます。画像ジョブを使えば、送信だけしておき、画像はあとで受け取れます。
1 回のリクエストで複数の画像を生成できますか?+
いいえ。n は 1 でなければなりません。複数の画像が必要な場合は、リクエストやジョブを並列で送ってください。1 アカウントあたり、キュー待ちまたは生成中の画像は同時に 20 枚までです。
生成した画像はどのくらい保存されますか?+
完了した画像ジョブのファイルは、GET /v1/images/jobs/{id}/content から 7 日間取得できます。MCP の generate_image ツールが返すダウンロードリンクは、キーなしで 24 時間使えます。
生成に失敗した場合も課金されますか?+
いいえ。失敗した画像、キャンセルしたジョブ、拒否されたリクエストは無料です。30 分以内に生成を開始できない画像は 429 で失敗し、課金されません。
ストリーミングや途中経過の画像出力には対応していますか?+
まだ対応していません。stream: true は 400 を返します。画像のバリエーション(/v1/images/variations)も利用できません。