Remove-AI-Watermarks:一键清除 AI 生成图片的可见与不可见水印

6 days ago

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 识别出来了。

攻击方法类型AUROCTPR @ 0.1% FPR
CtrlRegen+重绘0.999999.64%
WatermarkAttacker重绘0.999799.38%
UnMarker失真0.999498.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(或者用第三方云服务),人脸区域的修复还有提升空间,而且移除水印不等于不被取证检测发现。用的时候,心里要有数。

Author
Admin
Category