墨穗app.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v1.0.165 · 墨穗笔记
笔记

Notebase墨穗
静水流深,落墨成穗。

0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →

笔记

0
加载中...

工具

0

此页用于记录用户反馈问题后的每一次改进

关于

笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

不想公开、只想临时给人看:点“分享”生成一条带密码和有效期的链接,到期自动失效,你也能随时撤销。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势

// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

ShadowAqueduct/watermark-remover:多厂商AI水印清除利器,从Unicode到C2PA的全栈净化

terminal

一个用于清除多厂商AI生成内容水印(Unicode、C2PA、元数据)的Python开源工具库。

背景:AI水印的“猫鼠游戏”与真实痛点

随着ChatGPT、Claude、Gemini、Midjourney等AI生成工具的普及,厂商为了保护版权、追踪内容来源,开始在输出中嵌入各种形式的“水印”。这些水印并非传统图片上的可见logo,而是隐藏在文本字符、文件元数据、图像像素甚至C2PA(Coalition for Content Provenance and Authenticity)标准中的数字指纹。

对于普通用户来说,这些水印带来几个实际困扰:

  1. 文本水印破坏排版与语义:某些AI模型会在输出中插入零宽字符(Zero-Width Characters)或同形异义字(Homoglyphs),这些字符肉眼不可见,但在复制粘贴、文本处理或发布到某些CMS时会导致格式错乱、搜索索引异常,甚至被内容安全系统误判。
  2. C2PA元数据泄露来源:很多AI工具(如OpenAI的DALL·E 3、Adobe Firefly)会在生成的图片中嵌入C2PA签名,记录“由AI生成”及模型版本、时间戳等信息。如果用户希望匿名发布或二次创作,这些信息会成为隐私隐患。
  3. 文件级元数据残留:PNG、JPEG、SVG、PDF、DOCX等文件格式中,AI工具会写入自定义的元数据字段(如prompt、model、seed),这些字段可能包含用户输入的关键词,造成敏感信息泄露。

ShadowAqueduct/watermark-remover正是针对上述痛点,提供了一套统一的、可扩展的Python接口,帮助开发者或高级用户批量清除这些水印,同时保留文件的核心内容与可用性。

项目核心功能与技术架构

1. 多类型水印清除管线

项目采用模块化管线设计,每个水印类型对应一个独立的处理模块,通过统一的PurgeResult返回处理状态。核心模块包括:

  • Unicode文本净化:检测并移除零宽空格(\u200B)、零宽非连接符(\u200C)、零宽连接符(\u200D)、零宽断行符(\uFEFF)等。同时支持同形异义字替换(例如将Cyrillic字母'а'替换为Latin 'a'),需配合--unicode-normalize选项。
  • 统计重写钩子(Statistical Rewrite Hooks):这是项目的一大特色。对于无法通过字符映射清除的文本水印(如基于词频或句法特征的隐式水印),项目提供了一套基于统计的改写接口。用户可以注入自定义的改写函数(例如同义词替换、句式变换),通过--rewrite-hook参数指定Python模块路径。
  • C2PA清除:解析PNG、JPEG文件的C2PA chunk(CAI、C2PA等),移除整个manifest块,并重写文件头以保持格式合法。
  • 元数据清理:针对不同格式提供专用清理逻辑:
    • PNG:删除tEXt、zTXt、iTXt中的AI相关键(如prompt、parameters)。
    • JPEG:删除EXIF、XMP中的特定标签。
    • SVG:移除<metadata>元素及data-*属性。
    • PDF:通过pikepdf重写对象流,剔除/Metadata引用。
    • DOCX:删除docProps/core.xml和docProps/app.xml中的自定义属性。
    • HTML:移除<meta name="generator">及data-*属性。
    • Markdown:清除YAML front-matter中的AI字段。

2. 命令行与Python API双接口

项目提供两种使用方式,满足不同场景需求。

命令行安装与使用

bash

安装(推荐使用虚拟环境)

pip install watermark-remover

清除单个文件的所有水印

watermark-remover purge image.png

递归处理目录下所有文件

watermark-remover purge ./docs/ --recursive

仅清除文本中的Unicode水印,不处理文件元数据

watermark-remover purge text.txt --unicode-only

使用自定义统计改写钩子

watermark-remover purge article.md --rewrite-hook my_rewriter.py

输出JSON格式的详细报告

watermark-remover purge image.png --report-json

Python API 示例

python
from watermark_remover import WatermarkRemover, PurgeOptions

初始化清理器

remover = WatermarkRemover()

定义选项

options = PurgeOptions(
unicode_normalize=True,
remove_c2pa=True,
metadata_fields=["prompt", "seed", "model"],
rewrite_hook="my_rewriter" # 可选,指定模块路径
)

执行清理

