gemini-3.1-flash-image-preview 和 gemini-3-pro-image-preview 支持文生图和参考图生成。先调用 GET /v1/models 确认当前 API Key 可用的模型 ID。
新接入推荐创建异步图片任务:
id,再调用 GET /v1/images/generations/jobs/{job_id} 轮询结果。需要在同一个请求里等待生成完成的客户端,也可以使用同步接口 POST /v1/images/generations;生成可能耗时较长,请设置足够的客户端超时。
这两个接口使用 OpenAI Images 兼容的请求体(model、prompt 等),不是 Chat Completions 的 messages。如果使用 Gemini 原生协议,则调用 /v1beta/models/{model}:generateContent,请求和响应结构另有区别。
参数速查
不要把
extra_body.google.image_config.aspect_ratio 当作此图片接口的必填位置;这里直接传顶层 aspect_ratio 和 image_size。size 不是这两个模型指定图片档位的推荐字段。
模型 ID
不要把
nano_banana_2-4K 与这两个 Gemini Preview 模型混用;前者是独立的模型 ID,以 /v1/models 实际返回值为准。
文生图
gemini-3-pro-image-preview 使用相同的接口和请求结构,只需替换 model。需要 4K 时可将 image_size 改为 4K,并按实际返回的图片尺寸验证结果。
参考图生成
参考图使用公网可访问、在任务执行期间不会过期的 OSS/CDN URL。单图也可以作为一个元素放入image 数组。
prompt 中写明每张图的用途:
image_url 内容块直接放进图片接口请求体。
读取结果
创建任务会返回任务id 和状态。使用同一 API Key 查询:
queued 和 running 表示继续等待;succeeded 时从 data 读取图片;failed 时读取 error.message。例如:
2-3 秒轮询一次,之后可放慢到每 5-10 秒一次。客户端临时断线时保存任务 ID,恢复后继续查询,不要重新提交相同任务。同步接口成功时直接从响应的 data 数组读取图片,不返回任务状态供轮询。
response_format: "b64_json" 时读取 data[].b64_json;不同渠道可能只能返回 URL,接入时根据实际字段处理。长期保存图片请复制到自己的对象存储。
画幅与尺寸
图片接口在顶层传aspect_ratio 和 image_size,例如:
prompt 里描述横版或竖版用途。宽高比是生成要求,不是严格的像素尺寸保证;依赖精确比例时应检查最终图片宽高。部分模型或渠道对参数的支持可能不同,遇到方图或尺寸不符时,先检查模型 ID、渠道和请求字段。
常见问题
请求体用了messages 或结果里找不到 choices
图片生成接口使用 prompt 和可选的 image URL 数组;成功结果在 data,不在 choices[0].message.content。
提交后没有立即得到图片
异步接口先返回任务 ID。轮询 /v1/images/generations/jobs/{job_id},直到状态为 succeeded 或 failed。
传了比例但没有生效
确认传的是顶层 aspect_ratio,并检查模型与实际图片尺寸。image_size 指定档位,不能替代画幅参数。