API Hop

ドキュメント

API Hop ドキュメント

GPT-Image-2 の画像生成

gpt-image-2 で画像を生成したり参照画像を編集したりし、現在の JSON レスポンスまたは SSE 接続で結果を受け取ります。

POSThttps://api.apihop.ai/openai/v1/images/generations

gpt-image-2 は、商品画像、ポスターの草案、イラスト、SNS 向け素材、高解像度のビジュアル、スタイル変換、複数の参照画像の融合に向けた画像生成と参照画像の編集に対応しています。

text
POST https://api.apihop.ai/openai/v1/images/generations

認証

http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

クイックスタート

json
{
  "model": "gpt-image-2",
  "prompt": "A minimal black wireless earbud product poster on a white background, clean studio lighting, no text",
  "n": 1,
  "size": "2048x1152",
  "resolution": "2k",
  "quality": "low"
}

料金比較の範囲

RequestBeam が公開している 1K / 2K / 4K の画像料金区分は、*RequestBeam の販売価格*であり、OpenAI 公式の画像 1 枚あたりの固定料金ではありません。OpenAI の料金ドキュメントでは、画像・テキストトークンおよび処理区分ごとの料金が説明されています。実際の費用は、サイズ、品質、参照入力、出力によって異なります。両方に 1k や 2k と書かれているという理由だけで比較しても、同じ条件での割引率の計算にはなりません。

根拠のない削減率を表示しないため、GPT Image 2 では、以前の集約プロバイダーの USD per image 参考価格と割引バッジを意図的に非表示にしています。RequestBeam の価格は引き続き表示され、課金仕様も変わりません。将来、根拠のある比較を行うには、正確なモデル、エンドポイント、画質、サイズ、入力条件、公式情報の URL、参考価格を確認した日付を記録してください。有料の呼び出しを行う前に、自分のアカウントに適用される価格を確認してください。

リクエストボディ

modelstring必須既定値: gpt-image-2

画像モデルの ID です。gpt-image-2 を使用してください。

promptstring必須

画像のプロンプトです。被写体、場面、構図、スタイル、素材、照明、色、文字を表示するかどうかを説明してください。

ninteger既定値: 1

生成する画像の枚数です。現在の gpt-image-2 の公開仕様では 1 のみ対応しています。その他の値は、予約処理の前に 400 を返します。

sizestring既定値: auto

出力のアスペクト比またはピクセル寸法です。

主な値:

  • 1:1
  • 4:3
  • 16:9
  • 9:16
  • 1024x1024
  • 1536x1024
  • 1024x1536
  • 2048x2048
  • 2048x1152
  • 3840x2160
  • 2160x3840
  • auto
qualitystring既定値: auto

出力品質です。low、medium、high、auto に対応しています。

resolutionstring既定値: 1k

出力解像度の区分です。1k、2k、4k に対応しています。

size と組み合わせることができます。たとえば size: "16:9" と resolution: "2k" を指定します。

image_urlsarray<string>

指示に基づく編集や複数画像の融合に使用する参照画像です。

  • 最大 16 枚です。
  • 各画像は最大 20 MB、入力全体の上限は 256 MB です。
  • 公開アクセス可能な画像 URL に対応しています。
  • data:image/...;base64,... などの Base64 データ URI に対応しています。
  • 同じ配列内で URL と Base64 データ URI を混在させることができます。
output_formatstring既定値: png

出力形式です。png、jpeg、webp に対応しています。

streamboolean既定値: false

Server-Sent Events を返すかどうかを指定します。

参照画像と編集

参照画像の編集にも同じ JSON エンドポイントを使用します。image_urls を追加し、prompt に維持する内容と変更する内容を記述してください。

json
{
  "model": "gpt-image-2",
  "prompt": "Keep the product unchanged, replace the background with a dark blue studio, and add soft rim lighting",
  "image_urls": [
    "https://example.com/product.png"
  ],
  "size": "1:1",
  "resolution": "2k"
}

