Nano Banana 图片生成
使用文本生成图片,或提供参考图进行编辑、风格转换和多图合成。平台提供同步图片入口、异步任务入口和 Gemini 原生入口。模型与接口
请求中使用平台模型名:gemini-nano-banana-2.1、nano-banana-2 或 nano-banana-pro。可调用的模型以你的 API Key 查询 /v1/models 的结果为准。
参考图编辑同样使用
/v1/images/generations 的 image 字段。本页的 Gemini 图片入口不支持 /v1/images/edits 或 multipart 请求。
本文示例使用 https://model-api.skyengine.com.cn。使用公司平台入口时,可将地址替换为 https://model-api.skyengine.com.cn,并使用该入口对应的 API Key。
同步文生图
以下示例使用 Nano Banana 2.1,生成一张 1K 正方形图片。参考图编辑与多图合成
image 可使用一张图片的字符串,或多张图片的字符串数组。支持公开可访问的 HTTPS URL、data:image/png;base64,... 形式的 Data URL,以及图片的裸 base64。使用 Data URL 可以明确图片格式。
prompt 中描述需要保留和改变的内容,不使用 mask。
参数矩阵
下表说明同步与异步图片入口的当前参数行为。原生generateContent 使用后文的 Gemini 参数结构。
比例与分辨率
常用比例:1:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9、21:9。
Nano Banana 2 和 2.1 还支持 1:4、4:1、1:8、8:1。Pro 使用常用比例。
ratio 控制画面形状,size 控制分辨率档位。例如 ratio="16:9" 与 size="2K" 可以组合使用。实际像素宽高由模型按比例和档位确定,不能把 2K 理解为每条边都等于 2048 像素。
不要在 Gemini 图片请求中用
size="1024x1024" 指定像素。当前平台仅识别分辨率档位,像素尺寸、auto 和其他未识别的值会被忽略,由模型选择默认档位。新模型 2.1 不支持 512;需要较小图片时请使用 nano-banana-2。思考与搜索
当前图片入口显式设置思考强度时,建议使用thinking_level="high",或省略此参数保留模型默认行为。Nano Banana 2.1 默认使用 medium;Nano Banana 2 默认使用 minimal。high 可能增加生成耗时和思考用量,不保证每次请求都会提高图片质量。
此图片入口暂不提供显式 minimal 或 medium 的准确映射:minimal / low 会作为 LOW 发送,medium 不会覆盖模型默认值。请勿用这些值来控制新模型的强度。
image_search=true 让模型可以参考 Google Search 的搜索结果,不保证每次请求都会实际搜索,也不等于调用专用图片搜索。搜索是否可用取决于模型和接入资源。
响应与用量
同步响应示例,图片内容以占位字符串展示,不能直接解码此占位值:
普通文本输出量为
output_tokens - output_tokens_details.image_tokens - output_tokens_details.text_tokens。上例分别是图片 1120、普通文本 5、思考 7 token。
计费时,普通文本输入为 60 - 20 = 40 token,普通图片输入为 40 - 10 = 30 token;文本缓存 20 和图片缓存 10 分别按缓存价格计算,不会再次按普通输入计费。缓存命中由实际 usage 确认,重复发送提示词不保证命中。若上游只提供缓存总量,平台会保留总量并在输入数量范围内补齐拆分,不能据此判断缓存的精确来源。
不同模型及分辨率的图片 token 量可能不同;以上数字仅演示字段和计算关系,不代表固定单张价格。实际单价使用平台模型页面展示的价格。
异步调用
将请求路径改为/v1/images/generations/async,图片参数保持一致。提交后用 GET /v1/images/generations/{task_id} 查询状态;任务完成后从 data[].url 下载图片。
完整提交、轮询和保存示例见异步图片生成。Gemini 单张生成的 n=1 限制和分辨率要求同样适用。
Gemini 原生入口
需要原生消息结构或多轮上下文时,使用generateContent。原生响应与同步图片入口的响应结构不同,不能从原生响应读取 data[].b64_json。
candidates[].content.parts[].inlineData.data,格式由 inlineData.mimeType 给出。选取最终图片时排除 thought=true 的部分;不要假定第一段内容一定是图片。
原生参考图使用 parts[].inlineData:mimeType 填图片 MIME 类型,data 填裸 base64。多轮编辑时通过 contents 提交完整历史,保留模型返回的图片和其他必要内容,不仅发送上一轮的文字描述。
常见问题
- HTTP 400:检查模型名、非空 prompt、
n=1、未启用流式,以及模型支持的分辨率和比例。不要给 2.1 传512。 - HTTP 401 / 403:检查 API Key 和目标入口是否匹配、Key 是否有权限。
- HTTP 501「未实现」:当前接入资源尚未支持该入口,请联系平台支持;更换
size或重复请求不能解决。 - 没有图片或缺少 usage:不能作为成功生图处理;平台会返回错误。安全限制或仅返回文字也可能导致没有图片。
- 请求耗时较长:复杂构图、参考图、高分辨率或高思考强度可能增加耗时。同步示例设置了 300 秒客户端超时;需要持续获取结果时使用异步接口,避免盲目重复提交造成多次生成。

