画像生成 API
HopBase が提供する全ての画像モデル——GPT Image、Gemini Banana、Seedream、Grok Imagine、Kling——とそれぞれの呼び出し方法。
HopBase はクライアントに対して単一のOpenAI Images 互換プロトコルを提供します。テキストから画像を生成するリクエストは POST https://api.hop-base.com/v1/images/generations に送信してください。Gemini Banana の場合でも、Gemini ネイティブの generateContent ペイロードを送らないでください。HopBase が選択したモデルに合わせてリクエストを自動的に適合させます。
全画像モデル一覧
| 系列 | モデル ID | 呼び出し方法 | 詳細 |
|---|---|---|---|
| GPT Image | gpt-image-2、gpt-image-2.5-flare、gpt-image-2.5-sunburst | 同期、POST /v1/images/generations | 本ページ |
| Gemini Banana | gemini-3-pro-image、gemini-3.1-flash-image、gemini-3.1-flash-image-preview、gemini-3.1-flash-lite-image、gemini-2.5-flash-image | 同期、POST /v1/images/generations | 本ページ |
| Seedream | seedream-5-0-pro、seedream-5-0-lite、seedream-4-5 | 同期、POST /v1/images/generations | 本ページ |
| Grok Imagine | grok-imagine-image、grok-imagine-image-2.0、grok-imagine-image-quality | 同期のみ(非同期タスク非対応)、POST /v1/images/generations | Grok Imagine の画像と動画 |
| Kling | kling-image-v3、kling-image-v3-omni、kling-image-o1、kling-image-v2-1、kling-image-v2-1-i2i、kling-image-v2-1-multi-ref、kling-image-expand | 非同期:POST /v1/images/generations に送信後、GET /v1/video/tasks/{task_id} でポーリング | Kling の動画と画像 |
各系列は異なるプランのプランに属しているため、あるモデルで使えるキーが他のモデルでも使えるとは限りません。実際に使用するキーで GET /v1/models を呼び出し、レスポンスに含まれる完全なモデル ID を使用してください。ID を推測したり、独自にグレードのサフィックスを付け足したりしないでください。
本ページでは GPT Image、Gemini Banana、Seedream を扱います。Grok Imagine と Kling は上記リンク先の専用ページを参照してください。
エンドポイント一覧
| メソッド | パス | 用途 | リクエスト形式 |
|---|---|---|---|
| POST | /v1/images/generations | テキストから画像を生成。Seedream は image を渡すことで変換・編集にも使用可能 | application/json |
| POST | /v1/images/edits | 画像から画像への変換・編集 | multipart/form-data(推奨)、または URL / Data URL を用いた JSON |
| GET | /v1/images/tasks?task_id=... | 非同期タスクの照会 | Prefer: respond-async を付けたリクエストの後に使用 |
| GET | /v1/video/tasks/{task_id} | Kling の生成タスクをポーリング | Kling の画像生成は常に非同期 |
すべてのエンドポイントで Authorization: Bearer sk-your-key を使用します。Base URL は https://api.hop-base.com/v1 です。
Gemini の画像モデルは、画像から画像への変換・編集を /v1/images/generations の image または images フィールドで行います。/v1/images/edits は公開されていません。
最小構成のテキストから画像への curl リクエスト
curl https://api.hop-base.com/v1/images/generations \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A Shiba Inu sitting under cherry blossoms, Japanese watercolor style",
"size": "2048x2048",
"quality": "medium",
"background": "opaque",
"output_format": "png",
"n": 1
}'OpenAI Python SDK によるテキストから画像への生成
import base64
from openai import OpenAI
client = OpenAI(
base_url="https://api.hop-base.com/v1",
api_key="sk-your-key",
)
resp = client.images.generate(
model="gpt-image-2",
prompt="A Shiba Inu sitting under cherry blossoms, Japanese watercolor style",
size="2048x2048",
quality="medium",
background="opaque",
output_format="png",
n=1,
)
image = resp.data[0]
with open("result.png", "wb") as f:
f.write(base64.b64decode(image.b64_json))GPT Image のモデル ID
| モデル | モデル ID | 位置付け |
|---|---|---|
| GPT Image 2 | gpt-image-2 | 旧世代。auto、1K、2K、4K の各サイズに対応 |
| GPT Image 2.5 Flare | gpt-image-2.5-flare | 日常的な画像生成のデフォルト |
| GPT Image 2.5 Sunburst | gpt-image-2.5-sunburst | より高精細。同じ設定では Flare より低速 |
GPT Image 2.5 の 2 モデルはいずれも /v1/images/generations と /v1/images/edits で同じ OpenAI Images プロトコルを使用します。既存のクライアントは model を変更するだけで移行できます。価格は価格ページとログイン後のモデルカタログに掲載されています。
GPT Image 2.5 のパラメータ
| フィールド | GPT Image 2.5 の挙動 |
|---|---|
size | 1024x1024、1536x1024、1024x1536、auto、または辺が 16 の倍数で長辺が 3840 以下、アスペクト比が 1:3〜3:1 の範囲に収まる任意の 幅x高さ(例:1536x864、2048x1152)。それ以外の値は明確に 400 を返します。 |
quality | low、medium、high、xhigh、max、auto。上位ティアほど出力トークンが増え費用も上がります:1024x1024 での実測で low 約 200、high 約 1,760、xhigh 約 3,120、max 約 7,020 出力トークン。 |
n | 1 リクエストで複数枚を生成可能 |
background | transparent は png または webp 出力と併用 |
output_format / output_compression | png、jpeg、webp。任意で圧縮率を指定可能 |
moderation | low を受け付け |
response_format | url を指定できますが、画像は依然として b64_json で返されます |
| 編集 | 参照画像 1 枚、image[] を繰り返し指定した複数枚、またはアルファチャンネル付き mask によるインペインティング:mask の透明部分は再生成され、不透明部分はピクセル単位でそのまま保持されます |
1024x1024 の画像 1 枚あたりの参考所要時間:low はどちらのモデルも約 14 秒。high では Flare が約 19 秒、Sunburst が約 37 秒です。
GPT Image 2.5 のカスタムサイズによるテキストから画像への生成
curl https://api.hop-base.com/v1/images/generations \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-sunburst",
"prompt": "A product shot of a ceramic teapot on slate, soft window light",
"size": "2048x1152",
"quality": "high",
"output_format": "webp",
"output_compression": 85
}'Gemini Banana の互換性
| 能力 | HopBase 経由での Gemini の挙動 |
|---|---|
| リクエストの送信先 | クライアントは常に /v1/images/generations を呼び出します。HopBase が選択したモデルに合わせてリクエストを自動的に適合させます。 |
| レスポンス | 結果は OpenAI Images 形式の JSON で返され、通常は data[].b64_json、場合によっては data[].url になります。 |
| 画像から画像への変換 / 編集 | 同じ /v1/images/generations リクエストの image(単一)または images(複数)フィールドに参照画像を渡します——URL でも Data URL でも動作します。/v1/images/edits エンドポイントは存在せず、mask による領域のハード制約もありません。 |
| サイズ | HopBase がモデルに応じて size を検証し、必要に応じて自動調整します。 |
| その他のパラメータ | quality、background、output_format、input_fidelity、n への対応はモデルによって異なります。GPT Image と完全に同等だとは想定しないでください。 |
| ストリーミング | Gemini の画像生成は同期モードを使用してください。"stream": true は送らないでください。対応していないモデルは明確なエラーを返します。 |
| 非同期 | 一部のモデルは Prefer: respond-async に対応しています。202 task_id が返るかどうかは実際の HTTP ステータスで判定してください。 |
Gemini 向けの適合処理は HopBase のサーバー側で行われます。クライアント側の Base URL、Bearer キー、OpenAI Images のリクエスト構造はいずれも変更不要です。
Gemini の各プランのプラン間の違い
| プラン | 課金方式 | 利用可能なモデル / 備考 |
|---|---|---|
| Gemini 全系(含生图)(Gemini フルスイート・画像生成対応) | 画像 1 枚単位で課金 | 同期の POST /v1/images/generations、data[].b64_json を返却。現時点で動作確認済みのモデルは gemini-3-pro-image、gemini-3.1-flash-image、gemini-3.1-flash-image-preview です。 |
| Gemini 官方直连(Gemini 公式直結) | トークン単位で課金 | 画像モデルは /v1/chat/completions からも直接呼び出せます。画像は markdown に埋め込まれた data URL として返されます。 |
| Gemini 生图(Banana 系)(Gemini 画像生成・Banana 系) | トークン単位で課金 | 画像モデルは /v1/chat/completions からも直接呼び出せ、画像は markdown に埋め込まれた data URL として返されます——Banana 系プランでよく使われる方式です。 |
3 つのプランのいずれも/v1/images/edits エンドポイントは提供していません。画像から画像への変換や編集には、必ず /v1/images/generations リクエストボディの image / images フィールドを使用してください。
Gemini Banana の画像モデル ID
| 系列 | モデル ID | サイズ |
|---|---|---|
| Banana | gemini-2.5-flash-image | 1K |
| Banana Pro | gemini-3-pro-image | 1K / 2K / 4K |
| Banana 2 | gemini-3.1-flash-image / gemini-3.1-flash-image-preview | 1K / 2K |
| Banana 2 Lite | gemini-3.1-flash-lite-image | 1K |
Gemini の画像モデルは実際のトークン使用量に基づいて課金されます。換算倍率はプランのプランによって異なる場合があり、ログイン後のモデルカタログが正となります。
利用可能な Seedream モデル
| モデル | モデル ID | サイズ | 出力 / 最適化 |
|---|---|---|---|
| Seedream 5.0 Pro | seedream-5-0-pro | 1K / 1.5K / 2K | PNG / JPEG;standard / fast |
| Seedream 5.0 Lite | seedream-5-0-lite | 2K / 3K / 4K | PNG / JPEG;standard |
| Seedream 4.5 | seedream-4-5 | 2K / 4K | JPEG;standard |
Lite は Pro ではありません
- Lite は Seedream 5.0 の軽量版モデルです。
seedream-5-0-liteを Pro として扱わないでください。 - Pro の1.5K は 1K と同じ価格でより高品質です——中小サイズの出力には 1.5K を優先してください。
- Lite と 4.5 は最小出力が 2K クラスです(総ピクセル数 3,686,400 以上)。1K 出力が必要な場合は Pro を使用してください。
- 上表は公式のベンチマーク価格です。実際の適用価格はプランの倍率に従い、ログイン後のモデルカタログに表示されます。
Seedream 5.0 Pro のテキストから画像への生成
Seedream のテキストから画像への生成は /v1/images/generations を使用し、出力画像 1 枚単位で課金され、24 時間有効な署名付き URL を返します。以下の例では Pro を使用していますが、現在のキーで返される Lite や 4.5 の ID を選び、その型番のパラメータ制限に従うこともできます。
curl https://api.hop-base.com/v1/images/generations \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5-0-pro",
"prompt": "A futuristic city street at night in neon light, cinematic composition",
"size": "2048x2048",
"response_format": "url"
}'Seedream 5.0 Pro の画像から画像への変換と編集(JSON 推奨)
引き続き /v1/images/generations を呼び出し、image を追加します。1〜10 個の HTTP(S) URL または画像 Data URL を受け付けます。単一画像の変換、複数画像の合成、参照画像を用いた再描画、座標・バウンディングボックス・矢印・描画ストロークで示したローカル編集は、いずれもこのエンドポイントを使用します。
curl https://api.hop-base.com/v1/images/generations \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-5-0-pro",
"prompt": "Move the cup in the first image to the right side of the table and keep everything else unchanged",
"image": ["https://example.com/source.png"],
"size": "2K",
"output_format": "png",
"response_format": "url"
}'Seedream 5.0 Pro を OpenAI edits 経由で使う(ローカルファイル)
既存の OpenAI Images 編集コードは /v1/images/edits への multipart リクエストをそのまま使用できます。HopBase がファイルとリクエスト形式を自動的に適合させます。
curl https://api.hop-base.com/v1/images/edits \
-H "Authorization: Bearer sk-your-key" \
-F "model=seedream-5-0-pro" \
-F "prompt=Redesign the poster from both references while preserving the subject and brand colors" \
-F "image[][email protected]" \
-F "image[][email protected]" \
-F "size=2K" \
-F "output_format=png"Seedream の共通パラメータ
| フィールド | 説明 |
|---|---|
model | 現在のキーの GET /v1/models が返す完全な Seedream ID |
prompt | 内容、構図、スタイル、または編集指示。ローカル編集では、参照画像内の座標・バウンディングボックス・矢印・描画領域を説明できます。 |
image | 任意。単一の URL / Data URL または配列。上限:Pro は 10、Lite と 4.5 は 14。指定すると単一画像または複数画像の変換・編集が有効になります。 |
size | 上表の略称サイズを使用します。カスタムの 幅x高さ はアスペクト比 1:16〜16:1 が必要です。総ピクセル数の範囲:Pro は 921,600〜4,624,220、Lite と 4.5 は3,686,400〜16,777,216(下限を下回る値はゲートウェイ側で有効範囲とともに拒否されます)。 |
output_format | Pro / Lite:png または jpeg;4.5:jpeg のみ |
optimize_prompt_options.mode | Pro:standard または fast;Lite / 4.5:standard のみ |
response_format | HopBase は現在 url を使用し、画像への直接リンクを返します。 |
Seedream の入出力制限
- 同期のテキストから画像への生成、単一 / 複数参照画像、編集に対応します。
n=1、response_format=url固定です。非同期画像タスクとストリーミングには対応していません。 - 入力画像は 1 枚あたり最大 30 MB / 36 MP まで。JPEG、PNG、WebP、BMP、TIFF、GIF、HEIC、HEIF に対応します。
- 返却される署名付き URL の有効期限は24 時間です。期限切れになると復元できず、再生成するしかありません(再生成は再度課金されます)。速やかにダウンロードしてください。
- 実際の出力画像枚数に基づいて課金されます。生成に失敗した場合は課金されません。
- 適用倍率と課金額はログイン後のモデルカタログに表示されます。
Seedream のローカル編集は従来型のハードマスクを使用しません。注釈は参照画像に直接描き込み、その座標・バウンディングボックス・矢印・描画領域を prompt 内で説明してください。/v1/images/edits に mask を渡すと、曖昧な挙動を避けるため 400 が返ります。
適切なプランのプランのキーを使用してください
目的の Seedream の完全な ID が GET /v1/models で返ってくるプランのプランのキーを使用してください。他のプランのプランでもこれらのモデルを呼び出せると仮定しないでください。
Grok Imagine の画像生成
grok-imagine-image 系列は同じ Images エンドポイントを使用しますが、独自のパラメータ体系を持ちます(size は適用されません)。同期リクエストのみに対応しており(非同期タスクモードなし)、返却される URL は一時的なダウンロードリンクです。完全なパラメータ一覧はGrok Imagine の画像と動画を参照してください。
multipart curl による汎用的な画像から画像への変換・編集
curl https://api.hop-base.com/v1/images/edits \
-H "Authorization: Bearer sk-your-key" \
-F "model=gpt-image-2" \
-F "prompt=Turn the reference into a Van Gogh-style oil painting of a starry night" \
-F "[email protected]" \
-F "size=1536x1024" \
-F "quality=medium" \
-F "output_format=png"GPT Image 2.5 の参照画像とマスクによるインペインティング
mask はアルファチャンネル付きの PNG です。透明ピクセルは prompt に基づいて再生成され、不透明ピクセルはそのままコピーされます。複数の参照画像を渡すには image[] を繰り返し指定してください。
curl https://api.hop-base.com/v1/images/edits \
-H "Authorization: Bearer sk-your-key" \
-F "model=gpt-image-2.5-flare" \
-F "prompt=Fill the masked area with a vase in the style of the second reference" \
-F "image[][email protected]" \
-F "image[][email protected]" \
-F "[email protected]" \
-F "size=1024x1024" \
-F "quality=high" \
-F "output_format=png"共通リクエストフィールド
| フィールド | 必須 | 説明 |
|---|---|---|
model | 必須 | gpt-image-2、gpt-image-2.5-flare、gpt-image-2.5-sunburst、または現在のキーの GET /v1/models が返す完全な Gemini Banana / Seedream 画像モデル ID |
prompt | 必須 | 画像の内容、構図、スタイル、テキスト要件 |
size | 任意 | auto または 幅x高さ。よく使う値は 1024x1024、1536x1024、1024x1536、2048x2048。GPT Image 2.5 は上記ルールの範囲内でカスタムサイズにも対応 |
quality | 任意 | low、medium、high、auto。GPT Image 2.5 は xhigh、max にも対応 |
n | 任意 | 生成枚数。モデルによっては 1 のみ対応 |
background | 任意 | opaque または transparent |
output_format | 任意 | png、jpeg、webp |
image / mask | 編集時は image が必須。mask はモデルによる | /images/edits は対応モデルで 1 枚以上の参照画像を受け付けます。Gemini はこのエンドポイントの代わりに /images/generations の image / images フィールドを使用し、mask には対応していません。Seedream は Pro で最大 10 枚(Lite と 4.5 は 14 枚)、各 30 MB までの参照画像を受け付け、こちらも従来型の mask には対応していません。GPT Image 2.5 は image[] の繰り返し指定とアルファチャンネル付き mask に対応しています。 |
画像サイズは選択したモデルに対して検証されます。対応していない 2K や 4K のサイズは生成前に 400 を返し、画像生成の課金は発生しません。
同期レスポンス(デフォルト)
Prefer ヘッダーを付けない場合、リクエストは完了まで待機し、標準的な OpenAI Images JSON を返します。画像は通常 data[].b64_json に入りますが、data[].url を返すモデルもあるため、クライアント側では両方に対応してください。usage にはトークン使用量が含まれます。
{
"created": 1780000000,
"data": [{
"b64_json": "iVBORw0KGgoAAA...",
"revised_prompt": "..."
}],
"usage": {
"input_tokens": 18,
"output_tokens": 1056,
"total_tokens": 1074
}
}GPT Image の生成が 40 秒を超える場合:ステータスは 200 のまま——error フィールドを確認してください
GPT Image の生成が約 40 秒を超えると、サーバーは即座に HTTP 200 を返し、接続を維持するためレスポンスボディの先頭に空白文字を書き続けます。完全な JSON はその後に続きます。この時点以降、生成に失敗しても HTTP ステータスは 200 のままです。成否はレスポンスボディに error フィールドが含まれるかどうかで判定してください——ステータスコードだけに頼らないでください。クライアントの読み取りタイムアウトは 300 秒以上に設定してください。
ストリーミングは Images SSE を返します
ストリーミングに対応する Gemini 以外の画像モデルは、"stream": true を指定すると SSE に切り替わります。ストリーム中は keepalive の ping が送信され、最後の data: イベントに Images JSON が含まれ、その後に [DONE] が続きます。Gemini の画像モデルはこの Images SSE の挙動には対応していません。公式 SDK を使う場合は既定の同期モードのままにしてください。
非同期タスクモード(OpenAI / Gemini Images ゲートウェイ)
Prefer: respond-async ヘッダーを付けると、対応モデルは即座に 202 Accepted、task_id、status_url を返します。タスクの照会は GET /v1/images/tasks?task_id=your-task-id のみで、タスク ID をパスに含める方式には対応していません。タスクステータスは pending、processing、retrying、completed、failed のいずれかで、completed と failed が終端状態です。Gemini の画像モデルも非同期タスクに対応しています。2K / 4K の画像では、長時間実行のリクエストが CDN のタイムアウトで打ち切られるのを避けるため、このモードの使用を推奨します。
# 1. Submit and receive 202 + task_id
curl -i https://api.hop-base.com/v1/images/generations \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-H "Prefer: respond-async" \
-d '{
"model": "gpt-image-2",
"prompt": "A cinematic futuristic city at night",
"size": "2048x2048"
}'
# 2. Poll with the task_id from the first response
curl "https://api.hop-base.com/v1/images/tasks?task_id=your-task-id" \
-H "Authorization: Bearer sk-your-key"タスク完了後のレスポンス:
{
"task_id": "your-task-id",
"status": "completed",
"result_content": ""
}結果は速やかにダウンロードしてください——長期保存先ではありません
result_content は Markdown で、画像 1 枚につき 1 行  の形式です。これは相対パスなので、取得する際は自分で https://api.hop-base.com を先頭に付けてください。この URL は開くのに鍵が不要なため、公開して共有しないでください。タスク完了後は速やかに自分のストレージへダウンロードし、長期保存先として扱わないでください。
非同期タスクの送信時は残高が 0 より大きいことのみを確認し、金額の引当は行いません。生成に失敗した場合は課金されません。