香蕉 #125 / #139 返回格式对比
两个分组的请求写法、模型和价格完全一样,同一段代码换一把 Key 就能切换。区别只在请求体没写 response_format 时:原生、Images 和 Messages 接口 #125 默认返回 Base64,#139 默认返回本站图片链接;Chat 和 Responses 两组都默认返回链接。写了 response_format,两组结果完全相同。
返回格式关键注意事项
- 不写
response_format时,原生、Images 生成和编辑、Messages:#125 返回 Base64,#139 返回链接。只读 Base64 的客户端用 #139 会拿不到图片。 - Chat 和 Responses 两组都返回 Markdown 图片链接,#125 也一样;要 Base64 必须写
"response_format": "b64_json"。 - 图片链接 1 小时后失效(之后返回 404),收到后请立即下载或转存。
- 图片流式目前暂停:流式请求立即返回 HTTP 400,不生成、不计费。
1 两个分组
| 分组 | 名称 | 原生 / Images / Messages 默认 | 写法 |
|---|---|---|---|
| #125 | 【AI Studio 生图】Nanobana · 默认 Base64(原生) | Base64 | 要链接:请求体顶层加 "response_format": "url" |
| #139 | 【AI Studio 生图】Nanobana 主渠道 · 默认 URL | 链接(1 小时有效) | 要 Base64:请求体顶层加 "response_format": "b64_json" |
| 模型 | 模型名 | #125 | #139 |
|---|---|---|---|
| 香蕉 2.0 | gemini-3.1-flash-image-preview | $0.04 / 张 | $0.04 / 张 |
| 香蕉 2.1 | gemini-nano-banana-2.1 | $0.05 / 张 | $0.05 / 张 |
| 香蕉 2 Pro | gemini-3-pro-image-preview | $0.055 / 张 | $0.055 / 张 |
2 实测结果
2026-10-22 00:10(北京时间)实测:模型 gemini-3.1-flash-image-preview,1K,两组各用一把本站 Key,6 种请求格式 × 3 种写法。每种情况调用一次,36 次全部 HTTP 200。
| 请求格式 | 路径 | 不写格式 · #125 | 不写格式 · #139 | 写 b64_json(两组) | 写 url(两组) |
|---|---|---|---|---|---|
| Gemini 原生 ◀ 不同 | POST /v1beta/models/{model}:generateContent | Base64 | 链接 | Base64 | 链接 |
| Images 生成 ◀ 不同 | POST /v1/images/generations | Base64 | 链接 | Base64 | 链接 |
| Images 编辑 ◀ 不同 | POST /v1/images/edits(multipart) | Base64 | 链接 | Base64 | 链接 |
| Messages ◀ 不同 | POST /v1/messages | Base64 | 链接 | Base64 | 链接 |
| Chat Completions | POST /v1/chat/completions | 链接 | 链接 | Base64 | 链接 |
| Responses | POST /v1/responses | 链接 | 链接 | Base64 | 链接 |
3 图片在响应里的位置
两组的响应结构相同,只是同一位置放的是 Base64 还是链接。读取时遍历全部项,不要假设第一项就是图片。
| 请求格式 | Base64 在哪里 | 链接在哪里 |
|---|---|---|
| Gemini 原生 | candidates[].content.parts[].inlineData.data | candidates[].content.parts[].fileData.fileUri,另附  文本项 |
| Images 生成 | data[].b64_json | data[].url |
| Images 编辑 | data[].b64_json | data[].url |
| Messages | content[].text 中的  | content[].text 中的  |
| Chat Completions | choices[].message.content 中的  | choices[].message.content 中的  |
| Responses | output[].content[].text 中的  | output[].content[].text 中的  |
4 怎么选
- 客户端只读 Base64(例如只读
inlineData或b64_json):用 #125,或在 #139 请求里加"response_format": "b64_json"。 - 想少传数据、拿链接:用 #139,或在 #125 请求里加
"response_format": "url"。链接 1 小时后失效,请及时下载或转存;下载无需 Key。 - Chat、Responses 不管哪个分组,默认都是 Markdown 图片链接;要 Base64 必须写
"response_format": "b64_json"。 - 4K 单图可达 20 MB 以上,Base64 会再大约三分之一,客户端超时建议不少于 300 秒。
5 流式
两组的图片流式目前都暂停:streamGenerateContent 和 "stream": true 的 Chat 请求立即返回 HTTP 400,不生成、不计费。请改用非流式请求。