本文へスキップ

Gemini の画像生成

Gemini で画像を生成・編集します。パラメータ、レスポンス、注意点をまとめています。

項目値
Base URLhttps://api.hop-base.com/v1
生成(参照画像による編集を含む)POST /v1/images/generations
編集(「Gemini 全モデル(画像生成含む)」のみ)POST /v1/images/edits
非同期タスクの照会GET /v1/images/tasks?task_id=…
キーのグループ「Gemini 全モデル(画像生成含む)」または「Gemini 公式ダイレクト」

Gemini の画像生成(通称 Banana)は OpenAI Images API を使い、Base64 画像を同期で返します。2 つのグループは編集エンドポイントと課金方式が異なります。

利用できるモデル

モデルモデル IDサイズ段階公式価格
Gemini 3 Pro Image(Banana Pro)gemini-3-pro-image1K / 2K / 4K$0.1344〜/ 枚
Gemini 3.1 Flash Image(Banana 2)gemini-3.1-flash-image1K / 2K$0.0672/ 枚
Banana 2 プレビュー版gemini-3.1-flash-image-preview1K / 2K$0.0672/ 枚
Gemini 3.1 Flash Lite Image(Banana 2 Lite)gemini-3.1-flash-lite-image1K$0.0336/ 枚
Gemini 2.5 Flash Image(Banana)gemini-2.5-flash-image1K$0.0387/ 枚

選び方:4K が必要なら gemini-3-pro-image のみです。gemini-3.1-flash-image は 1K と 2K が同価格です。複数の参照画像を合成する用途に Lite は向きません(複数参照画像向けに最適化されていません)。

2 つのグループの違い:

グループ/v1/images/edits課金
Gemini 全モデル(画像生成含む)対応納品枚数単位
Gemini 公式ダイレクト404 を返す。参照画像は generations で渡すトークン単位

「Gemini 公式ダイレクト」では画像モデルを /v1/chat/completions からも呼び出せ、画像は markdown に埋め込まれた data URL で返ります。

リクエストパラメータ

生成

POST /v1/images/generations、JSON ボディ。OpenAI Images の構造で送り、Gemini ネイティブの generateContent ペイロードは送らないでください。

パラメータ必須型と制限デフォルト説明
model必須文字列、上表参照—現在のキーの GET /v1/models の結果に従う
prompt必須文字列、前後の空白を除いて空でない—生成または編集の指示
size任意auto、任意比率の WIDTHxHEIGHT、または 1K / 2K / 4K—比率と段階に換算、下記参照
n任意整数 1〜101段階ごとにも上限あり、下記参照
google.image_config.aspect_ratio任意公式の 10 比率1:1size より優先
google.image_config.image_size任意モデルの段階内の 1K / 2K / 4K1Ksize より優先
image / images任意URL / Data URL、文字列または文字列配列—参照画像。両方あれば images を優先
quality、response_format、output_format任意任意の値—効果なし

aspect_ratio に指定できる値:1:1 / 2:3 / 3:2 / 3:4 / 4:3 / 4:5 / 5:4 / 9:16 / 16:9 / 21:9。

image_config には等価な 3 つの書き方があります。複数ある場合は次の順で最初のものが使われます。

  • google.image_config
  • extra_body.google.image_config(OpenAI SDK での書き方)
  • トップレベルのフラットな aspect_ratio / image_size

モデルの段階を超える image_size を明示すると 400 が返ります。

size の WIDTHxHEIGHT は比率を理由に拒否されません。最も近い公式比率に割り当てられ、段階(長辺から算出)はエラーなしでモデルの最高段階まで黙って下げられます。

たとえば gemini-3.1-flash-image に 4096x4096 を送ると 2K 画像が返ります。モデルの段階を超える段階略称は 400 になります。

n は出力段階ごとにも上限があります:4K ≤ 2、2K ≤ 5、1K ≤ 10(レスポンスサイズの上限)。超えると 400 が返ります。

参照画像

どちらのグループも generations の image / images で参照画像を渡します(JSON のみ)。各要素は http(s) URL または Data URL の文字列で、URL はサーバーから取得でき、内部アドレスを指していない必要があります。

グループ枚数1 枚あたりのサイズ
Gemini 全モデル(画像生成含む)最大 14 枚、超えると 400リモート URL は 25 MiB 以下
Gemini 公式ダイレクト公式上限 14 枚、ゲートウェイは検証しないデコード後 20 MiB 以下

「Gemini 全モデル(画像生成含む)」は 4 MiB を超える参照画像を自動で圧縮してから生成します。gemini-2.5-flash-image の参照画像は公式に最大 3 枚です。Data URL の例は data:image/png;base64,iVBORw0KGgo… で、MIME は画像と一致させてください。

編集(「Gemini 全モデル(画像生成含む)」のみ)

POST /v1/images/edits は multipart/form-data を推奨し、JSON(参照画像は URL / Data URL)も受け付けます。参照画像が 1 枚以上必要です。

パラメータ必須型と制限デフォルト説明
image / image[]必須ファイルまたは URL 文字列、繰り返し可—参照画像
model、prompt必須「生成」と同じ——
size、n任意「生成」と同じ——
aspect_ratio、image_size任意「生成」の image_config と同じ—multipart のフィールド名

「Gemini 公式ダイレクト」にはこのエンドポイントがなく、404 が返ります。編集は generations に参照画像を付けて行ってください。どちらのグループも mask には対応せず、送ると 400 が返ります。