複数の参照画像から、被写体、構図、ビジュアルのスタイルを指定できます。

json
{
  "model": "gpt-image-2",
  "prompt": "Use the product from the first image and the composition from the second image to create a clean ecommerce hero image",
  "image_urls": [
    "https://example.com/product.png",
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  ],
  "size": "4:3",
  "resolution": "2k"
}

現在の公開仕様の範囲:

  • image_urls による画像全体の編集、スタイル変換、複数参照画像の融合に対応しています。
  • 別個の POST https://api.apihop.ai/openai/v1/images/edits ルートはありません。
  • multipart/form-data のアップロードは受け付けません。ローカル画像は、先に Base64 データ URI に変換するか、アクセス可能な URL にアップロードしてください。
  • マスクを使ったインペインティングには対応していません。mask、mask_url、maskUrl を送信すると、予約処理の前に 400 を返します。

リクエスト例

1:1 の商品画像

json
{
  "model": "gpt-image-2",
  "prompt": "A transparent glass cup on a light gray background, commercial product photography, soft shadow, no text",
  "n": 1,
  "size": "1024x1024",
  "resolution": "1k",
  "quality": "low",
  "output_format": "png"
}

16:9 のポスター

json
{
  "model": "gpt-image-2",
  "prompt": "A futuristic city night poster with neon lights, wet streets, cinematic composition, no text",
  "n": 1,
  "size": "2048x1152",
  "resolution": "2k",
  "quality": "medium",
  "output_format": "jpeg"
}

結果の返却方法

この OpenAI 互換エンドポイントは、後からポーリングするための data.jobId を含むタスク送信レスポンスを最初に返す方式ではありません。

  • stream: false の場合、現在の HTTP リクエストが完了まで待機し、JSON レスポンスで画像 URL を返します。
  • stream: true の場合、現在の SSE 接続は image_generation.completed と [DONE] まで維持されます。

このエンドポイントの結果取得に GET https://api.apihop.ai/v1/jobs/{id} を使用しないでください。非同期ジョブの取得は、非同期の作成エンドポイントが jobId を明示的に返す場合にのみ使用してください。

非ストリーミングのレスポンス

レスポンスには画像 URL が含まれます。上流のルートが使用量の計測情報を提供する場合は、usage も含まれます。

json
{
  "created": 1777270000,
  "data": [
    {
      "url": "https://image.example.com/generated/123456789012345678/0.png"
    }
  ],
  "usage": {
    "input_tokens": 20,
    "output_tokens": 1234,
    "total_tokens": 1254
  }
}

ストリーミングのレスポンス

text
event: image_generation.completed
data: {"type":"image_generation.completed","data":[{"index":0,"url":"https://image.example.com/generated/123456789012345678/0.png"}],"usage":{"input_tokens":20,"output_tokens":1234,"total_tokens":1254}}

data: [DONE]

サイズの参考値

目標の比率1K 推奨値2K 推奨値4K 推奨値
1:11024x10242048x2048非推奨
3:21536x10242048x1360非推奨
2:31024x15361360x2048非推奨
4:31024x7682048x1536非推奨
3:4768x10241536x2048非推奨
16:91536x8642048x11523840x2160
9:16864x15361152x20482160x3840
21:92016x8642688x11523840x1648
9:21864x20161152x26881648x3840

エラーレスポンス

コードの一覧、プロトコルごとの違い、診断手順については、エラーコードとトラブルシューティングを参照してください。

json
{
  "code": 10000,
  "message": "prompt is required",
  "type": "api_error"
}

主なエラー:

  • 400:必須パラメータの不足、または未対応のパラメータの組み合わせ
  • 401:認証失敗、または API キーが誤っている
  • 402:残高不足
  • 404:モデルが存在しない、または有効になっていない
  • 429:レート制限の超過
  • 5xx:サービスが一時的に利用できない、または画像生成の失敗