简短回答
用gpt-image-2,请求里加两个字段就行:
background: "transparent" 是 OpenAI 于 2026-08-21 为 GPT-Image-2 开放的能力(官方标注为 preview)。本站已实测可用,文生图与图片编辑均产出真 alpha 透明。哪些模型能出透明背景
三种调用方式
文生图 /v1/images/generations
图片编辑 /v1/images/edits
给一张普通照片,让模型去掉背景:
mask)与透明背景可以同时用,互不冲突。
Responses 出图工具
image_generation_call 里会回显 "background": "transparent"。
为什么 jpeg 不行
JPEG 格式本身没有 alpha 通道,装不下透明信息。传 output_format: "jpeg" 加 background: "transparent" 会直接报 400:
png(无损,体积大)或 webp(有损可调,体积小,同样支持 alpha)。webp 还能配合 output_compression 压体积。
编辑接口是「重绘去背」,不是精确抠像
这一点要提前对齐预期:/v1/images/edits 传 background: transparent 时,模型是理解画面之后重新画一遍主体,而不是像 Photoshop 那样沿着原图轮廓把主体切下来。所以:
- 主体的姿态、风格、细节会有变化,不是原图像素级保留
- 想尽量贴近原图,用
quality: "high",并在提示词里明确「保持原有构图 / 不要改变主体外观」 - 如果业务要求像素级还原,建议自己用
rembg、PIL、sharp这类工具做抠图,模型出图更适合”生成可复用素材”这类场景
计费
透明背景不额外收费。 相同画质档与尺寸下,background: "transparent" 与 background: "opaque" 消耗的 image token 完全一致,按 gpt-image-2 的正常按量计费规则走。
常见报错
报 400:Transparent background is not supported for JPEG output format
报 400:Transparent background is not supported for JPEG output format
output_format 传了 jpeg。改成 png 或 webp 即可。出图确实是白底,不是透明的
出图确实是白底,不是透明的
先确认三件事:一是
background 字段真的传上去了(编辑接口是 multipart/form-data,字段要用 -F background=transparent 而不是塞进 JSON);二是响应顶层的 background 回显是不是 transparent;三是你用的是不是 gpt-image-2 —— gpt-image-2-all 和 gpt-image-2-vip 没有这个参数,传了会被忽略。怎么确认拿到的图真的有 alpha 通道
怎么确认拿到的图真的有 alpha 通道
用 Python 一行就能验:模式是
RGB 说明没有 alpha 通道;RGBA 但 alpha 全是 255,说明有通道但没镂空。提示词里已经写了 transparent background,为什么还要传参数
提示词里已经写了 transparent background,为什么还要传参数
提示词只是”请求模型这么画”,模型可能画一个看起来像透明的灰白棋盘格,那仍然是不透明像素。真正的 alpha 通道只有
background: "transparent" 参数能保证。相关文档
GPT-Image-2 概览
完整参数、尺寸、画质档与错误码
文生图 API 参考
/v1/images/generations 全部字段图片编辑 API 参考
/v1/images/edits 与多图融合蒙版局部重绘
用 alpha 蒙版标记要改的区域
官转 vs 官逆对比
gpt-image-2 / -all / -vip 怎么选白底图出现脏块怎么办
纯白背景的另一类问题