《人工智能生成合成内容标识办法》2025 年 9 月 1 日施行。做过落地的都知道,这条政策真正的难点不是”要不要加标识”,而是三个具体问题:
- 标识加在哪——文件里,还是数据库里?
- 用户导出、下载、转发之后,标识还在不在?
- 什么情况下可以不标?
下面按这三个问题讲。
一、先分清显式和隐式,它们不是一回事
办法里其实是两套要求:
| 显式标识 | 隐式标识 | |
|---|---|---|
| 依据 | 第四条 | 第五条 |
| 是什么 | 用户能感知到的标识 | 写在文件元数据里的标识 |
| 要求强度 | 应当 | 应当(数字水印是”鼓励”) |
| 能否豁免 | 可以(第九条) | 不能 |
最后一行是整件事的边界:显式标识有豁免通道,隐式标识没有任何豁免。
很多人以为”用户申请了就能不标”,这是错的——用户申请只能免掉显式标识,隐式标识永远要写。
二、隐式标识:最常见做错的地方
最常见的错误是:把标识存在自己的数据库里,以为就完事了。
办法第五条要求的是”在文件元数据中添加”——是文件本身,不是你的库。
正确做法是按媒体类型写进容器:
| 媒体类型 | 写入位置 |
|---|---|
| JPEG | APP1 段(XMP) |
| PNG | iTXt 块(XMP) |
| WebP | XMP |
| MP4 | udta box |
| 音频 | ID3v2 |
要写入的字段,按第五条是三样:
- 生成合成内容属性信息
- 服务提供者名称或者编码
- 内容编号
怎么判断自己有没有做对? 拿一个生成出来的文件,用一个跟你系统完全无关的工具打开它的属性面板。如果只能在你自己的后台查到,那就是没做。
三、显式标识:难点在”导出之后”
第四条里有一句很容易被忽略的话:提供下载、复制、导出等功能时,应当确保文件中含有满足要求的显式标识。
意思是:界面上挂着角标不算,用户拿到手的那份文件里也得有。
分媒体的做法不太一样:
| 媒体 | 做法 | 注意 |
|---|---|---|
| 图片 | 角落常驻角标,写进图片本体 | 不是前端叠一层图层 |
| 视频 | 开头若干秒的画面内提示 + 常驻角标 | 两处要同一次重编码写入 |
| 音频 | 合成时作为第一句念出 | 要能配文案和语速 |
视频这里有个具体的工程点:开头的画面提示和角落角标必须在同一次编码里写进去。 分两次做要么多编一遍,要么两处标识不同步——用户截图的时候只截到一处,就露了。
四、一个能省一半机器时间的决策
视频类产品通常会遇到两件都要做重活的事:
- 输出内容审核——要抽帧送审
- 加标识——要重新编码
分开做的话,同一个视频要被解码两遍、编码两遍、读写两遍。
合并成一次流水线:一次解码拿到的帧,一路送审核、一路用来编码带标识的成品。
转码是重活。省一遍等于省一半机器时间,而且少一个中间文件,少一处出错的可能。
五、内容编号不要复用业务 ID
第五条要求隐式标识里有”内容编号”。
图省事的做法是直接用任务 ID 或者素材 ID 当编号。问题在于:任务和素材都是会被清理、会被用户删除的业务数据,而标识台账是要长期留的。
所以编号应该独立生成,跟业务 ID 解耦。比如用「前缀 + 日期 + 随机段」的形式,保证对外可索引、可检索。
这样即使任务记录被清理掉了,靠编号仍然能定位到当时的标识台账和证据。
六、豁免:怎么做到”能豁免但不失控”
第九条给了豁免通道,但条件很严——用户申请、在用户协议中明确用户义务和使用责任、依法留存日志不少于六个月。三条缺一不可。
落地的时候有几个点必须处理好:
| 点 | 做法 |
|---|---|
| 默认状态 | 默认必须带显式标识,豁免是明确的申请动作,不是随手开关 |
| 申请留痕 | 记录协议版本、受理时间、IP 与 UA |
| 可撤销 | 用户随时能撤回豁免 |
| 界面提示 | 始终保留——豁免只作用于用户拿到的文件,不影响平台界面的告知 |
最后一条最容易做错:有人以为豁免了就把界面提示也去掉,那是把”用户拿到的文件”和”平台展示的内容”混为一谈了。
七、几个容易漏的细节
一、加不加显式标识要一次决定。
在结果落库的时候就定下来,不要存两份文件、也不要在下载时动态生成。后者会在缓存、CDN、并发上给你制造一堆麻烦。
二、源片要留。
如果以后需要重新加工(比如公开分享时补显式标识),有源片就不用重新生成一遍。本地只做加速缓存,源片放永久存储。
三、用户删除不能碰到合规证据。
合规相关的证据副本要放在独立的前缀下,不进用户配额、不进回收站、不参与存储巡检——否则用户一删,你的证据就没了。
四、音频的内容审核最容易漏。
音频的标识通常做了(隐式写进 ID3v2、显式念在第一句),但音频内容本身的审核经常被落下。这块要不要做、怎么做,建议单独评估。
五、留存期限要真的填上。
后台做了留存治理,但如果不填具体期限,跑的还是代码默认值。上线前记得把各类数据的留存期填实。
八、上线前自查清单
- 隐式标识写进了文件本体(不是只落库)
- 每种媒体格式都有对应的写入实现
- 隐式标识字段包含:生成合成属性、服务者名称/编码、内容编号
- 内容编号独立生成,不复用业务 ID
- 显式标识在导出/下载的文件里仍然存在
- 视频的画面提示和角标是同一次编码写入
- 豁免默认关闭,申请走明确流程,且记录协议版本与受理信息
- 豁免不影响界面提示
- 源片有长期保留位置
- 合规证据与用户数据隔离
- 各类数据留存期限已实际配置
- 用户协议里写明了标识的方法与样式(第八条)
- 备案材料里包含标识相关材料(第十二条)
最后
标识这块的坑,基本都出在两个混淆上:文件里的标识 vs 数据库里的标识,以及平台界面 vs 用户拿到的文件。想清楚这两条,剩下的都是工程活。
具体条款以官方原文为准,本文只讲落地时容易踩的地方。