wiltodelta/remove-ai-watermarks
Remove visible and invisible AI watermarks from images and video, and AI provenance metadata from images, video, and audio. Python library, CLI, and agent skill 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 加速扩散。
相关
- 项目
- 项目
- 项目
- 项目
- 项目