如何检测 Gemini 生成的图片和视频?C2PA、XMP Credit 与 SynthID 详解

Google 给 Gemini 生成内容上的"标记"其实有三套:标准化的 C2PA Content Credentials、XMP 里的署名字段,以及只有 Google 自己能读的 SynthID 像素水印。能不能检测出来,主要取决于你手里的文件经历过什么——原始 PNG 里证据相当扎实,截图和微信转图则基本什么都不剩。这篇用真实样本拆解每一套标记长什么样、存在哪、可信度如何。

先判断你手里是不是原图

这是检测前最重要的一步。Gemini 页面直接下载的 PNG/JPEG 是理想样本;以下几种来路的文件,元数据大概率已经被洗掉了:截图(像素重新编码,原文件的任何 chunk 都不存在)、微信/QQ 传图(默认压缩重编码)、社交平台保存的图(平台转码)、压缩包里的"预览图"。用这些文件测出"无信号"不说明图是真的,只说明证据没跟过来。

信号一:C2PA manifest(最硬的证据)

部分 Gemini / Imagen 原图带 Google 签名的 C2PA 记录。它的物理位置取决于格式:PNG 放在类型名为 caBX 的专用 chunk 里(遍历 chunk 链表按名字找就行);JPEG 放在 APP11 段(标记 0xFFEB),manifest 超过单段 64KB 上限时会按序列号拆成多段,读取时需要重组。chunk/段里装的都是 JUMBF 容器封装的 manifest。

在 Gemini 原图的 manifest 里,值得关注的具体内容:

普通图片查看器不会显示这些二进制区域。AICheck365 在浏览器本地解析 chunk/段结构、提取 manifest 字节后做匹配:命中 trainedAlgorithmicMedia 或已知工具名(Gemini、Imagen 等)记高置信度;只命中 Google 凭证链路特征记中等。注意这是快速扫描,不做签名链验证,两者的区别见 C2PA 文章

信号二:XMP 里的 Google 署名

C2PA 之外,Google 系生成图常带一段 XMP,其中 photoshop:Credit 字段的值是 Made with Google AI。这是纯文本、没有签名,理论上可以伪造,所以证据强度记中等——但配合 C2PA 出现时是很好的旁证。

一个容易踩的实战坑:Gemini 图片的 XMP 块不一定在文件开头附近。我们遇到过 XMP 出现在好几 MB 之后的样本,扫描窗口太小就会漏报——AICheck365 为此把 XMP 扫描范围扩到了文件前 10MB。如果你用自己的脚本解析,记得别只读文件头。

信号三:SynthID——存在,但你读不了

Google 反复宣传的 SynthID 需要单独说清楚:它是 DeepMind 开发的像素级隐形水印,生成时直接织进像素值里,对转码、裁剪有一定鲁棒性。但它的嵌入算法和解码器都不公开,目前只有 Google 自己的检测入口能给出 SynthID 判定,任何第三方工具都读不了。所以指望本地工具"验 SynthID"是不现实的;第三方能做的是对水印状统计异常的概率性分析(小波域指标),性质完全不同,置信度也低得多。

信号四:文件名

Gemini 默认下载名形如 Gemini_Generated_Image_xxxxxx.png。文件名人人可改,单独只算低置信度的辅助线索,但在"原图 + 默认文件名 + C2PA 命中"的组合里,它能让整个证据链更顺。

各信号强度对照

信号位置可伪造性参考权重
digitalSourceType=trainedAlgorithmicMediaC2PA manifest(caBX / APP11)受签名保护
claim_generator 含 Google/ImagenC2PA manifest受签名保护
Credit="Made with Google AI"XMP(可能深至文件 10MB 处)纯文本可改
SynthID像素难,但第三方不可读仅 Google 可验证
Gemini_Generated_Image 文件名文件系统随手可改

Veo / Google AI 视频呢?

视频侧的线索少一些但确实存在。部分 Veo 导出视频的 MP4 容器里,moov/udta/meta/ilst©too(编码工具)字段的值就是 "Google";部分文件能扫到 C2PA 相关文本。浏览器版对视频会依次检查 C2PA 文本(前 2MB)、容器工具字段、码流 SEI marker 和文件名,全部落空再懒加载 ffmpeg.wasm 抽帧分析水印。和图片同理:转码、录屏之后容器层线索基本归零。完整流程见AI 视频检测指南

为什么坚持本地检测

需要鉴别 Gemini 图的场景里,很多文件并不适合上传到别人的服务器——客户给的素材、还没发布的设计稿、聊天里收到的私人图片。AICheck365 的所有解析(EXIF、XMP、PNG chunk、C2PA/JUMBF、MP4 box、抽帧)都在浏览器本机完成,检测过程中没有任何文件字节发往服务器。代价前面说过:快速扫描不等于法证审计,重要场合请保留原始文件做完整验证。

手里有 Gemini 原图或 Google AI 视频?拖进来看看 Google 留了哪些来源记录

检测图片或视频 →

常见问题

Gemini 图片一定包含 C2PA 吗?

不一定。我们实测过的部分 Gemini / Google AI 原图带 C2PA Content Credentials,但不同产品入口(Gemini 应用、AI Studio、API)、不同格式和下载方式行为不一致。测试时尽量用刚从生成页面直接下载的原始文件。

为什么原图能检测出来,转发后就检测不出来了?

社交平台转码、截图、修图软件另存为都会丢弃 PNG 的 caBX chunk、JPEG 的 APP11 段以及 EXIF/XMP。检测工具只能读当前文件里还保留的字节,信号被剥离后任何工具都无能为力。

digitalSourceType = trainedAlgorithmicMedia 是什么意思?

这是 IPTC 受控词表里的数字来源类型,意思是'完全由训练算法生成',即纯 AI 生成。它出现在 C2PA manifest 的 actions 断言里时,是目前最规范的 AI 来源声明,证据强度高。

SynthID 能用第三方工具检测吗?

不能。SynthID 是 Google DeepMind 的像素级隐形水印,嵌入方式和解码器都不公开,目前只有 Google 自家的检测入口能读。第三方工具(包括本站)能查的是 C2PA、XMP 这类标准化元数据,以及对水印状统计异常的概率性分析。

本地检测比上传检测有什么好处?

文件不离开浏览器,适合客户素材、未发布的设计稿这类不方便外传的内容。代价是浏览器版定位于快速信号扫描,不做 C2PA 签名链验证,需要法证级结论时应使用 c2patool 等完整验证工具。

Gemini / Veo 生成的视频也能检测吗?

可以试。Veo 部分导出视频的 MP4 容器 ©too 字段写着 'Google',部分带 C2PA 文本。浏览器版会扫容器元数据、C2PA、SEI marker 和文件名,没命中再抽帧分析水印。转码或录屏后的视频通常查不到容器层线索。