Skip to main content
图像能力没有文本对话那样统一的事实标准。不同厂商、不同模型版本的参数差异很大,所以本页按 模型系列 写接入方式:每个模型系列只放适合它的 curl 和 Python SDK。
model、尺寸、质量、比例等参数以控制台 模型广场 实际展示为准。下面示例用于说明接入方式,复制到生产前请先核对模型版本。

快速选择

GPT 图像模型

适合已经在使用 OpenAI Images API 的项目。常见模型包括 gpt-image-1dall-e-3dall-e-2,以模型广场实际上架为准。
OpenAI Python SDK 返回的 b64_jsonstr,不要对它调用 .decode()。保存图片应使用 base64.b64decode(b64_json) 得到二进制后再 wb 写入。若返回 url,直接下载 URL 内容即可。

GPT 图像参数

Gemini / Imagen 图像模型

适合已经使用 Google GenAI SDK 的项目。图像能力分 两条接入路径,不要混用:
gemini-3.1-flash-image-preview 等 Gemini 图片模型 不能 使用 client.models.generate_images()。那是 Imagen 专用接口,换模型名也不会生效。

Imagen 文生图

Gemini 图片生成模型

gemini-3.1-flash-image-preview 为例,使用 generate_content 并开启图片输出:
安装依赖:pip install google-genai pillow。保存图片时 先调用 part.as_image(),不要先 print(part.text)。若打印内容是一长串 base64 或 ![image](data:image/...),说明图片在 text 里,需用正则提取后 base64.b64decode 保存。生图建议 response_modalities=["IMAGE"],减少纯文本 part 干扰。

Gemini / Imagen 参数

Gemini 特殊参数

多轮图像创作

OpenAI 有两条生图路径,不要混用:
为什么多轮要用 tools 这是 OpenAI Responses API 的官方设计:图片生成是 hosted built-in tool(平台托管的内置工具),不是你自己实现的 function。gpt-4.1-mini 负责理解意图并决定是否调用;真正画图在 tool 内完成。内置 tool 可在 tools 数组里指定底层图像模型(如 model: "gpt-image-1"),但不能换成任意非 OpenAI 图像模型——若模型广场没有对应 gpt-image-*,应改用 client.images.generate(model="你上架的模型") 或自定义 function 由你的服务转发。每一轮都要重新传 tools(不会自动继承)。
OpenAI 多轮改图需模型支持 Responses APIimage_generation 内置工具(以模型广场为准)。previous_response_id 用于串联上下文;若只想强制改图,可在 tool 里加 "action": "edit",强制新图用 "action": "generate"。Gemini 多轮示例使用 GenAI Chat 会话。普通 /v1/images/generations 不会自动记住上一轮图片。

Qwen / 豆包 / 其他热门图像模型

这类模型通常有两种接入方式:一种是平台适配后的 OpenAI 兼容 Images API,另一种是厂商原生 SDK 或原生参数。建议先用 curl 跑通,再根据模型广场说明选择 SDK。

兼容图像模型参数

常见特殊参数

参数填写原则

  • 生成任务先只传 modelpromptsizen 跑通,再增加特殊参数。
  • 同一厂商不同模型版本的可选值可能不同,尤其是 sizequalityaspect_ratio
  • 参数报错时,不要猜字段名;优先查看模型广场,或根据错误提示调整。
  • 图片 URL 返回可能有有效期,生产环境建议及时转存。
  • 需要基于已有图片修改时,不要用本文的文生图接口,改看 图像编辑

异步图像任务

部分图像或高耗时模型可能返回 task_id,需要轮询任务状态,而不是等待同步响应。此类模型以模型广场说明为准,处理思路与 视频生成 类似。

常见问题

  • Gemini 图片模型调用 generate_images 失败:gemini-3.1-flash-image-preview 等模型应使用 generate_content 或 Chat,并用 part.as_image().save() 保存;generate_images 仅适用于 imagen-* 模型。
  • 只打印出一长串编码、没有保存图片:先调用 part.as_image() 保存,不要先 print(part.text);若图片在 text 的 data:image/...;base64,... 里,需正则提取后解码保存。
  • 保存的 PNG 为 0 KB 或报错 'str' object has no attribute 'decode'b64_json 已是 base64 字符串,应使用 base64.b64decode(item.b64_json) 解码后再写入文件,不要对 b64_json 调用 .decode(),也不要把 base64 文本直接当二进制写入。
  • 返回图片 URL 无法访问:检查 URL 有效期,或使用 b64_json 返回格式。
  • 尺寸不支持:换成模型广场推荐尺寸。
  • 请求很久后失败:看 524 超时,重任务优先使用异步任务。
  • 生成被拦截:调整提示词,避免违反内容安全策略。
  • 费用不确定:不同图片模型可能按次或按规格计费,见 计费与用量