乐于分享
好东西不私藏

AI水印48小时就被破解,这个开源清除工具火了

AI水印48小时就被破解,这个开源清除工具火了
Anthropic刚给Claude的所有文本加上了隐形水印,48小时后,一个叫watermarks-remover的GitHub项目就出现了。上线6天狂揽11000颗星,它号称能一键清除Claude、Gemini、OpenAI三大厂的AI溯源标记。
这不仅仅是一个工具的故事——它背后是AI内容溯源领域最激烈的一场攻防战。大厂花数年时间研发的水印技术,为什么一个开源项目几天就能"破解"?AI水印到底是什么?它对你的内容有什么影响?
今天我们就来拆解AI水印的技术原理,并手把手演示watermarks-remover的三层清除方案。

一、watermarks-remover是什么?

watermarks-remover是一个MIT开源协议的AI水印清除工具,由开发者Guillaume Meyer(AI初创公司Memo创始人)创建。它本质上是一组Agent技能加纯Python标准库脚本,专门用来剥离AI生成内容中的多厂商溯源标记。
项目最狠的一点:核心脚本零Python依赖即可运行——只需要Python 3.10+标准库,几乎没有任何安装成本。
它支持覆盖Claude、Google Gemini/SynthID-Text、OpenAI溯源标记,以及开源模型常用的Kirchenbauer类水印。文件格式方面,支持PNG、JPEG、WebP、BMP、GIF、TIFF、SVG、PDF、DOCX、EPUB、ODT、HTML、Markdown等13种格式的元数据清洗。

watermarks-remover GitHub项目页面,上线6天已获11.2k Star,21位贡献者参与开发。

watermarks-remover的三层清除架构:A层清除不可见字符、B层通过改写打破统计水印、文件层清除元数据。

二、AI水印到底是什么?先搞懂SynthID和C2PA

在拆解工具之前,我们需要先搞清楚一个问题:AI水印到底是什么?目前主流的AI溯源技术分两大类。

1. C2PA内容凭证(文件层水印)

C2PA全称Coalition for Content Provenance and Authenticity,是由Adobe在2019年发起、Linux基金会托管的开放标准。它的工作方式很简单:在文件的元数据中嵌入加密签名的"内容凭证",记录这个文件是用什么工具、在什么时间、由谁创建的。
C2PA的特点是它存在于文件的元数据层——类似于照片里的EXIF信息。你可以用c2patool这样的工具直接查看和验证。它的好处是信息丰富(能记录完整的文件历史),缺点是只要重新保存、转换格式或截图,元数据就可能丢失。

2. SynthID统计水印(文本层水印)

Google DeepMind开发的SynthID是目前最先进的AI文本水印技术。它不是在文本里插入特殊字符,而是利用了大模型生成文本时的核心机制——下一个词的概率分布。
简单来说,AI在写句子时,每写下一个词都会计算所有候选词的概率。SynthID会在这些概率上做极其微小的扰动——轻微偏向某些词而回避另一些词——人眼完全看不出差别,但检测工具可以通过统计分析识别出这个隐藏模式。
这种水印"长"在词的选择里,不是删除某个字节就能去掉的。唯一的清除方式就是重写文本——用另一个模型替换足够多的词,打破统计模式。

3. 为什么这件事很重要?

2026年8月2日,欧盟AI法案第50条正式生效,要求所有AI生成内容必须标注可检测的水印。Anthropic随即宣布,所有8月2日之后发布的Claude模型都会在文本中嵌入隐形水印,并给支持的文件格式添加C2PA签名元数据。OpenAI和Google早已在图像和文本中部署了类似的溯源标记。
换句话说——你让AI帮你润色一封邮件、翻译一段话、总结一篇文章,输出的内容就已经被打上了隐形标记。

三、三层架构拆解:它怎么清除AI水印?

watermarks-remover把水印清除工作拆成了三个层次,每一层针对不同类型的水印,方法和效果完全不同。

1. A层(文本层)——确定性清除

这一层处理的是文本中最"低级"的标记方式:不可见Unicode字符(零宽空格、双向控制字符、标签字符、异域空格等)。这些是AI系统可能在文本中插入的隐形载体,用于追踪内容来源。
A层用确定性Python脚本处理,能100%清除这些隐藏字符,且不需要任何第三方依赖。清除前后可以直接对比字节数来验证效果。

