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]" 因情况而异

如何使用

  1. 安装 – 基础包为您提供元数据命令。根据需要添加附加功能,例如:
    uv tool install remove-ai-watermarks               # 仅元数据
    uv tool install "remove-ai-watermarks[visible]"   # 可见去除
    uv tool install "remove-ai-watermarks[qwen-zimage]"  # 不可见去除 (CUDA)
    
  2. 运行 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
    
  3. 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 加速扩散。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目