快速选择
GPT 图像模型
适合已经在使用 OpenAI Images API 的项目。常见模型包括gpt-image-1、dall-e-3、dall-e-2,以模型广场实际上架为准。
OpenAI Python SDK 返回的
b64_json 是 str,不要对它调用 .decode()。保存图片应使用 base64.b64decode(b64_json) 得到二进制后再 wb 写入。若返回 url,直接下载 URL 内容即可。GPT 图像参数
- gpt-image-1
- dall-e-3
- dall-e-2
Gemini / Imagen 图像模型
适合已经使用 Google GenAI SDK 的项目。图像能力分 两条接入路径,不要混用:Imagen 文生图
Gemini 图片生成模型
以gemini-3.1-flash-image-preview 为例,使用 generate_content 并开启图片输出:
安装依赖:
pip install google-genai pillow。保存图片时 先调用 part.as_image(),不要先 print(part.text)。若打印内容是一长串 base64 或 ,说明图片在 text 里,需用正则提取后 base64.b64decode 保存。生图建议 response_modalities=["IMAGE"],减少纯文本 part 干扰。Gemini / Imagen 参数
- Imagen 4
- Imagen 3
- Gemini 图片生成
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 API 和
image_generation 内置工具(以模型广场为准)。previous_response_id 用于串联上下文;若只想强制改图,可在 tool 里加 "action": "edit",强制新图用 "action": "generate"。Gemini 多轮示例使用 GenAI Chat 会话。普通 /v1/images/generations 不会自动记住上一轮图片。Qwen / 豆包 / 其他热门图像模型
这类模型通常有两种接入方式:一种是平台适配后的 OpenAI 兼容 Images API,另一种是厂商原生 SDK 或原生参数。建议先用 curl 跑通,再根据模型广场说明选择 SDK。兼容图像模型参数
Qwen 图像模型
Qwen 图像模型
豆包 / Seedream 图像模型
豆包 / Seedream 图像模型
其他 OpenAI 兼容图像模型
其他 OpenAI 兼容图像模型
常见特殊参数
参数填写原则
- 生成任务先只传
model、prompt、size、n跑通,再增加特殊参数。 - 同一厂商不同模型版本的可选值可能不同,尤其是
size、quality、aspect_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 超时,重任务优先使用异步任务。
- 生成被拦截:调整提示词,避免违反内容安全策略。
- 费用不确定:不同图片模型可能按次或按规格计费,见 计费与用量。
