Watermark-Remover:一款面向多供应商 AI 水印的终极清除工具,支持文本、图像与文档格式
> Purge multi-vendor AI watermarks: clean Unicode text, apply statistical rewrite hooks, and clear C2PA plus metadata from PNG, JPEG, SVG, PDF, DOCX, HTML, and MD.
在生成式 AI 内容泛滥的今天,水印已成为内容溯源与版权保护的重要手段。然而,对于需要二次创作、本地存档或跨平台发布的用户而言,AI 水印(如 C2PA 元数据、Unicode 字符隐藏标记、统计特征)往往成为负担。GitHub 上开源的 **ShadowAqueduct/watermark-remover** 正是为解决这一痛点而生——它是一款多供应商 AI 水印清除工具,覆盖文本、图像及多种文档格式,提供了一套完整且可扩展的净化方案。
## 一、项目解决的问题
AI 水印主要分为三类:
1. **显式元数据水印**(如 C2PA 标准):嵌入 PNG、JPEG 等文件的 EXIF、XMP 或专用数据块中,记录生成者、模型版本等信息。
2. **隐式文本水印**:通过 Unicode 零宽字符、特殊字形或同形异义词(homoglyph)在文本中隐藏标识。
3. **统计/行为水印**:基于模型输出的 token 分布或特定改写风格,通过统计检测识别来源。
现有工具通常只针对单一格式或单一水印类型,且操作复杂(需手动提取、修改二进制数据)。Watermark-remover 则提供了一站式解决方案:
- **文本清理**:自动检测并移除 Unicode 隐藏字符(如零宽空格、零宽连接符、变体选择符)。
- **统计改写钩子**:允许用户自定义改写规则,破坏模型输出的统计特征(如替换高频词、调整句长分布)。
- **元数据清除**:从 PNG、JPEG、SVG、PDF、DOCX、HTML、MD 中剥离 C2PA、IPTC、XMP 等所有可编辑元数据。
## 二、安装与使用
### 安装
项目基于 Python 3.9+,通过 pip 即可安装:
bash
pip install watermark-remover
若需处理 PDF 或 DOCX,还需安装额外依赖:
bash
pip install watermark-remover[pdf] watermark-remover[docx]
### 命令行使用
bash
# 清除单个图片文件的元数据
watermark-remover image --input photo.png --output clean_photo.png
# 批量处理目录下所有文件
watermark-remover batch --input ./ai_output/ --output ./cleaned/ --formats png jpg pdf
# 清理文本文件中的 Unicode 隐藏字符
watermark-remover text --input article.md --output article_clean.md --remove-unicode
# 对文本应用统计改写(使用内置规则)
watermark-remover text --input article.md --output rewritten.md --statistical-rewrite
### Python API 示例
python
from watermark_remover import remove_metadata, clean_text, rewrite_text
# 清除图像元数据
remove_metadata("input.png", "output.png", formats=["png", "jpg"])
# 清理文本中的隐藏字符
cleaned = clean_text("Hello\u200bWorld", remove_unicode=True)
# 应用统计改写钩子
rewritten = rewrite_text(cleaned, hooks=["replace_common_words", "adjust_sentence_length"])
## 三、核心亮点
1. **多格式支持**:覆盖 8 种常见格式(PNG、JPEG、SVG、PDF、DOCX、HTML、MD、纯文本),远超同类工具(如 exiftool 仅处理图像,pdf-redact-tools 仅处理 PDF)。
2. **深度清理**:不仅删除显式元数据,还针对 PDF 的隐藏对象、DOCX 的 XML 扩展属性、SVG 的 `<metadata>` 标签进行递归扫描,确保无残留。
3. **统计改写引擎**:内置 10+ 种改写钩子(如词汇替换、句子拆分、同义词替换),可自定义规则,有效破坏基于统计的 AI 水印检测(如 GPTZero 的困惑度分析)。
4. **安全备份**:默认在清理前自动生成 `.bak` 备份文件,防止误操作。
5. **可扩展架构**:通过插件系统支持新增格式或自定义清理策略,适合企业级集成。
## 四、适用场景
- **内容创作者**:将 AI 生成的草稿去水印后,用于商业发布(需注意合规性,仅限拥有版权或授权的内容)。
- **研究人员**:需要清理数据集中的 AI 生成标记,用于模型训练或算法评估(如检测 AI 文本的对抗样本)。
- **隐私保护者**:避免个人 AI 工具生成的文档携带可追踪的元数据。
- **企业文档管理**:批量清理对外发布的 PDF、DOCX 中的内部 AI 工具标识。
## 五、同类项目对比
| 工具 | 文本清理 | 图像元数据 | PDF 处理 | 统计改写 | 易用性 |
|------|----------|------------|----------|----------|--------|
| **watermark-remover** | ✅ 全面 | ✅ 深度 | ✅ 完整 | ✅ 内置 | 高(CLI+API) |
| exiftool | ❌ | ✅ 强大 | ❌ | ❌ | 中(需学习参数) |
| pdf-redact-tools | ❌ | ❌ | ✅ 基本 | ❌ | 低(依赖其他工具) |
| text-cleaner(未知名) | ✅ 基础 | ❌ | ❌ | ❌ | 高但功能单一 |
| C2PA 官方工具 | ❌ | ✅ 仅 C2PA | ❌ | ❌ | 低(需 SDK) |
**优势**:Watermark-remover 是唯一同时覆盖文本、图像、Office 文档且内置统计改写功能的开源工具。缺点是 PDF 清理依赖 `pikepdf`,处理加密 PDF 时需先解密。
## 六、技术实现简析
- **图像元数据清除**:使用 `Pillow` 读取图片,遍历所有 EXIF、IPTC、XMP 标签,重建图像对象并保存为无元数据版本。对于 SVG,使用 `lxml` 解析并删除 `<metadata>` 及所有 `data-*` 属性。
- **PDF 清理**:基于 `pikepdf` 库,删除文档目录中的 `/Info` 字典、`/Metadata` 流,并移除所有未引用的对象。
- **DOCX 清理**:修改 `docProps/core.xml` 和 `docProps/app.xml`,去除 creator、lastModifiedBy 等字段;同时清理 `word/document.xml` 中嵌入的隐藏文本。
- **Unicode 清理**:使用正则匹配 `\u200b-\u200f`、`\u2060-\u206f` 等区间,并支持自定义黑名单。
- **统计改写**:基于 `spaCy` 进行词性标注,根据规则替换同义词(使用 `wordfreq` 库选择频率相近的词),并调整句子长度(通过合并或拆分短句)。
## 七、局限与注意事项
- **不可逆性**:清除元数据后,文件将丢失原始创作信息,请确保已备份。
- **法律风险**:请仅对您拥有版权或明确授权的内容使用,避免侵犯他人权益。
- **统计改写效果有限**:对于高度风格化的 AI 文本(如 GPT-4 的独特韵律),改写可能降低可读性,需人工微调。
- **不支持视频/音频**:目前仅处理静态媒体和文本。
## 八、总结
Watermark-remover 是一款功能全面、设计精巧的开源工具,尤其适合需要批量处理 AI 生成内容的用户。它的多格式支持、深度清理和可定制改写机制在同类中脱颖而出。虽然存在一些局限,但作为免费解决方案,其性价比极高。推荐给所有关注 AI 内容溯源与隐私保护的技术人员。
**项目链接**:https://github.com/ShadowAqueduct/watermark-remover