如何判断一张图片是否 AI 生成?元数据、视觉特征与分类器实战
拿到一张可疑的图,多数人的第一反应是放大了盯着看——数手指、找破绽。其实更高效的第一步是查文件本身:生成工具往往在文件里留下了明明白白的来源记录,几秒钟就能确认,比肉眼判断可靠得多。这篇文章按照"先查文件、再看画面、最后交叉验证"的顺序,把每种方法的原理和可信边界都讲清楚。
第一步:查元数据——能实锤的方法
AI 生成工具写入文件的来源信号,按载体分四类。详细的字节级拆解在元数据完整指南里,这里说结论:
- C2PA manifest:带数字签名的溯源记录,DALL-E 3、Firefly、Gemini/Imagen 的图会带。manifest 里的
digitalSourceType: trainedAlgorithmicMedia是最强的 AI 来源声明,篡改会破坏签名。 - XMP:Midjourney 写
CreatorTool和DigitalSourceType;Google 系的图常见Credit="Made with Google AI"。XML 文本,无签名,但正常照片不会有这些字段。 - PNG 文本块:Stable Diffusion WebUI 把完整生成参数(提示词、Steps、Sampler、CFG、Seed、模型哈希)写进
parameters块,ComfyUI 甚至把整张节点图 JSON 存进workflow块。命中即实锤。 - EXIF:Software 字段的工具名;国产平台在
UserComment里写的 AIGC JSON("Label":"1"加可反查平台的 ContentProducer 编码)。
这种方法的特点是误报率极低、漏报率不低:一张真实照片的文件里不可能凭空出现 CFG 参数和 trainedAlgorithmicMedia 声明,所以查到了基本就是定论;但反过来,信号很容易在传播中丢失——截图丢全部,社交平台转码丢大半,修图软件另存为也常常不保留。所以请记住这条不对称原则:有信号 ≈ 实锤,没信号 ≠ 清白。
用 AICheck365 可以把上面四类位置一次扫完,文件在浏览器本地解析,不上传。结果里的置信度也是按信号性质分的:C2PA 的 digitalSourceType 命中记高,XMP 字段记中,EXIF 工具名、PNG 文本、文件名这类容易伪造或太弱的记低。检测视频另见 AI 视频检测指南。
第二步:视觉检查——有用,但别迷信
需要先泼一盆冷水:网上流传的"AI 图鉴别口诀"大多是针对 2023 年那代模型总结的,现在适用性已经大幅下降。手指畸形曾经是最可靠的破绽,但 Midjourney v6、Flux 这一代模型的手部已经基本正常。截至目前,相对还值得看的位置是:
- 图中文字:招牌、标签、书脊上的文字仍然容易出现笔画粘连、字符变形或语义不通的"伪文字"。不过 Ideogram 和新版 GPT 图像生成在英文排版上已经做得相当好,中文仍是难点。
- 物理一致性:多个光源下影子的方向是否自洽;眼镜、水面、镜子里的反射内容是否对得上场景。这类全局一致性是扩散模型的薄弱项,因为模型并不真正"理解"光路。
- 重复纹理:人群、树叶、砖墙这类高频区域出现周期性的重复图案,或者背景人物的脸糊成同一个模子。
- 过度的"质感":皮肤过于光滑均匀、整图带一种统一的油画/塑料感。这一条最主观,也最容易冤枉重度修图的真实照片。
视觉检查的正确定位是线索生成器:它帮你决定要不要继续深查,但单凭肉眼下结论,无论判 AI 还是判真,都不可靠。
第三步:像素级分类器——概率参考
另一条技术路线是不看元数据、只看像素:训练一个判别模型,捕捉生成图在统计上的痕迹——典型的有上采样在频域留下的周期性伪影、真实相机传感器噪声(PRNU)的缺失、颜色分布的细微偏差。Hive、Illuminarty、AI or Not 等服务走的是这条路。
它的优点是对任何图都能给出一个概率,不依赖文件里留没留信号;缺点也很实在:对训练集之外的新模型滞后,对经过多轮压缩的图误判率明显上升,而且输出是概率而非证据——"87% AI"这种结论没法作为依据拿去对质。建议把它当作交叉验证的一票,不要当作唯一依据。另外注意 Google 的 SynthID 是单独一类:它是生成时注入的像素级隐形水印,只有 Google 自己的检测器能读,第三方工具读不了。
第四步:来源核查
跳出文件本身,查图片的传播链路,有时比技术检测更快出结论:
- 用 Google Lens、Bing 视觉搜索、TinEye 反向搜图,看这张图最早出现在哪、原始版本是什么样。TinEye 按时间排序的功能特别适合找首发。
- 看发布账号的历史:批量发图、风格高度统一、注册时间很短的账号值得警惕。
- 新闻事件图片,核对是否有其他媒体在同一现场拍摄的不同角度照片。
把流程串起来
实际排查时按成本从低到高走:
- 先把文件拖进 AICheck365 查元数据,几秒钟出结果。有高置信度信号,到此为止。
- 没有信号,看你拿到的是不是原始文件。如果是截图或转发图,先尝试找原图再测。
- 原图也没信号,做视觉检查列疑点,再用一两个像素分类器交叉验证。
- 结论重要的场合(新闻、纠纷、交易),加上来源核查,并保留原始文件以备完整的 C2PA 签名验证。
先从零成本的第一步开始:查查文件里留了什么
开始检测 →常见问题
为什么有些 AI 图片完全检测不出来?
元数据检测依赖文件里还保留着的来源信号。截图、社交平台压缩、修图软件重新导出、专门的元数据清除,任何一步都会把信号洗掉。所以'没检测到信号'只说明这份文件里没有可读的证据,不能证明它不是 AI 生成的。
元数据分析和像素分析(AI 分类器)哪个更靠谱?
性质不同。元数据命中基本就是实锤——真照片里不会出现采样器参数和 trainedAlgorithmicMedia 声明,所以误报率极低,但覆盖不了被洗过的文件。像素分类器对任何图都能给出概率,覆盖面广,但对新模型滞后、对重压缩图误判率明显上升。正确用法是元数据优先、分类器交叉验证,而不是二选一。
靠看手指还能识别 AI 图片吗?
越来越难了。手部畸形是 2023 年前后模型的标志性破绽,Midjourney v6、Flux 这一代基本已经修复。现在更值得看的是图中文字、物理一致性(影子方向、反射内容)和重复纹理,但这些也只能当线索,不能当结论。
C2PA 普及后检测会变容易吗?
会,但只对'合规'的内容有效。OpenAI、Adobe、Google、微软的生成内容已经在写带签名的 C2PA 记录,难以伪造、可追编辑链。但本地部署的开源模型不受约束,恶意使用者也会主动选择不留痕的工具,所以检测手段仍然需要多层并用。
AI 视频怎么检测?
优先看原始 MP4/MOV 文件:C2PA、容器元数据(©too、AIGC 标签)、码流里的 SEI marker、文件名,没命中再抽帧查水印。具体流程见 AI 视频检测指南。