2. B层(统计层)——尽力改写

这一层针对的是SynthID这类统计水印——也就是"长"在词选择里的水印。因为水印存在于模型选词的模式中,唯一的清除方式是重写文本:用另一个模型替换足够多的词汇,打破原始的统计模式。
B层通过Agent改写或rewrite_text.py脚本完成。它支持多种后端(本地Ollama、OpenAI兼容API),并提供多种改写强度:paraphrase(释义)、humanize(拟人化)、code(代码注释改写)。
需要注意的是:改写会改变原文的语气、精度和风格。轻度改写可能残留信号,重度改写又受限于改写模型的质量。项目作者自己都说了一个尖锐的问题:如果你花大价钱用了高级模型,然后再用一个廉价模型去重写输出,为什么不直接一开始就用那个廉价模型?

3. 文件层——元数据清洗

这一层处理的是文件级别的溯源信息:C2PA清单、EXIF元数据、XMP标签、文档属性等。支持PNG、JPEG、WebP、SVG、PDF、DOCX、EPUB、ODT、HTML、Markdown等13种格式。
文件层的清除是确定性的——元数据要么在,要么不在。项目集成了c2patool(检查C2PA清单)、exiftool(清除残留元数据)和qpdf(PDF结构性重写)三个可选工具,确保清除彻底。
特别值得一提的是PDF处理:exiftool对PDF的编辑是增量式的,原始数据其实还在文件里。watermarks-remover会在exiftool之后追加qpdf结构性重写,真正把旧元数据从对象图中删除。

四、效率对比:AI水印清除 vs 传统方式

场景
传统方式
工具方式
效率提升
检查文件是否含AI水印
逐个安装c2patool/exiftool,手动比对元数据,约15分钟
一条命令inspect_file.py自动检测,约3秒
快300倍
清除文本不可见标记
用正则逐条匹配Unicode字符,容易遗漏,约10分钟
clean_text.py一键清洗并输出统计,约2秒
快300倍
批量清洗文档元数据
打开每个文件→导出→手动删除属性→重新保存,约20分钟/文件
clean_file.py批量处理支持13种格式,约5秒/文件
快240倍
破坏统计水印模式
手动逐段改写,保持语义同时替换用词,约30分钟/篇
rewrite_text.py自动改写+候选选择,约10秒/篇
快180倍

五、动手操作步骤

在哪用

watermarks-remover,GitHub地址:https://github.com/guillaumemeyer/watermarks-remover

用什么

Python 3.10+标准库环境,核心脚本零依赖,免费开源(MIT协议)。可选安装Docker、c2patool、exiftool、qpdf以增强文件层清除能力。

怎么做

克隆项目:将仓库克隆到本地并进入目录

git clone https://github.com/guillaumemeyer/watermarks-remover.git
cd watermarks-remover

启动服务:运行本地HTTP服务(Agent技能调用时需要)

make serve

或直接运行:

python3 service/scripts/server.py --host 127.0.0.1 --port 8765

检查标记:用inspect_file.py检查文件中隐藏的AI水印

SCRIPTS=service/scripts
python3 "$SCRIPTS/inspect_file.py" your_draft.md

一键清除:清除文本水印和文件元数据

清除文本层A(不可见Unicode字符)

python3 "$SCRIPTS/clean_text.py" your_draft.md -o your_draft.cleaned.md --stats

清除文件元数据(C2PA/EXIF/XMP)

python3 "$SCRIPTS/clean_file.py" your_draft.md -o your_draft.cleaned.md

做到什么程度

一条命令完成检查,一条命令完成清除。文本中的不可见字符被100%移除,文件元数据中的C2PA/EXIF/XMP标记被彻底剥离,输出干净的、不含AI溯源标记的内容文件。

三板斧:资源链接

  • GitHub项目地址:https://github.com/guillaumemeyer/watermarks-remover

  • Anthropic水印技术说明:https://www.anthropic.com/news/how-claude-marks-ai-generated-content

  • C2PA标准官网:https://c2pa.org

  • SynthID技术介绍:https://deepmind.google/models/synthid/