大模型厂商这边拼了命给 AI 内容加水印:C2PA、SynthID,一个比一个高级,就怕你不认出来这是 AI 写的。
然后出来一个开源项目,不到一周涨了 11k star,把这些水印全拆了。
这就是 watermarks-remover,8 月 11 日才创建,现在已经 11,590 star,是近期除了 DeepSeek Harness 外涨得最猛的新项目。
一句话:一个 Agent skill + 纯 Python 服务,专门剥掉各家 AI 的溯源标记,Claude、Gemini(SynthID)、OpenAI 全覆盖。
三层拆解:它到底怎么干的
水印不止一种,所以拆解也分三层:
-
A 层:不可见字符——AI 文本里常夹带零宽字符、异体空格、bidi 控制符、tag 字符。这些用确定性 Python 脚本直接清,零成本。
-
B 层:统计水印——最难啃的一层。SynthID-Text 这类水印不是藏字符,而是藏在"token 采样概率"里:模型按特定统计分布选词,水印检测器看分布就能判断"这是 AI 写的"。破法:用另一个模型改写——重写一遍内容,统计特征就被打散了。项目提供 Agent 改写 + rewrite_text.py 钩子。
-
Files 层:元数据——图片/文档里的 C2PA 签名、EXIF、XMP、文档属性。直接剥离,覆盖 PNG、JPEG、WebP、SVG、PDF、DOCX、ODT、HTML、Markdown。
三层各有各的打法,合起来就是一套完整的"水印清理流水线"。
怎么用:一条命令
它是 Agent skill 形态,装进 Grok、Cursor、Claude Code 都能用:
- 克隆仓库,把 skill 软链到
~/.grok/skills/或~/.cursor/skills/ - 启动服务(纯 Python 标准库,无依赖)
- 跟 Agent 说一句"去除 AI 水印",或者敲
/remove-ai-marks
它本身不写任何代码,干活靠 HTTP 调本地服务。
反转来了:别高兴太早
这项目有意思就有意思在,作者自己把两面性说透了:
- 就算你把水印全拆了,剥离过程本身会留下新的可检测痕迹——道高一尺魔高一丈,但永远别以为这次就能一劳永逸拆干净
- 作者明确说了:只用来清理你自己拥有的内容——抹掉别人的溯源标记,本身就是违规
- 本质上就是双刃剑:AI 溯源是防造假的防线,拆了它,假新闻、伪造文档会更难识别
你想抹掉自己内容的水印,它合法好用;你想用来造假,它本质上就是给你递了一把刀。
怎么理解这件事
AI 溯源正在变成一场军备竞赛:
- 厂商这边:加更隐蔽的水印(统计水印、元数据签名、多模态嵌入)
- 开源这边:拆水印工具层出不穷(这个项目只是最新的一个)
- 中间还有监管:各国 AI 内容标识法规陆续落地,欧盟 AI 法案要求生成内容可追溯
技术上有意思,但别只当热闹看。水印的真正价值不是"加了就防伪",而是"拆了就有痕迹"。 只要你敢拆,行为本身就会留痕,溯源链条其实没断——这可能才是比水印本身更聪明的设计。
对做内容平台、做 AI 产品的人,这个项目给你提了个醒:你的内容溯源方案,默认就会被攻击。 别把"加了 C2PA"当终点,这只是起点。
仓库:github.com/guillaumemeyer/watermarks-remover(v0.5.0)
你站哪边:水印该加还是该拆?评论区聊聊 👇