result = remover.purge("generated_image.png", options)

检查结果

print(result.success) # True
print(result.removed_watermarks) # ['c2pa', 'png_textual_metadata']
print(result.rewritten_text) # 如果应用了文本改写,这里返回新文本

处理内存中的文本

cleaned_text = remover.purge_text("Hello\u200BWorld")
assert cleaned_text == "HelloWorld"

3. 核心亮点

  • 多厂商覆盖:内置针对OpenAI、Anthropic、Google、Midjourney、Stability AI等主流厂商水印的特征库,并允许用户通过JSON规则文件扩展。
  • 无损处理优先:对于图片和PDF,项目尽可能保留原始像素和排版,仅删除水印相关数据块,避免重新编码导致的质量损失。
  • 可审计性:每次清理操作都会生成详细的PurgeResult,记录移除的水印类型、位置、字节数,方便用户验证。
  • 性能优化:使用lxml处理XML(SVG/HTML),pikepdf处理PDF,Pillow处理图片,均为C扩展,处理速度远超纯Python实现。
  • 安全设计:默认不修改原始文件,而是生成_cleaned后缀的新文件,避免误操作。

适用场景

  1. 内容创作者与博主:从AI工具生成文章后,需要去除隐藏的Unicode字符,确保在WordPress、Medium等平台正常排版。
  2. 数据科学家与NLP研究者:清洗从AI模型采集的文本语料,去除零宽字符干扰,保证模型训练数据的纯净性。
  3. 匿名发布者:对AI生成的图片进行C2PA剥离,防止通过元数据追踪到作者身份。
  4. 企业内容安全团队:在将AI输出集成到内部知识库前,批量清除元数据,防止提示词泄露。
  5. 文档管理系统管理员:批量清理上传的DOCX/PDF文件,确保合规性。

与同类项目的对比

特性 watermark-remover exiftool c2pa-toolkit text-unidecode
支持Unicode零宽字符清除 ✅ 原生支持 ❌ ❌ ✅ 仅字符映射
支持C2PA清除 ✅ 自动检测并移除 ❌ ✅ 但仅限C2PA ❌
支持PDF元数据重写 ✅ 通过pikepdf ✅ 有限支持 ❌ ❌
支持统计改写钩子 ✅ 插件机制 ❌ ❌ ❌
批量处理目录 ✅ 递归 ✅ ❌ ✅ 文本文件
输出审计报告 ✅ JSON/文本 ✅ 文本 ✅ 部分 ❌
多厂商特征库 ✅ 内置+可扩展 ❌ ❌ ❌

exiftool是元数据处理的瑞士军刀,但它不处理Unicode文本水印,也不理解C2PA的语义结构。c2pa-toolkit是官方C2PA参考实现,功能强大但仅限C2PA格式,且依赖Rust环境。text-unidecode仅做字符转写,无法处理零宽字符和统计水印。

watermark-remover的独特优势在于:统一处理文本、图片、文档三类载体,且提供可扩展的改写钩子,这是其他工具无法比拟的。

局限性与注意事项

  • 统计改写钩子需要自定义:内置的改写逻辑仅提供基础的同义词替换模板,针对特定模型(如GPT-4的隐式水印)需要用户自行训练或编写规则。
  • C2PA清除可能违反服务条款:某些AI厂商明确禁止移除水印,请务必遵守当地法律和平台协议。
  • 对图像像素级水印无效:如果AI在图片像素中嵌入隐式水印(如通过傅里叶变换),本工具无法检测或清除,需依赖专用算法。
  • PDF重写可能导致格式微调:使用pikepdf重写对象流时,极少数复杂PDF可能出现字体或布局细微变化。

项目活跃度与社区

项目在GitHub上已获得829颗星,Python实现,依赖较少(Pillow、pikepdf、lxml),安装简单。目前维护活跃,Issue响应较快。适合有Python基础的中高级开发者使用,也适合作为安全研究或内容治理的工具链组件。

总结

ShadowAqueduct/watermark-remover并非一个“破解AI版权保护”的灰色工具,而是一个内容治理与隐私保护的实用库。它解决了AI生成内容在真实世界落地时的格式污染、元数据泄露和溯源追踪问题。对于需要批量处理AI输出的开发者、内容平台运营者以及注重隐私的个人用户,这是一个值得纳入工具箱的高效解决方案。

项目地址:https://github.com/ShadowAqueduct/watermark-remover

相似推荐
MetasploitPastaHashcatWezTermDenotig
编写使用方法
Markdown 格式 · Ctrl+Enter 确定
0 字新建笔记
欢迎回来
登录你的墨穗笔记账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属墨穗笔记
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

隐私提醒

取消
编辑工具
受控分享
为这篇笔记生成限时 / 带密码的临时链接
关闭