在制作演示文稿或前端网页时,我们经常需要在界面里放置透明底插图,直接叠加在现有的背景或排版元素之上,这样整体的视觉质感会更好。

在过去,Codex 自带的生图工具并不支持直接生成透明底图片。我们如果想拿到透明素材,通常需要先让模型生成一张纯绿背景的图片,再通过一段脚本程序把绿幕抠掉,最后才能把透明 PNG 放进项目里使用。

前段时间看到产品负责人提到,现在已经支持通过 ChatGPT 以及 GPT Image 2 的 API 生成透明图像。

对于制作 PPT 或网页这类工作流来说,如果直接去 ChatGPT 网页版生图,我们需要自己手动逐张编写提示词,如果要生成大量配图,反复切换窗口会非常繁琐;而如果能在 Codex 里面直接完成,就可以让 AI 结合上下文代码自动生成提示词并批量产出,整体流程会顺畅得多。

GPT Image 2 支持透明背景的示意页

于是我立刻在 Codex 里做了实测,想看看能否直接在日常开发中稳定输出透明底图片。

但实际测试下来,目前在 Codex 里直接生图依然不够稳定,在多数情况下很难直接达到生产可用的状态。

在 Codex 里生成图片,我们通常是在会话中输入 /image,这个内置 Skill 会指导 Codex 调用底层的生图工具。

我使用不同的提示词测试了多组案例,即使在提示词中极其明确地强调「透明背景」「transparent background」,输出的结果依然不可控:

  • 有时候确实能偶尔生成真正的透明底图片;
  • 但很多时候,它生成出来的是带有灰白棋盘格图案的假透明图;
  • 还有不少时候会直接出现生成失败。

Codex 中提示词要求透明背景时出现棋盘格结果

这种自带灰白棋盘格的图片比绿幕更难处理,因为棋盘格本身包含深浅相间的复杂色块,自动化脚本很难做纯色色度剔除,最后往往不得不人工重新抠图。

之所以出现这种情况,主要有两个核心原因:

第一是模型不受控。Codex 内置的生图工具目前无法由用户指定底层模型,在调用时它有可能使用的是 GPT Image 1.5,而 1.5 版本的生图与遵循能力明显逊色于 GPT Image 2。

第二是参数不支持。目前 Codex 内置的生图工具不支持传入原生的透明背景参数。如果我们直接调用官方 API,可以通过显式传递 background: "transparent" 参数来强制指定透明底,这种基于 API 参数的控制方式非常稳定;但在 Codex 的内置工具里,我们只能把透明要求写进 Prompt,靠模型的概率去猜,因而极容易退化成棋盘格背景。

Codex 内置工具与透明参数控制方式的对比

既然直接调用内置工具不稳定,就很难把它放进全自动的开发流里。结合实际场景,目前有三种切实可行的解决办法:

临时单张:通过 QuickChat 生成后拖拽

如果只是临时需要快速、稳定地生成一两张透明底插图,可以在 Codex 界面里点击打开 QuickChat。

QuickChat 本质上就是桌面端的 ChatGPT 窗口。在这里我们可以直接让模型生成透明底图片,或者先让它写好提示词再调用原生生图能力。

实测在 ChatGPT 窗口里生成的图片确实是真正的透明底 PNG。生成完成后,我们可以直接把图片文件从聊天窗口拖拽到 Codex 的主对话框中。Codex 读取到拖入文件的本地磁盘路径后,就可以直接把它引用到代码或样式中。

QuickChat 生成透明背景角色图并回传 Codex

这种方式的局限在于,如果需要批量生成多张图片,在独立窗口里手动逐张操作依然不够连贯。

批量自动化:调用外部 API 显式传入透明参数

如果既想保留在 Codex 的工作流里让 AI 自动编写提示词批量生成,又需要绝对稳定的透明输出,目前最好的方式是接入外部 API。

我们可以配置一个外部模型代理,直接调用 openai/gpt-image-2 模型,并在请求体中显式传入 background: "transparent" 参数。因为透明背景是由接口参数强制约束的,无论提示词怎样变化,返回的都会是标准的透明底图片。

不过这里需要特别注意上游服务商:必须确认 API 的上游 provider 是 OpenAI 官方通道。如果上游接入的是微软 Azure 或者其他第三方中转,很多时候无法正确识别和传递 background: "transparent" 参数,只有 OpenAI 官方渠道能够稳定生效。

在实际使用时,建议为自己编写一个轻量的专用 Skill(类似于内置的 imaginegpt-image-2),专门用来封装这个外部 API。在需要生成透明素材时,让 Codex 直接调用这个 Skill 即可。

通过外部 API 固定模型、provider 和透明参数

本地兜底:绿幕生图结合自动抠图脚本

如果不想配置外部 API 或购买额外额度,也可以继续利用 Codex 原生的生图能力,配合「固定绿幕 + 自动抠图脚本」的方案。

这也是我在许多动画生成流程以及高频批量处理中最常使用的兜底方案。

具体做法是在脚本或自定义 Skill 里做一层自动化封装:AI 编写完主体画面的提示词之后,程序自动在提示词末尾拼接一段固定规范的纯绿背景约束,让 Codex 生成绿幕底图;图片生成到本地后,程序立即调用抠图脚本将绿色背景剔除,导出干净的透明 PNG。

这样一来,AI 只需要专注于画面主体的构图和细节描述,不需要去碰运气体会透明参数与模型差异,最终同样能稳定拿到可用的透明底素材。

对于不同的需求,我们可以灵活选择:临时获取单张素材可以直接在 QuickChat 里拖拽,批量自动化开发推荐配置 OpenAI 官方渠道的 API 并显式传参,而在纯本地工作流中,绿幕约束加自动抠图脚本依然是最可靠的保底手段。