在 2026 年 8 月 19 日至 9 月 18 日期间,我们处理的 GPT Image 2 请求中,大约每 23 个请求中就有一个返回 HTTP 400 错误。在上游安全系统渲染出任何像素之前,这些请求就被拒绝了,而对于编写这些提示词的用户来说,大多数提示词看起来并无害。本 GPT 图像审核调优指南基于 TokenLab 图像 API 30 天的生产数据,以及 OpenAI 的官方图像生成文档。触发因素高度集中,解决方法是重写提示词而非重试。文中引用的数字均为平台汇总统计数据;未复现任何客户内容。
关键要点
- 在 30 天的时间窗口内,TokenLab 上约 4.3% 的 GPT Image 任务(大约每 23 个中就有 1 个)被上游安全系统拒绝。
- 参考图像会使拦截率增加一倍以上:参考图像任务为 8.4%,而纯文本生成任务仅为 3.7%。
- 我们观察到最强的组合是“未成年人相关词汇”加上“照片级真实感用语”:拦截率约为 9.5%,是基准值的 2.2 倍。
- 在该窗口内,重试未更改的提示词从未成功恢复过被拦截的请求,且被拦截的任务会自动退款。
- moderation="low" 可降低对明显良性、风格化作品的审核严格度;但它绝不会禁用非法类别的过滤。
错误的本质
GPT Image 2 会根据提供商的内容政策检查每一个提示词、每一个输入图像以及每一个生成的图像。当过滤器触发时,请求会以 400 错误失败,稳定的判别标识是错误代码:
{
"error": {
"type": "image_generation_user_error",
"code": "moderation_blocked",
"moderation_details": {
"moderation_stage": "input",
"categories": ["sexual"]
}
}
}
根据官方文档,moderation_details 是可选的,且刻意保持粗略。moderation_stage 会告诉你是输入内容(input)还是生成的图像(output)触发了拦截。categories 包含广泛的公共标签,如 harassment(骚扰)、self-harm(自残)、sexual(性)或 violence(暴力)。它从不暴露内部的分类器评分。
在 TokenLab 上,同一事件以两种形式出现:
- 同步调用 (
/v1/images/generations,/v1/images/edits) 会立即返回 HTTP 400。 - 异步任务 会转为
failed状态,并显示消息“The request was rejected by the safety system.”(请求被安全系统拒绝)。
无论哪种方式,两个操作事实都很重要。对于相同的内容,审核拦截是确定性的:重试未更改的请求基本上永远不会成功。此外,在 TokenLab 上,审核拦截的任务被视为失败任务,因此预扣的配额会自动全额退还。你无需为被拦截的生成任务付费。
30 天的 GPT 图像审核调优数据
在 2026 年 8 月 19 日至 9 月 18 日期间,TokenLab 上约 4.3% 的 GPT Image 任务(大约每 23 个中就有 1 个)被上游安全系统拒绝。被拦截的请求分布并不均匀,而是集中在几种模式周围:
| 信号 | 被拦截任务 | 所有其他任务 | 解读 |
|---|---|---|---|
| 提示词提及未成年人 (child, kid, baby, "7-year-old", ...) | 79% | 33% | 最强的单一预测指标 |
| 照片级真实感渲染用语 ("photorealistic", "real human", "live-action") | 77% | 57% | 放大器,尤其是在涉及未成年人时 |
| 性相关描述词 (nude, sexy, lingerie, 身体部位相关词汇) | 43% | 17% | 强预测指标 |
| 通用动作/暴力词汇 (battle, sword, explosion) | ~50% | ~50% | 本身无预测价值 |
来自同一窗口的另外三个发现:
- 参考图像增加了风险。 例如,带有输入/参考图像的任务拦截率为 8.4%,而纯文本生成任务为 3.7%,高出一倍多。图像的审核与文本一样严格。
- 长提示词更容易失败。 被拦截的提示词平均约为 3,600 个字符,超过一半超过了 2,000 个字符。每一个额外的从句都会增加分类器的接触面。
- 重试从未成功。 窗口内每一个被拦截的任务最终都处于失败状态;没有一个通过重新提交相同的输入而成功。所有这些任务都已自动退款。
我们观察到最常被拦截的工作流是:未成年人的照片级真实感角色设计表:“选角参考”风格的提示词,描述一个带有超真实渲染、精确身体比例和服装说明的儿童角色。将未成年人相关词汇与照片级真实感渲染相结合的提示词,拦截率高达 ~9.5%,是基准率的 2.2 倍。
纵观被拦截的群体,几乎所有的拒绝都属于以下五类之一:
- 未成年人的照片级真实感描绘。 被渲染为“在摄影棚拍摄的真实人类”、“超写实”、“非 CGI,非插画”的儿童或婴儿角色。未成年人与真实感的结合是图像审核中最严密的边界,即使意图是无辜的角色设计表,它也会触发拦截。
- 围绕未成年人的服装或身体部位用语。 诸如“未穿衣服的锁骨以上特写”(本意是简单的肖像裁剪)或儿童角色的详细全身身体比例测量等短语。单独看是无辜的,但汇总起来会被解读为对未成年人的身体部位描述。
- 成人角色的性化描述。 关注姿势、皮肤和内衣的词汇(“内衣”、“裸体”、“诱惑姿势”),即使在其他方面是 SFW(适合工作场所)的构图。
- 图形化的血腥解剖。 描述腐烂的肉体、暴露的器官、开放性伤口或寄生虫等解剖细节的恐怖和暗黑奇幻提示词。
- 真实人物的参考图像。 未成年人的真实照片、皮肤暴露较多的图像,或作为编辑输入使用的类似名人的面孔。
两个放大器使上述所有情况更容易触发拦截:非常长的提示词(文本越多,出现坏组合的机会就越多)和否定词列表。像“no nudity, no sexual content, no gore”这样的一行字并不能让分类器放心。它重复了你想要避免的概念,并将它们添加到了输入中。描述你想要的,而不是你不想要的。
GPT 图像审核调优手册
这些重写操作对应上述数据。(示例仅供说明,非来自客户流量。)
1. 让未成年人远离照片级真实感
如果你的故事、漫画或游戏需要儿童角色,请以清晰的风格化媒介进行渲染:
修改前: "Ultra-photorealistic casting photo of a 7-year-old girl, real human
child photographed in a studio, detailed body proportions, collarbone-up
unclothed facial close-up ..."
修改后: "Storybook watercolor illustration of a young girl in Ming-dynasty
dress, shoulder-up portrait, round face, twin hair buns tied with cloth
ribbons, gentle expression, plain white background"
更改媒介(水彩、2D 动画、3D 卡通、绘本风格)。放弃“真实人类/摄影”的框架,完全跳过身体测量。如果必须描述服装,描述角色穿着什么(“穿着圆领布夹克”),而不是他们没穿什么。
2. 删除否定词列表
用肯定性措辞替换“no nudity, no blood, no text, no watermark”:例如“fully clothed”、“clean composition”、“plain background”。仅保留不命名受限类别的否定词。“No watermark”是可以的;“no nudity”则毫无帮助。
3. 精简提示词
如果你生成多面板角色表,不要在每个面板描述中重复相同的风格块。一个共享的风格句子加上每个面板的具体细节,可以让你保持在触发组合不太可能发生的接触面阈值之下。
4. 用氛围而非解剖结构来化解血腥感
修改前: "her body rotting, exposed skull, flesh, pustules and parasites ..."
修改后: "one half serene and maternal, the other half dissolving into shadow
and tidal mist, decay suggested through silhouette and lighting rather than
anatomical detail"
当恐怖感通过情绪、光影和轮廓而非组织层面的描述来传达时,暗黑奇幻内容可以通过审核。
5. 中和成人内容相关性
对于成人角色,将关注身体和内衣的词汇替换为时尚和情绪语言。“Evening gown”(晚礼服)代替“lingerie”(内衣),“confident contrapposto”(自信的对立式平衡姿势)代替“seductive pose”(诱惑姿势)。
6. 将参考图像视为提示词的一部分
图像输入也会被审核,在我们的数据中,它们使拦截率增加了一倍以上。像处理提示词文本一样处理它们:
- 优先为未成年人使用风格化参考。 儿童角色的插画或 3D 渲染作为输入比儿童的真实照片安全得多,而且通常在角色一致性方面效果同样好。
- 裁剪到重点。 如果你需要面部以保持一致性,请上传面部裁剪图,而不是全身海滩照。更少的皮肤和更少的背景意味着更小的分类器接触面。
- 移除覆盖的文本和水印。 参考图像上的标题、模因文本和水印字符串会被读取为输入文本,并可能携带你遗忘的触发词。
- 避免使用真实名人的肖像,无论是作为参考图像还是作为“in the style of”提示词文本。
GPT Image 编辑 API 支持说明涵盖了多图像编辑和异步轮询背后的请求形式。
moderation 参数
根据官方文档,GPT Image 模型接受一个带有两个值的 moderation 参数:
auto(默认): 标准过滤,限制某些类别的潜在年龄不当内容。low: 较宽松的过滤。
TokenLab 在 /v1/images/generations 和 /v1/images/edits 上都会传递此参数:
curl https://api.tokenlab.sh/v1/images/generations \\
-H "Authorization: Bearer \$TOKENLAB_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{
"model": "gpt-image-2",
"prompt": "Storybook watercolor illustration of a young girl in Ming-dynasty dress, shoulder-up portrait",
"size": "1024x1024",
"moderation": "low"
}'
当你的内容明显是良性的但一直被标记时,请使用 low。风格化插画作品是典型案例。两个警告:low 并不等于 off(非法类别如 CSAM 始终会被拦截),而且它是一个调节旋钮,而不是保证。先修复提示词,然后再考虑使用该参数。
代码中的拦截处理
官方指导很明确:image_generation_user_error 失败是用户可纠正的,在不更改请求的情况下不应重试。我们的数据也证实了这一点:在 30 天的窗口内,没有一个被拦截的任务通过重试未更改的请求而恢复。正确的处理方式:
- 根据
error.code进行区分,而不是消息文本。只有moderation_blocked(以及一般的image_generation_user_error)意味着“修复输入”。速率限制和 5xx 错误仍然是可以重试的。 - 读取 stage。
moderation_stage: "input"意味着重写提示词或更换参考图像;"output"意味着生成的图像本身被标记;使用稍微调整过、降低风险的提示词重新生成通常可以解决问题。 - 保持给最终用户的消息通用(“此请求因内容安全要求无法完成”),并记录
moderation_details和请求 ID 以供你自己调试和支持。 - 不要循环。 每个唯一输入在一次审核拦截后应断路;重新提交相同的内容会浪费延迟和调试时间,即使 TokenLab 会退款。
检查清单
| 你的情况 | 可能的触发因素 | 修复方法 |
|---|---|---|
| 儿童角色设计表 | 未成年人 × 照片级真实感 | 风格化媒介,无身体测量,肯定性的服装用语 |
| 照片级真实感成人肖像被拦截 | 性化描述词 | 时尚/情绪用语;考虑 moderation="low" |
| 暗黑奇幻/恐怖生物 | 血腥解剖 | 氛围和轮廓而非组织细节 |
| 带参考照片的编辑被拦截 | 真实人物/皮肤暴露较多的输入图像 | 裁剪更紧凑,使用风格化参考,去除覆盖文本 |
| 长篇多面板提示词被拦截 | 提示词接触面 + 否定词列表 | 删除重复的样板文字,删除否定词列表 |
| 良性风格化作品仍被标记 | 分类器保守性 | moderation="low" |
局限性。 以上统计数据来自 TokenLab 生产流量的 30 天汇总,它们描述的是趋势而非保证。审核分类器会随时间变化,同一个提示词在上游更新后可能会被不同地对待。重写示例是说明性模板,而非客户数据。在批量运行之前,请务必通过小规模测试验证当前行为。
常见问题解答
我需要为被拦截的生成任务付费吗?
不需要。在 TokenLab 上,审核拦截的任务会失败,预扣的配额会自动全额退还。
重试相同的提示词有帮助吗?
没有。在 30 天的数据中,没有一个被拦截的任务在未更改的情况下重试成功。请先更改输入。
moderation="low" 会禁用安全过滤吗?
不会。它只是降低了限制性;非法内容类别无论如何都会被拦截。
参考图像真的会被审核吗?
是的。提示词和每一个输入图像都会被过滤。在我们的数据中,带有参考图像的任务拦截率是纯文本任务的两倍多。
我能看到具体是哪条规则触发了吗?
只能在粗略的 moderation_details.categories 级别看到,且仅在上游包含该信息时。提供商刻意不暴露分类器内部细节。
要尝试这些模型,请浏览 图像模型目录,查看 异步作业和轮询指南 以了解任务生命周期处理,并查看 TokenLab 文档 以获取当前的请求格式。
在扩展工作流之前,请创建一个 API 密钥并运行一个小规模的探测批次。
来源
- OpenAI image generation documentation资料更新于 2026-09-18
- TokenLab production traffic aggregate (Aug 19 - Sep 18, 2026)资料更新于 2026-09-18
- TokenLab API documentation资料更新于 2026-09-18