非同期

HTTP ヘッダー Prefer: respond-async を付けると、すぐに 202 Accepted と task_id が返ります。2K / 4K の大きな画像では、長いリクエストが CDN のタイムアウトで切れないよう、こちらを推奨します。

レスポンス

同期リクエストは OpenAI Images の JSON を返し、画像は data[].b64_json に入ります。

フィールド型説明
createdintegerUnix 秒
modelstringリクエストしたモデル ID
data[].b64_jsonstringBase64 の画像データ
data[].mime_typestring画像形式。image/jpeg の場合あり
usageobject返る場合あり。入力・出力・合計トークン
usageMetadataobject「Gemini 公式ダイレクト」で返る場合あり。Gemini 公式の使用量フィールド
{
  "created": 1760000000,
  "model": "gemini-3-pro-image",
  "data": [
    {
      "b64_json": "/9j/4AAQSkZJRgABAQ...",
      "mime_type": "image/jpeg"
    }
  ],
  "usage": {
    "input_tokens": 42,
    "output_tokens": 1120,
    "total_tokens": 1162
  }
}

非同期タスク

送信するとすぐに次が返ります。

{
  "task_id": "imgtask_EXAMPLE",
  "status": "pending",
  "status_url": "/v1/images/tasks?task_id=imgtask_EXAMPLE"
}
照会はクエリパラメータ task_id でのみ行えます。タスク ID をパスに入れる形式には対応していません。
ステータス意味
pending / processing / retrying処理中。照会を続ける
completed完了。result_content を読む
failed失敗。error 文字列のみでエラーコードなし

完了後のレスポンス:

{
  "task_id": "imgtask_EXAMPLE",
  "status": "completed",
  "result_content": "![image](/assets-runtime/2026/09/xxxxxxxxxxxx.png)",
  "usage": {
    "cost": 1.36,
    "currency": "CNY",
    "cost_cny": 1.36,
    "cost_usd": 0.2
  }
}
結果はすぐにダウンロードする:

result_content は画像ごとに ![image](/assets-runtime/…) の 1 行で、相対パスなので https://api.hop-base.com を前に付けて取得します。この URL はキーなしで開けるため公開せず、早めに自分のストレージへダウンロードしてください。

例

テキストから画像

curl https://api.hop-base.com/v1/images/generations \
  -H "Authorization: Bearer sk-your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3-pro-image",
    "prompt": "日の当たる木のテーブルに置いた陶器のティーポット、商品写真",
    "google": {
      "image_config": { "aspect_ratio": "16:9", "image_size": "2K" }
    }
  }' \
  | jq -r '.data[0].b64_json' | base64 --decode > result.png

curl の例には jq が必要です。data[].mime_type が image/jpeg の場合は拡張子を .jpg に変えてください。

参照画像による編集

curl https://api.hop-base.com/v1/images/generations \
  -H "Authorization: Bearer sk-your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-flash-image",
    "prompt": "1 枚目のカップを 2 枚目の配色に変え、ほかはそのまま",
    "images": [
      "https://example.com/cup.png",
      "https://example.com/palette.png"
    ],
    "size": "1024x1024"
  }'

注意事項

  • /v1/images/edits があるのは「Gemini 全モデル(画像生成含む)」だけで、もう一方のグループでは generations で参照画像を渡します。
  • 結果は Base64 で JPEG の場合もあるため、保存前に data[].mime_type を確認してください。
  • mask には対応していないため、変更したい範囲は prompt で説明してください。
  • 透明背景は出力できず、background: "transparent" は 400 になります。
  • stream: true には対応していないため、デフォルトの同期モードか非同期タスクを使ってください。
  • 2K / 4K の画像では Prefer: respond-async を付けるか、同期リクエストのクライアント読み取りタイムアウトを長めに設定してください。
  • 有料リクエストの前に、使うキーで GET /v1/models から完全な ID を取得し、段階のサフィックスを自分で付けないでください。

よくあるエラー

パラメータが不正な場合は生成前に 400 が返り、課金されません。

エラー対処
prompt must not be empty / missing prompt空でない prompt を送る
n=3 is too large for 4K output on model gemini-3-pro-image; …n を減らすか、リクエストを分ける
model gemini-3.1-flash-image does not support tier 4K; supported: 1K, 2Kgemini-3-pro-image を使うか段階を下げる
aspect_ratio "7:3" is not supported for model …公式比率を使う
mask is not supported for Gemini image models; …mask を外し、範囲を prompt で説明する
background=transparent is not supported …background を外す
Gemini image generation does not support stream=true; …stream を外す
too many reference images: at most 14 are supported …参照画像を減らす
reference image 1: reference image exceeds the 20MB limit画像を圧縮して再試行する
reference image 1: reference image download returned HTTP 404サーバーから取得できる公開 URL にする
400(モデルの文章を引用)または 502モデルが拒否したかテキストのみ返した。prompt を書き直す

課金

「Gemini 全モデル(画像生成含む)」は実際に納品した枚数で課金し、「Gemini 公式ダイレクト」はトークン単位で、実際に生成された段階に応じて課金します。不正なパラメータと部分的な失敗は課金されません。非同期タスクの終了後は、照会レスポンスの usage.cost が実際の課金額です。

単価は各モデルカードと、ログイン後のモデル一覧で確認できます。

次のステップ