去除图片 AI 元数据
像 LinkedIn 这样的平台会读取 AI 图像生成器(ChatGPT、DALL-E、Midjourney 等)嵌入的 C2PA 元数据,并显示归属标签。该技能可去除这些元数据且无需重新编码,从而保留图像质量。
支持的格式
- PNG:移除
caBX块以及与 AI 相关的tEXt/iTXt/zTXt块 - JPEG:移除 APP11 C2PA 段以及与 AI 相关的 APP1(XMP/EXIF)段
- WebP:移除
C2PA块及与 C2PA 相关的有效载荷
快速使用
对一张或多张图片运行捆绑脚本:
python3 scripts/strip_c2pa.py image.png # 去除元数据并重命名为 IMG_YYYYMMDD_HHMMSS.png
python3 scripts/strip_c2pa.py image.jpg -o cleaned.jpg
python3 scripts/strip_c2pa.py *.png
默认情况下,脚本会在同一目录下写入一个具有中性相机风格文件名(IMG_YYYYMMDD_HHMMSS.<ext>)的清理副本,并保留原文件不变。使用 -i/--in-place 覆盖原文件,或使用 -o 指定显式输出路径。
工作流程
-
检查(可选):如果用户不确定图片是否包含 C2PA 元数据,请运行:
strings image.png | grep -i c2pa或使用 Python 读取 PNG 块以查找
caBX。 -
去除:运行
scripts/strip_c2pa.py <path>。脚本默认写入一个中性名称的副本,并报告哪些内容已被移除。 -
验证:脚本会自动扫描输出结果中是否残留 C2PA/AI 关键词,并发出警告。
此工具不会做什么
- 不会移除嵌入像素中的可见水印。
- 不会剥离标准 EXIF 元数据,除非其中包含 AI 归属关键词。
- 不会重新编码,因此文件大小和图像质量保持不变(移除的元数据除外)。
何时需要重新编码
如果在清理后平台仍显示 AI 标签,则归属信息可能已嵌入到像素中或存储在非 C2PA 格式中。在这种情况下,请使用 ImageMagick 进行解码和重新编码:
convert input.png -strip output.png
这对 PNG 是无损的,但对于 JPEG 可能会造成轻微的质量损失。