wiltodelta/remove-ai-watermarks
Remove visible and invisible AI watermarks and provenance metadata from images and video. Python library and CLI for SynthID, C2PA, EXIF, IPTC, XMP, and common generative-AI marks.
概述
remove‑ai‑watermarks 是一个 Python 库和命令行工具,可让您检测并去除您拥有的媒体中的 AI 生成来源信号。它适用于静态图像和视频文件,并且可以:
- 识别可见的供应商水印(例如,Google Gemini 闪光、豆包、Sora、Veo 等)。
- 通过使用 OpenCV、MI‑GAN 或 LaMa 对区域进行修复来去除这些可见标记。
- 使用基于扩散的再生来擦除不可见的像素级水印(SynthID)—— 仅限 CUDA 操作。
- 从图像和视频容器中剥离 AI 相关元数据,如 C2PA、EXIF、XMP、IPTC 和供应商特定标签。
- 处理单个文件或整个目录,并提供单独的命令用于图像(
identify、visible、metadata、invisible、all)和视频(video identify、video visible、video invisible、video all、video batch)。
该项目定位为研究级、合法使用的工具,适用于您自己创建的内容;它不针对第三方受版权保护的水印。
主要功能
| 功能 | 作用 | 典型命令 | GPU 要求 |
|---|---|---|---|
| 来源检测 | 扫描已知的可见标记和嵌入的 AI 元数据。 | remove-ai-watermarks identify img.png |
否 |
| 可见水印去除 | 遮盖检测到的徽标并填充(OpenCV、MI‑GAN、LaMa)。 | remove-ai-watermarks visible img.png -o clean.png |
否(可选用于学习后端) |
| 不可见(SynthID)去除 | 使用扩散模型重新生成整个图像,以破坏隐藏的像素水印。 | remove-ai-watermarks invisible img.png -o clean.png |
是 – CUDA GPU |
| 元数据剥离 | 在不重新编码图像/视频的情况下移除 C2PA、EXIF、XMP、IPTC、TC260 AIGC 等标签。 | remove-ai-watermarks metadata img.png --remove -o clean.png |
否 |
| 视频广泛支持 | 对 MP4、MOV、MKV、WebM、AVI、FLV 具有相同功能;还可以批量处理文件夹。 | remove-ai-watermarks video all input.mp4 -o clean.mp4 |
取决于模式(不可见需要 GPU) |
| 可扩展附加功能 | 可选的 pip 附加功能仅安装您需要的部分([visible]、[video]、[qwen‑zimage]、[migan] 等)。 |
uv tool install "remove-ai-watermarks[visible]" |
因情况而异 |
如何使用
- 安装 – 基础包为您提供元数据命令。根据需要添加附加功能,例如:
uv tool install remove-ai-watermarks # 仅元数据 uv tool install "remove-ai-watermarks[visible]" # 可见去除 uv tool install "remove-ai-watermarks[qwen-zimage]" # 不可见去除 (CUDA) - 运行 CLI 命令 – 示例:
# 检测任何 AI 来源 remove-ai-watermarks identify photo.jpg # 去除可见的 Gemini 水印及其元数据 remove-ai-watermarks visible photo.jpg -o clean.jpg # 仅剥离元数据 remove-ai-watermarks metadata photo.jpg --remove -o clean.jpg # 去除隐藏的 SynthID 水印(需要 GPU) remove-ai-watermarks invisible photo.jpg -o clean.jpg --force - Python API – 导入包并调用高级函数:
import remove_ai_watermarks as raiw # 检测标记 info = raiw.identify("photo.jpg") # 去除所有内容(可见 + 不可见 + 元数据) result = raiw.remove_all("photo.jpg", "clean.jpg") print(result.visible_status, result.invisible_status)
谁可能需要这个?
- 内容创作者,他们使用 AI 模型生成图像或视频,并希望在没有提供商品牌的情况下发布它们。
- 研究人员,研究 AI 来源,需要一种方法将信号与媒体干净地分离以进行实验。
- 开发人员,构建必须为下游处理(例如,训练数据准备、归档)提供“无水印”资产的管道。
限制与安全说明
- 该工具仅适用于您拥有的媒体;它明确避免去除保护第三方付费内容的水印。
- 不可见水印去除依赖于扩散模型,并且是有损的 – 重新生成的图像可能与原始图像有细微差异。
- 某些司法管辖区(例如,中国)限制去除 AI 来源标记;该存储库包含法律安全说明。
- 检测仅限于支持的提供商列表(Google、Microsoft、豆包、Sora、Veo 等)。除非添加到代码库中,否则不会识别新的或自定义水印。
- 不可见去除仅限 GPU;不提供 CPU 回退。
许可证与社区
- 该包在 PyPI 上以开源许可证发布(请参阅
LICENSE)。 - README 中显示了 CI 状态徽章、下载统计和赞助按钮。
- 该项目维护少量文档文件(
docs/cli.md、docs/installation.md、docs/legal-and-safety.md等)和测试套件。
快速总结
remove-ai-watermarks 是一个真正的、积极维护的 Python 库,为您提供命令行和编程访问权限,以检测和去除图像和视频中的可见和隐藏 AI 来源信号。它专注于合法的、自生成的内容,并为最难的不可见水印提供可选的 GPU 加速扩散。
相关
- 项目
- 项目
- 项目
- 项目
- 项目