Remove–AI–Watermarks – 用于从图像中移除AI水印的CLI和库
摘要
一个CLI和库,用于移除由各种AI模型生成的图像中的可见和不可见AI水印,包括元数据剥离和基于扩散的再生。
查看缓存全文
缓存时间: 2026/05/20 02:22
wiltodelta/remove-ai-watermarks
来源:https://github.com/wiltodelta/remove-ai-watermarks
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”标签以及可见的闪光覆盖物——全部一键完成。
功能特点
- 可见水印去除 —— 通过反向 alpha 混合去除 Gemini / Nano Banana 闪光标志(快速、离线、确定性)
- 不可见水印去除 —— 通过基于扩散的再生去除 SynthID、StableSignature、TreeRing
- AI 元数据剥离 —— 去除 EXIF、PNG 文本块、C2PA 来源清单(PNG / JPEG / AVIF / HEIF / JPEG-XL)、XMP DigitalSourceType
- “Made with AI”标签移除 —— 移除触发 Instagram、Facebook、X(Twitter)显示 AI 标签的元数据
- 模拟人类化 —— 添加胶片颗粒和色差以绕过 AI 图像分类器
- 智能面部保护 —— 自动提取并融合人像区域,防止 AI 失真
- 批量处理 —— 处理整个目录
- 检测 —— 三级 NCC 水印检测,附带置信度评分
在线试用 —— 不想安装任何东西?请使用 raiw.cc (https://raiw.cc),一个由本库驱动的免费 Web 服务。
示例
| 处理前(带水印) | 处理后(已清理) |
|---|---|
| 处理前 | 处理后 |
支持的模型
| AI 模型 | 可见水印 | 不可见水印 | 元数据 | 我们的方法 |
|---|---|---|---|---|
| Google Gemini / Nano Banana / Gemini 3 Pro | ✅ 闪光标志 | ✅ SynthID v1 + v2(默认 SDXL 管线,本地 ~1024 像素) | ✅ 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 混合向生成的图像添加可见的闪光标志:
text 水印图像 = α × 标志 + (1 − α) × 原始图像
我们利用已知的 alpha 图(从纯黑背景上的 Gemini / Nano Banana 输出中提取)来逆向该过程:
text 原始图像 = (水印图像 − α × 标志) / (1 − α)
一个三级 NCC(归一化互相关)检测器动态定位水印的位置和缩放比例,因此即使图像被调整大小或裁剪也能工作。去除后,通过梯度掩码修复清理残余的闪光边缘伪影。
速度:每张图像约 0.05 秒。无需 GPU。
去除 SynthID 及其他不可见水印
Google 将 SynthID 嵌入到 Gemini / Nano Banana 生成的每张图像中。其他 AI 服务使用 StableSignature、TreeRing 及类似方案。这些不可见的频域模式可抵御裁剪、调整大小和 JPEG 压缩。
去除管道(默认配置,SDXL):
text 图像 → 调整大小至约 1024 像素(SDXL 原生尺寸)→ 编码为潜在空间(VAE) → 添加受控噪声(正向扩散) → 去噪(反向扩散,约 50 步,强度 0.05) → 解码回像素(VAE)→ 上采样至原始分辨率
自 2026 年 5 月起,SDXL 为默认配置:经验证明可在 Gemini 3 Pro 输出上击败 SynthID v2,而旧的 SD-1.5 管道(768 像素)无法做到。SD-1.5 路径已在验证无法处理 v2 后移除。
面部保护:在扩散前,YOLO 检测图像中的人物并将其提取出来。扩散后,使用柔和的椭圆形遮罩将原始面部混合回去,以防止 AI 对面部特征的失真。
模拟人类化:可选添加胶片颗粒和色差,使输出与屏幕照片无法区分,从而击败 AI 生成的图像分类器。
剥离 C2PA、EXIF 和“Made with AI”元数据
AI 工具会嵌入生成元数据,社交平台利用这些数据显示“Made with AI”标签:
- EXIF 标签 —— 提示词、种子、模型哈希、采样器设置(Stable Diffusion, Midjourney)
- XMP DigitalSourceType ——
trainedAlgorithmicMedia标签,Instagram、Facebook 和 X(Twitter)用于显示“Made with AI” - PNG 文本块 —— ComfyUI 工作流、AUTOMATIC1111 参数
- C2PA Content Credentials —— 来自 Google Imagen、OpenAI DALL-E、Adobe Firefly 的加密来源清单
清理器会解析每一层,移除 AI 相关字段,并保留标准元数据(作者、版权、标题)。
安装
推荐方式
作为隔离的 CLI 工具安装 —— 无需管理虚拟环境:
``bash
使用 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 ``
更新到最新版本:
``bash pipx upgrade remove-ai-watermarks
或
uv tool upgrade remove-ai-watermarks ``
从仓库安装
前提条件: Python 3.10+ 和 pip(或 uv (https://docs.astral.sh/uv/))。
``bash
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 依赖:
bash pip install -e ".[gpu]" # 或:uv pip install -e ".[gpu]"
不可见水印去除
不可见水印去除使用扩散模型和 GPU 以获得合理速度。
``bash
首次运行时会自动下载模型(约 2 GB)。
设备自动检测:CUDA(Linux/Windows)> MPS(macOS)> CPU。
强制指定设备:–device cuda / –device mps / –device cpu
可选:为受限/私有模型设置 HuggingFace 令牌
cp .env.example .env
编辑 .env 并设置 HF_TOKEN=hf_your_token_here
``
开发者设置
``bash
安装带开发依赖的包(pytest, ruff, pyright)
pip install -e “.[dev]”
或使用 uv:
uv pip install -e “.[dev]”
运行测试
pytest
运行 linter
./maintain.sh ``
使用
CLI
``bash
从单张图像移除所有水印(可见 + 不可见 + 元数据)
remove-ai-watermarks all image.png -o clean.png
处理整个目录
remove-ai-watermarks batch ./images/ –mode all ``
各独立命令
``bash
仅可见水印(Gemini / Nano Banana 闪光标志)—— 快速,离线
remove-ai-watermarks visible image.png -o clean.png
仅不可见水印(SynthID 等)—— 需要 GPU
remove-ai-watermarks invisible image.png -o clean.png –humanize 4.0
检查/剥离 AI 元数据(C2PA, EXIF, “Made with AI” 标签)
remove-ai-watermarks metadata image.png –check remove-ai-watermarks metadata image.png –remove
批量处理,指定模式
remove-ai-watermarks batch ./images/ –mode visible ``
Python API
``python from remove_ai_watermarks.gemini_engine import GeminiEngine import cv2
engine = GeminiEngine() image = cv2.imread(“watermarked.png”)
检测
result = engine.detect_watermark(image) print(f“检测到:{result.detected}(置信度:{result.confidence:.1%})“)
移除
clean = engine.remove_watermark(image) cv2.imwrite(“clean.png”, clean) ``
元数据剥离
``python from remove_ai_watermarks.metadata import has_ai_metadata, remove_ai_metadata from pathlib import Path
if has_ai_metadata(Path(“image.png”)): remove_ai_metadata(Path(“image.png”), Path(“clean.png”)) ``
环境要求
- Python ≥ 3.10
- 可见水印去除 / 元数据:仅需 CPU,无需 GPU
- 不可见水印去除:建议使用 GPU(CUDA 或 MPS),可在 CPU 上运行(较慢)
故障排除
SSL 证书错误(CERTIFICATE_VERIFY_FAILED):
``bash
安装 certifi(工具会自动检测)
pip install certifi
仅 macOS:运行 Python 证书安装程序
/Applications/Python\ 3.*/Install\ Certificates.command ``
首次运行较慢 —— 这是预期行为。工具会在首次启动时下载模型权重(约 2 GB)。后续运行将使用缓存模型。
致谢
- noai-watermark (https://github.com/mertizci/noai-watermark) 作者:mertizci —— 不可见水印去除引擎
- GeminiWatermarkTool (https://github.com/allenk/GeminiWatermarkTool) 作者:Allen Kuo(MIT 协议) —— 可见水印去除算法
- CtrlRegen (https://github.com/yepengliu/CtrlRegen) 作者:Liu 等(ICLR 2025) —— 可控再生管道
- NeuralBleach(MIT 协议) —— 模拟人类化技术
路线图
以下功能已规划但尚未实现:
- SynthID-Image v2 自动化回归测试。根据 2026 年 5 月对 Gemini 3 Pro 输出(使用 Google Gemini 应用 (https://support.google.com/gemini/answer/16722517) 的“通过 SynthID 验证”功能)的手动检查,默认 SDXL 配置可击败 v2。自动化端到端测试需要程序化访问 SynthID 检测器门户 (https://blog.google/innovation-and-ai/products/google-synthid-ai-content-detector/)(面向媒体专业人士和研究人员的等候列表)或离线替代检测器。待定。
- AVIF / HEIF / JPEG-XL 检测限制。移除会剥离顶层 C2PA
uuid和 JUMBFjumb框。这些容器内的 EXIF/XMP 框尚未被清理(PNG 和 JPEG 已完全覆盖)。 - 视频管线(
noai-video):针对 Sora 2 动态标志、Veo 3.1 徽标、Kling、Runway 的逐帧修复和跟踪。单独包,未整合到此仓库中。
不修复:
- 移除 Nightshade / Glaze / PhotoGuard。这些是艺术家用于保护其作品不被抓取到 AI 训练集中的防御性扰动。移除它们是在攻击艺术家,而非 AI 来源。超出范围。
法律声明
AI 生成内容的水印和来源追踪在多个司法管辖区已受到监管。下表总结了 2026 年 5 月的状况。这些均不构成法律建议。
| 司法管辖区 | 法律文件 | 状态(2026 年 5 月) | 相关性 |
|---|---|---|---|
| 欧盟 | 人工智能法案,第 50(2) 条 | 根据 2025 年 12 月的综合协议,标记义务推迟至 2026 年 12 月 2 日。行为准则将于 2026 年 5 月/6 月最终确定。 | 意图欺骗地移除强制性来源标记可能受到国家实施法规的制裁。 |
| 美国(联邦) | COPIED 法案 | 2025 年颁布。 | 将意图欺骗地移除来源信息以隐瞒内容来源定为犯罪。工具本身合法;但使用可能不合法。 |
| 美国(州) | 加州 AB 2655,德州 SB 751 等 | 已生效。 | 针对特定内容(选举深度伪造、色情深度伪造)。非针对工具。 |
| 中国 | 深度合成管理规定,2025 年更新 | 已生效。 | 强制要求 AI 内容带有可见标签。移除标签属于行政违规。 |
| 英国 | 在线安全法案,2025 年透明度扩展 | 已生效。 | 平台义务,非用户义务。 |
威胁模型
此工具旨在保护已经分发的 AI 图像,使其免受自动检测系统(社交平台的“Made with AI”标签、第三方分类器、内容政策过滤器)的影响。它不能追溯性地匿名化生成。
特别需要注意的是,SynthID-Image v2(Google,2025 年 10 月随 Gemini 3 Pro / Nano Banana Pro / Imagen 4 / Veo 部署)嵌入了一个 136 位有效载荷(arxiv 2510.09263 (https://arxiv.org/abs/2510.09263))。该有效载荷据信编码了用户/会话标识符。如果原始带水印的文件曾经过提示发起者控制的系统(保存的 Gemini 账户历史记录、上传到 Google 产品的截图、备份),Google 仍能将该原始文件链接到生成账户。从你拥有的副本中剥离水印并不会抹去 Google 的服务器端记录。
威胁模型适用的用例:
- 你自己生成了图像,希望将其作为自己的作品发布,并接受如果 Google 将来公布其检测器日志的后果。
- 你在进行安全/鲁棒性评估。
- 你在保护艺术或历史记录,使其免受“AI 生成”误报标签的影响。
威胁模型不适用的用例:
- 生成图像后期望移除水印就能在 Google 面前匿名化自己。这行不通。
- 分发 AI 生成内容同时声称人类作者身份。水印只是多个可追溯层之一。
此工具旨在用于合法目的,例如:
- 隐私保护(移除泄露用户账户标识符的元数据)。
- 艺术保存和合理使用研究。
- 从人工编辑的照片中移除误报的“Made with AI”标签。
- 安全研究和鲁棒性研究。
将 AI 来源标记移除以将 AI 生成内容虚假表示为人类创作,可能违反上述法律、DMCA 以及平台服务条款。用户全权负责确保其使用符合所有适用法律。作者不赞成将本工具用于欺骗、欺诈或任何违反适用法律或法规的活动。
许可证
MIT
相似文章
OpenAI 让检查图片是否由自家模型生成变得更简单
OpenAI 宣布了包括 C2PA 元数据和 SynthID 水印在内的新措施,以帮助验证由其模型生成的图片,同时还推出了一款公开验证工具。
851-labs/background-remover
851-labs/background-remover 是一个开源AI模型,用于移除图像背景。可在Replicate上使用,在Nvidia T4 GPU上推理成本低且速度快。
开源背景移除应用及MCP
作者开源了一个基于开源技术的背景移除工具,现在也可作为无头MCP服务供AI代理使用。
逆向 SynthID
安全研究员详解如何逆转 Google 的 SynthID 隐形水印,使 AI 生成图像的媒体溯源声明失效,暴露出专有水印方案的根本缺陷。
AUTOMATIC1111/stable-diffusion-webui
该开源项目为 Stable Diffusion 提供了一个功能丰富的 Web 界面,使用户能够借助各种 AI 模型和扩展轻松生成、编辑和放大图像。项目基于 Gradio 构建,支持 txt2img、img2img、inpainting 以及众多由社区驱动的本地 AI 图像生成工具。