- Blog
- Remove-AI-Watermarks:一键清除 AI 生成图片的可见与不可见水印
Remove-AI-Watermarks:一键清除 AI 生成图片的可见与不可见水印
Remove-AI-Watermarks:一键清除 AI 生成图片的可见与不可见水印
生成式 AI 图片火了之后,一种新型水印也随之诞生。你从 Gemini、ChatGPT、Midjourney 生成的图片,表面上可能干干净净,但在幕后藏着三样东西:可见的 Logo(比如 Gemini 那颗闪烁的小星星)、不可见的 SynthID 水印(人眼看不见但 Google 能检测),以及 C2PA/EXIF 元数据(社交平台靠它来打上 "Made with AI" 标签)。
过去想把这些全清掉,你得分开操作:用 Photoshop 抹 Logo、用扩散模型去除 SynthID、用 exiftool 剥离元数据。但 2026 年 5 月,开发者 Victor K. 在 GitHub 上开源了一个 CLI 工具——Remove-AI-Watermarks,把这三件事合并成一行命令。
它能做什么
Remove-AI-Watermarks 不是那种 "上传图片→点下载" 的在线工具,而是一个 Python 命令行工具,支持三种水印清除能力:
可见水印清除:
- Gemini / Nano Banana 的 sparkle Logo
- 字节跳动豆包的 "豆包AI生成" 文字条
- 字节跳动即梦的 "★ 即梦AI" 商标
- 三星 Galaxy AI 的底部语言标签
这些东西不靠 AI 猜,靠的是已知图案的坐标库——工具内置了每种水印的精确位置和特征,用 NCC(归一化互相关)定位后,通过图像修复算法填充。
不可见水印清除:
- Google SynthID(当前使用最广的 AI 水印标准)
- OpenAI gpt-image-2 的像素级水印
- Stable Diffusion / SDXL 的传统 DWT-DCT 水印
- TreeRing、StableSignature 等实验性水印方案
这部分需要 GPU。原理是通过 ControlNet + SDXL 对图片做轻度 "重绘",在水印区域引入足够扰动让解码器读不出信号,同时保持视觉内容不变。
元数据剥离:
- C2PA Content Credentials:Adobe、Microsoft 和各大 AI 平台都在用的数字证书
- EXIF/XMP "Made with AI" 标签:Instagram、Facebook 靠它来标注 AI 内容
- IPTC 元数据、PNG 文本块、TC260 中国 AI 标签
这部分最快,因为只是在文件层面删除数据段,不涉及图像处理。
安装方式
支持四种安装方式,推荐用 pipx 或 uv:
# pipx 安装(推荐)
pipx install remove-ai-watermarks
# uv 安装
uv tool install remove-ai-watermarks
# Homebrew(macOS 和 Linux)
brew install wiltodelta/tap/remove-ai-watermarks
# 从源码安装
git clone https://github.com/wiltodelta/remove-ai-watermarks
cd remove-ai-watermarks
pip install -e .
如果需要 GPU 加速的不可见水印清除,额外安装:
pip install "remove-ai-watermarks[gpu]"
使用方法
最常用的是 all 命令,一次完成所有工作:
# 单文件
remove-ai-watermarks all --input watermarked.png --output clean.png
# 批量处理整个目录
remove-ai-watermarks all --input ./images/ --output ./clean/
如果想分步操作,工具也支持单独命令:
| 命令 | 功能 | 是否需要 GPU |
|---|---|---|
identify | 检测图片中的水印和元数据 | 否 |
visible | 仅清除可见水印 | 否 |
invisible | 仅清除不可见水印 | 是 |
metadata | 仅剥离元数据 | 否 |
erase | 按坐标擦除任意区域 | 否 |
all | 可见+不可见+元数据全部处理 | 是 |
先用 identify 看看一张图里到底藏着多少水印信息:
remove-ai-watermarks identify --input gemini-image.png --json
输出会告诉你这张图来自哪个 AI 平台、有哪些可见水印、用什么不可见水印方案、以及嵌入的 C2PA 签发者。
核心技术细节
SynthID 是怎么工作的
Google 的 SynthID(v1 和 v2)是目前部署最广的 AI 水印。跟传统水印不一样——传统 DWT-DCT 水印是在频域固定位置塞一个比特模式,JPEG 压缩到 90% 质量就没了。SynthID 是一个联合训练的深度学习系统:编码器 f 在生成图像上叠加水印信号,解码器 g 可以读出有没有水印。这个信号是加在像素空间的——等扩散模型的 VAE 解码完原始像素后,再加一层编码,不干扰模型生成过程。
在 512×512 的图片上,SynthID-O 可以编码 136 比特信息。对抗图像变换的鲁棒性也很强——在 30 种变换测试中,SynthID 的检测率(TPR)在 99.9% 以上,远超 WAM(~90%)和 StegaStamp(~70%)。
但是,Remove-AI-Watermarks 的实测表明:用 img2img 强度 0.05 就能把 OpenAI 的 SynthID 清干净,Google Gemini 的需要 0.15。也就是说,OpenAI 的水印强度比 Google 的弱不少。
可见水印的定位技术
可见水印清除走的是另一条技术路线。工具内置了一个"水印注册表",记录了每种常见 AI 水印的精确位置和特征。运行时先用归一化互相关(NCC)做模板匹配,找到水印位置后,用图像修复算法填充——默认用 OpenCV 的快速修复,也可以选 MI-GAN 或 LaMa 获得更好的效果。
支持的水印类型包括:
- Gemini sparkle:右下角那个闪烁小星星
- Doubao "豆包AI生成":字节跳动的中文文字条
- Jimeng "★ 即梦AI":字节跳动即梦的商标水印
- Samsung Galaxy AI strip:三星 Galaxy AI 的语言标签
人脸保护功能
工具默认开启了 YOLO 人脸检测,在处理包含人脸的图片时会保护面部区域不受修复算法影响。这个功能可以通过 --no-face-protection 关闭。
检测与抗检测
2026 年发表的一篇论文(Goonatilake & Ateniese, arXiv:2605.09203)评估了 6 种水印移除攻击对 ResNet-50 取证检测器的影响。结论很有意思:所有攻击虽然骗过了水印验证器,但都被取证分类器以 AUROC > 0.998 识别出来了。
| 攻击方法 | 类型 | AUROC | TPR @ 0.1% FPR |
|---|---|---|---|
| CtrlRegen+ | 重绘 | 0.9999 | 99.64% |
| WatermarkAttacker | 重绘 | 0.9997 | 99.38% |
| UnMarker | 失真 | 0.9994 | 98.28% |
这意味着:移除水印和逃避检测是两回事。工具虽然能清除水印信号,但处理过的图片仍然可以被取证分析识别为"被处理过"。
适用场景
这个工具最适合的场景是:
- 内容创作者:合法使用 AI 生成素材时,去除平台水印以便在不同渠道发布
- 开发者:需要批量处理 AI 生成图片,自动化去除水印和元数据
- 研究人员:研究 AI 水印的鲁棒性和安全漏洞
需要注意法律边界——工具本身基于 Apache 2.0 开源协议,但作者明确声明:"仅限合法使用,不用于欺骗、欺诈或任何非法活动。" 部分司法管辖区对移除 AI 标签有特定限制。
快速上手示例
# 1. 安装
pipx install remove-ai-watermarks
# 2. 分析一张 Gemini 生成的图片
remove-ai-watermarks identify --input photo.png
# 3. 清除所有水印和元数据
remove-ai-watermarks all --input photo.png --output clean.png
# 4. 批量处理(带 GPU)
remove-ai-watermarks all --input ./ai_images/ --output ./clean/ --gpu
小结
Remove-AI-Watermarks 是 2026 年出现的一个非常实用的开源工具。它把 AI 水印清除这件事从多步骤的手动操作变成了单行命令,而且同时覆盖了可见水印、不可见水印和元数据三个层面。对于需要处理大量 AI 生成图片的用户来说,省了不少功夫。
不过也要意识到它的局限:不可见水印清除需要 GPU(或者用第三方云服务),人脸区域的修复还有提升空间,而且移除水印不等于不被取证检测发现。用的时候,心里要有数。
