一个头像应用、一个AI绘画工具、一个广告素材生成器,或者一个会画画的聊天机器人——只要产品会生成图片,每一张输出都是你发布的内容。在用户看到之前先过一遍检查,一张坏图就变成一次重试,而不是社交媒体上的一张截图。

打开网易新闻 查看精彩图片

问题在于,提示词过滤和模型自带的检查器都拦不住。无害的提示词照样可能产出不安全的图像,模型会自己补上没人要求的细节;用户则用拼写错误、其他语言、图生图上传绕开词表。内置检查器也太粗:diffusers 里的 Stable Diffusion 安全检查器对每张图只返回一个布尔值(未加载时返回 None),而管线本身接受 safety_checker=None。一个“是/否”标记分不清酒精和裸露。托管服务商按自己的规则审核,你一换供应商,规则就变了。

检查该放在哪一步?顺序是:提示词过滤、生成、审核字节、最后才进存储、CDN 或客户端。绝不能先传到公开存储桶再从 URL 审核——检查一旦失败,图已经公开了。

第一步:审核生成的字节

把生成的图片字节直接发给审核接口,拿回标签列表。一张生成的男人抽烟照片,接口返回 Smoking,归在 Drugs & Tobacco Paraphernalia & Use 之下,再往上属于 Drugs & Tobacco,置信度都是 97.1%。策略要盯住 ParentName 为空的那一层,也就是顶层类别:一张生成的卷烟图回来时挂在子标签 Pills 下,但它的顶层类别仍是 Drugs & Tobacco,置信度 99.7%。

第二步:给生成内容定一套策略

按顶层类别逐条配置动作和最低置信度,没列出的类别视为放行:

  • Explicit:拦截,阈值 50
  • Non-Explicit Nudity of Intimate parts and Kissing:拦截,阈值 50
  • Violence:拦截,阈值 60
  • Visually Disturbing:拦截,阈值 60
  • Hate Symbols:拦截,阈值 40
  • Drugs & Tobacco:拦截,阈值 60
  • Swimwear or Underwear:转人工复核,阈值 60
  • Gambling:转人工复核,阈值 50
  • Rude Gestures:转人工复核,阈值 60

阈值按类别分别设定,一张表就能覆盖生成器产出的所有风格:一张插画风格的赌场图被识别为 Gambling,送进了复核。面向成人(18+)的艺术平台会把其中几行反过来——裸露和泳装放行——但暴力和仇恨符号仍然拦截。

第三步:带重试和审计日志的安全生成

把审核包进生成流程:每次尝试换一个随机种子重新生成,最多三次。判定为拦截,就丢弃这张图、换种子重来;判定为复核,就扣下等人工处理;审核接口报错,按失败关闭处理,也就是不放行。日志只记决策和哈希,不存图片本身。同一个用户反复出现 refused 结果,说明是在试探,对该账号限流或转人工。

延迟方面,一张 140 KB 的 JPEG 端到端约 0.8 秒,一张 1.2 MB 的 PNG 约 1.3 秒。审核的必须是你真正要发布的那份字节。

规则正在收紧

Google Play 的 AI 生成内容政策要求防止受限内容,并提供应用内举报或标记功能。欧盟《人工智能法案》第 50 条要求,从 2026 年 8 月 2 日起对合成图像做机器可读标记。

上线前还有几件事值得做:用自己的预设校准,每种风格跑几百张输出过一遍接口,再调各类别阈值;先严后松,把边界类别先送去复核;扩展到视频时,生成片段对采样帧套用同一套策略。