← 返回日报
🌐 机器翻译 · DeepSeek · HN

Remove-AI-Watermarks – CLI and library for removing AI watermarks from images


以下是根据您的要求翻译的中文版本,保留了原文结构、技术术语和代码块,并采用 Markdown 格式输出。


Remove-AI-Watermarks – 用于从图像中移除 AI 水印的 CLI 和库

Remove-AI-Watermarks 可移除由 Google Gemini(Nano Banana)、ChatGPT / DALL-E、Stable Diffusion、Adobe Firefly、Midjourney 及其他 AI 模型生成的图像中的可见和不可见 AI 水印。它能去除 SynthID、C2PA Content Credentials、EXIF/XMP “Made with AI” 标签以及可见的闪光叠加层——全部通过一条命令完成。

功能特性

| 处理前(带水印) | 处理后(已清理) | |------------------|------------------| | (图片占位) | (图片占位) |

支持的模型

| AI 模型 | 可见水印 | 不可见水印 | 元数据 | 我们的方法 | |---------|----------|------------|--------|------------| | Google Gemini / Nano Banana / Gemini 3 Pro | ✅ 闪光标志 | ✅ SynthID v1 + v2(默认 SDXL 管线,原生约 1024 px) | ✅ C2PA + EXIF | Alpha 反转 + 扩散 + 元数据剥离 | | OpenAI DALL-E 3 / ChatGPT | — | — | ✅ C2PA 清单 | 元数据剥离 | | OpenAI ChatGPT Images 2.0 (gpt-image-2) | — | ⚠️ 不可感知的像素水印(尚无公开检测器) | ✅ C2PA 清单(已验证) | 扩散再生 + 元数据剥离 | | Stable Diffusion (AUTOMATIC1111, ComfyUI) | — | ✅ DWT / 隐写 | ✅ PNG 文本块 | 扩散再生 + 元数据剥离 | | Adobe Firefly | — | — | ✅ Content Credentials (C2PA) | 元数据剥离 | | Midjourney | — | — | ✅ EXIF + XMP(提示词、模型、种子) | 元数据剥离 | | StableSignature (Meta) | — | ✅ 模型内水印 | — | 扩散再生 | | TreeRing | — | ✅ 潜空间水印 | — | 扩散再生 |

可见水印(标志叠加)目前仅由 Google Gemini / Nano Banana 使用。其他服务依赖不可见水印和/或元数据。我们的基于扩散的再生技术可对抗像素域或频域中的任何不可见水印。

工作原理

移除 Gemini / Nano Banana 闪光水印

Google Gemini(内部代号 Nano Banana)使用 alpha 混合在生成的图像上添加可见的闪光标志:

watermarked = α × logo + (1 − α) × original

我们通过已知的 alpha 图(从纯黑背景上的 Gemini / Nano Banana 输出中提取)来反转此过程:

original = (watermarked − α × logo) / (1 − α)

一个三阶段 NCC(归一化互相关)检测器动态查找水印位置和缩放比例,因此即使图像被调整大小或裁剪也能正常工作。移除后,通过梯度掩码修复清理残留的闪光边缘伪影。

速度:每张图像约 0.05 秒。无需 GPU。

移除 SynthID 和其他不可见水印

Google 将 SynthID 嵌入到 Gemini / Nano Banana 生成的每张图像中。其他 AI 服务使用 StableSignature、TreeRing 及类似方案。这些不可感知的频域模式能够抵抗裁剪、调整大小和 JPEG 压缩。

移除管线(默认配置,SDXL):

图像 → 调整大小至约 1024px(SDXL 原生尺寸)→ 编码到潜空间(VAE)→ 添加受控噪声(前向扩散)→ 去噪(反向扩散,约 50 步,强度 0.05)→ 解码回像素(VAE)→ 上采样至原始分辨率

SDXL 自 2026 年 5 月起成为默认配置:经验证,它能有效击败 Gemini 3 Pro 输出上的 SynthID v2,而较旧的 SD-1.5 管线(768 px)则无法做到。在确认 SD-1.5 路径无法处理 v2 后,该路径已被移除。

人脸保护:在扩散之前,YOLO 检测图像中的人物并提取出来。扩散之后,使用柔和的椭圆形遮罩将原始人脸融合回去,以防止 AI 对面部特征造成变形。

模拟人眼效果:可选的胶片颗粒和色差注入,使输出看起来与屏幕照片无异,从而绕过 AI 生成图像分类器。

剥离 C2PA、EXIF 和 “Made with AI” 元数据

AI 工具会嵌入生成元数据,社交平台利用这些元数据显示 “Made with AI” 标签:

清理器会解析每一层,移除 AI 相关字段,并保留标准元数据(作者、版权、标题)。

安装

推荐:作为独立的 CLI 工具安装

无需管理虚拟环境:

# 使用 pipx (https://pipx.pypa.io)
pipx install git+https://github.com/wiltodelta/remove-ai-watermarks.git

# 或者使用 uv (https://docs.astral.sh/uv)
uv tool install git+https://github.com/wiltodelta/remove-ai-watermarks.git

更新到最新版本:

pipx upgrade remove-ai-watermarks
# 或
uv tool upgrade remove-ai-watermarks

从仓库安装

前提条件:Python 3.10+ 和 pip(或 uv)。

# 1. 克隆仓库
git clone https://github.com/wiltodelta/remove-ai-watermarks.git
cd remove-ai-watermarks

# 2. 以可编辑模式安装包
pip install -e .
# 或者,如果你使用 uv:
uv pip install -e .

安装后,remove-ai-watermarks 命令将在系统范围内可用。

注意:基础安装涵盖可见水印移除和元数据剥离。对于不可见水印移除(SynthID 等),请安装 GPU 依赖:

pip install -e ".[gpu]"
# 或
uv pip install -e ".[gpu]"

不可见水印移除

不可见水印移除使用扩散模型和 GPU 以获得合理的速度。

# 首次运行时
📖 阅读原文 →