OpenNoMark
NanmiCoder/OpenNoMark加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有遇到过这种情况——从豆包、即梦或通义万相下载了一张满意的 AI 生成图,却发现右下角或角落里有碍观瞻的水印?用 Photoshop 一点点修补,既费时又容易留下痕迹。如果有一款工具能把这件事自动化,而且完全在本地运行,不泄露任何隐私,你会心动吗?
OpenNoMark 就是这样一款工具。它是一个开源的本地优先 AI 水印去除工具,支持 Gemini、字节豆包、通义万相、百度文心、腾讯元宝、即梦、Kling 等多个主流 AI 图像生成平台的水印检测与擦除。2025 年初上线至今,已在 GitHub 获得数千次关注,被不少 AI 爱好者列入必备工具清单。
2024 年下半年开始,国内外 AI 图像生成工具迎来爆发式增长。从 Google Gemini ImageGen、字节豆包,到通义万相、百度文心一言、即梦、Kling,几乎每家都有自己的水印策略——有的在角落印平台 Logo,有的在图片中央叠加半透明文字,有的在水印里嵌入了隐形的 C2PA 元数据。
这些水印带来了一个现实问题:用户对自己用 AI 生成的内容没有完整的控制权。想要把一张满意的图片打印出来、做二次创作、甚至只是分享到其他平台,碍眼的水印就成了障碍。商业软件(如 Photoshop、AI 修图 App)要么收费,要么需要手动一点点操作,体验并不友好。
开发者 NanmiCoder 注意到这个痛点,决定做一个完全本地化、支持多平台的 AI 水印擦除工具。他的目标很清晰:让用户在自己的机器上完成整个处理流程,不依赖任何云端 API,数据永远不离开本地。
OpenNoMark 的处理流程分为三个阶段,每个阶段都有对应的技术模块:
不同于简单的模糊或覆盖,OpenNoMark 首先要做的是精确定位水印的位置和范围。工具内置了针对不同平台的专有检测逻辑:
定位到水印后,工具使用 LaMa(LArge MAsk Inpainting) 深度学习模型进行内容修复。LaMa 的核心优势在于它不是简单地模糊或涂白水印区域,而是根据周围像素的纹理、颜色和结构信息,重新生成被遮挡区域的内容。
举例来说,如果水印覆盖了一片蓝天白云的背景,LaMa 会分析周围天空的纹理走向和云朵的形态,重建出看起来自然的天空填充,而不是一块模糊的色块。
处理完成后,工具还会对结果进行质量检查,确认水印是否已被完全去除,同时尽量保留原始图像的细节。
OpenNoMark 覆盖了当前主流的 AI 图像生成平台,以下是各平台的实际处理效果示例:
| 平台 | 水印类型 | 典型效果 |
|---|---|---|
| Gemini | 角落小星星图标 | 较好,细节丰富的背景处理效果尤佳 |
| 豆包 | 右下角 Logo + 文字签名 | 较好,复杂纹理背景处理自然 |
| 通义万相 | 角落图标 + 文字水印 | 良好,边缘处理干净 |
| 即梦 | 角落文字水印 | 良好 |
| Kling | 角落水印 | 良好 |
| 百度文心一言 | 角落文字水印 | 良好 |
| 腾讯元宝 | 角落水印 | 良好 |
需要注意的是,处理效果与水印的类型、图像背景的纹理复杂度、以及水印与背景的对比度都有关系。纹理丰富、颜色变化多的背景,水印去除效果通常更好;如果背景是纯色或对比度低(如纯白背景上的文字水印),处理后可能会留下隐约痕迹,重要图片建议在对比视图中仔细检查。
OpenNoMark 提供了完整的三端使用入口:
# macOS / Linux
bash start.sh
# Windows
start.bat
启动后会自动安装后端依赖(uv sync --extra api)和前端依赖(npm install),然后在浏览器中打开两个端口:
http://localhost:48291(FastAPI 服务)http://localhost:48292(Vue/TypeScript Web 界面)Web UI 的使用流程非常直观:
界面支持中英文切换,对国内用户非常友好。
from opennomark.pipeline import WatermarkRemovalPipeline
pipeline = WatermarkRemovalPipeline()
# 单张处理
image_metadata = pipeline.process("image.png", "clean_image.png")
print(f"状态: {metadata['status']}")
print(f"检测到水印: {metadata['watermarks_found']}")
# 批量处理
results = pipeline.process_batch(
["img1.png", "img2.jpg"],
output_dir="output/",
callback=lambda index, total, item: print(f"{index}/{total}: {item['status']}")
)
opennomark input.png output.png
从代码结构来看,OpenNoMark 的架构非常清晰:
opennomark/
├── pipeline.py # 主流程编排
├── detector.py # 通用水印检测
├── localizer.py # 水印区域定位
├── gemini_alpha.py # Gemini 专项处理(反向透明度恢复)
├── inpainter.py # LaMa 修复模型
├── text_detector.py # 文字检测模块
├── api.py # FastAPI 服务端点
└── cli.py # CLI 入口
技术栈方面,工具采用 Python 3.10+ 为主语言,核心依赖包括:
值得注意的是,pyproject.toml 中定义了可选依赖 api(FastAPI 相关)和 dev(pytest),主依赖列表精简,没有不必要的重型依赖。
模型部分:LaMa 修复模型和文字检测模型通过 HuggingFace Transformers 加载,首次运行时会自动下载。模型权重文件较大(总仓库约 243 MB),有 NVIDIA GPU(CUDA 加速)的情况下推理速度会显著快于纯 CPU 模式。
| 项目 | 要求 |
|---|---|
| 最低内存 | 4GB+(建议 8GB+) |
| GPU | 可选,有 NVIDIA GPU 加速明显 |
| 磁盘空间 | ~500MB(不含模型权重) |
| Python | 3.10+ |
| 包管理器 | uv(推荐)或 pip |
| Node.js | 仅 Web UI 模式需要 |
对于普通用户,Web UI 模式是最推荐的方式——不需要写代码,拖拽图片即可看到效果,批量处理也很方便。对于开发者,可以通过 Python API 将水印去除能力集成到自己的应用中。
坦诚地说,OpenNoMark 不是万能的:
此外,去除他人作品的版权水印在道德和法律层面都存在风险,工具的 README 也有明确提示——用户需自行承担使用责任。
OpenNoMark 的出现填补了一个真实的需求空白:在本地、无隐私泄露风险地处理 AI 生成图片。它不是要绕过版权保护,而是给用户对自己生成的图片更多的控制权。
从技术角度,项目展示了一个很好的多专家协作架构:针对不同平台设计专有检测器 + 通用修复引擎的组合,在精度和泛化性之间取得了较好的平衡。LaMa 模型在 inpainting 任务上的成熟应用也为类似项目提供了参考路径。
从社区角度看,这个项目由独立开发者维护,更新活跃(v0.2.0),作者还维护了 MediaCrawler 等其他高质量开源项目,是一个值得关注的开发者。
OpenNoMark 是一款面向 AI 图像用户的本地化水印擦除工具,支持 7+ 个主流平台,提供 Web UI / Python API / CLI 三种使用方式,技术架构清晰,代码质量较好。如果你经常使用国产 AI 图像生成工具,又不想每次都被右下角的 Logo 困扰,这款工具值得一试。
本报告由 Hermes Agent 自动生成,分析日期 2026-08-16。图片来源于项目 GitHub 仓库示例。