跳到主要内容

nanobanana 分组

nanobanana 分组支持文本生成图片和参考图编辑。创建令牌时,请选择控制台中的 nanobanana 分组。

创建令牌时,建议将 模型可用列表 留空。填写后,若列表中不包含当前使用的模型,请求可能返回 403。

提交后回到令牌列表,在目标令牌的密钥栏直接复制,再将复制的完整 API Key 替换示例中的 YOUR_API_KEY。

令牌列表中的复制密钥入口

可用模型​

当前令牌通过 GET /v1/models 返回以下模型:

  • gemini-2.5-flash-image
  • gemini-2.5-flash-image-preview
  • gemini-3.1-flash-image
  • gemini-3.1-flash-image-preview
  • gemini-3-pro-image-preview

模型列表可能随上游调整,请以当前令牌调用 GET /v1/models 的返回结果为准。

接口说明​

  • 调用接口:POST https://img-api.apinebula.ai/v1beta/models/{model}:generateContent
  • 支持能力:文本生成图片、参考图编辑
  • 图片返回位置:candidates[0].content.parts[].inlineData

文本生成图片​

通过 generationConfig.imageConfig 指定图片比例和分辨率。

Gemini 原生格式​

接口​

POST /v1beta/models/gemini-3.1-flash-image:generateContent
curl https://img-api.apinebula.ai/v1beta/models/gemini-3.1-flash-image:generateContent \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"role": "user",
"parts": [
{
"text": "生成一座漂浮在日出云海上方的天文研究岛微缩模型,采用高细节等距视角和手工黏土 3D 风格。岛屿中央有一座青绿色穹顶观测站,望远镜观测口处于打开状态;岛上还有蜿蜒的浅色石板路、一顶小型焦橙色科考帐篷、三块深色太阳能板、微缩松树、裸露的岩层,以及一道流入云海的狭长瀑布。使用柔和的手工黏土纹理、具有电影感的桃色与淡紫色晨光,呈现干净精致的概念艺术效果,宽幅 16:9 构图。不要人物、文字、标志或水印。"
}
]
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "1K"
}
}
}'

响应示例​

{
"candidates": [
{
"content": {
"parts": [
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "/9j/4AAQSkZJRgABAQEBLAEs..."
},
"thoughtSignature": "<签名数据,已省略>"
}
],
"role": "model"
},
"finishReason": "STOP"
}
],
"usageMetadata": {
"promptTokenCount": 12,
"candidatesTokenCount": 1584,
"totalTokenCount": 1596
},
"modelVersion": "gemini-3.1-flash-image",
"responseId": "<动态响应 ID>"
}

图片 Base64 位于 candidates[0].content.parts[].inlineData.data,mimeType 表示返回图片格式。

原生图片参数​

以下参数适用于 Gemini 原生 generateContent 格式,示例使用 gemini-3.1-flash-image。

参数是否必填说明
contents是对话内容数组。生图时放入文字提示词;改图时在同一个 parts 数组中放入文字和参考图。
contents[].parts[].text生图必填中文或英文提示词。
contents[].parts[].inlineData改图必填参考图对象,包含图片 MIME 类型和 Base64 数据。
contents[].parts[].inlineData.mimeType改图必填参考图类型,例如 image/jpeg 或 image/png。
contents[].parts[].inlineData.data改图必填不带 Data URI 前缀的 Base64 图片数据。
generationConfig.responseModalities建议填写只需要图片时填 ["IMAGE"];需要同时返回文字和图片时填 ["TEXT", "IMAGE"]。
generationConfig.imageConfig.aspectRatio否支持 1:1、1:4、1:8、2:3、3:2、3:4、4:1、4:3、4:5、5:4、8:1、9:16、16:9、21:9。
generationConfig.imageConfig.imageSize否可填写 1K、2K 或 4K;具体模型能使用哪些值,以当前模型广场和接口返回为准。
高分辨率响应

Gemini 原生格式会在响应 JSON 中直接返回 Base64 图片。2K、4K 响应体较大,请适当提高客户端超时时间,并避免记录完整响应正文。

Gemini 原生格式直接在 inlineData.data 中返回 Base64 图片数据,inlineData.mimeType 表示实际图片格式。

示例效果​

nanobanana 浮空天文岛生图示例

参考图编辑​

参考图编辑需要把文字指令与参考图放在同一条用户消息中。下面使用生成结果作为编辑目标,只替换观测站和帐篷,其余内容保持不变。

Gemini 原生格式​

import base64
from pathlib import Path

import requests

source = base64.b64encode(Path("source.jpg").read_bytes()).decode()
prompt = (
"编辑这张参考图,只进行两处替换:仅将青绿色穹顶观测站替换为铜框玻璃"
"植物温室,保持相同的占地范围、高度和中心位置;仅将焦橙色科考帐篷替换为"
"一辆紧凑的钴蓝色六轮科研车,保持占用区域一致。严格保留浮空岛轮廓、等距"
"视角、浅色石板路、全部三块太阳能板、松树、岩层、瀑布、周围云海、日出"
"光线、手工黏土风格、画面构图以及其他所有物体。不要人物、文字、标志或水印。"
)

resp = requests.post(
"https://img-api.apinebula.ai/v1beta/models/gemini-3.1-flash-image:generateContent",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
json={
"contents": [
{
"role": "user",
"parts": [
{"text": prompt},
{"inlineData": {"mimeType": "image/jpeg", "data": source}},
],
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {"aspectRatio": "16:9", "imageSize": "1K"},
},
},
timeout=300,
)
resp.raise_for_status()

parts = resp.json()["candidates"][0]["content"]["parts"]
image = next(part["inlineData"] for part in parts if "inlineData" in part)
Path("banana-edited.jpg").write_bytes(base64.b64decode(image["data"]))

响应示例​

{
"candidates": [
{
"content": {
"parts": [
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "/9j/4AAQSkZJRgABAQEBLAEs..."
},
"thoughtSignature": "<签名数据,已省略>"
}
],
"role": "model"
},
"finishReason": "STOP"
}
],
"usageMetadata": {
"promptTokenCount": 267,
"candidatesTokenCount": 1434,
"totalTokenCount": 1701
},
"modelVersion": "gemini-3.1-flash-image",
"responseId": "<动态响应 ID>"
}

参考图编辑与文本生图使用相同的响应结构,图片同样位于 inlineData。

示例效果​

参考图nanobanana 改图结果
nanobanana 浮空天文岛参考图nanobanana 浮空天文岛改图结果

当前限制​

  • Base64 图片应解码后及时保存;不要把完整响应长期放在数据库或日志中。
  • 图片比例、文字准确性和参考图一致性由上游模型决定,重要任务请检查实际结果。
  • 预览模型可能调整或下线,生产环境建议先调用 GET /v1/models 确认当前模型名。

继续阅读​

微信扫码联系我们