YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Invisible Watermark Embedding Toolkit
这是一个基于 Python/Tkinter 的图像隐形文字水印工具,支持水印嵌入、盲提取、PSNR 评估,以及多种频域和 AI 水印算法。项目默认使用 invismark_grid,在 InvisMark 预训练模型基础上做网格化长文本嵌入,并提供针对旋转、裁剪、缩放的鲁棒提取入口。
功能特性
- 图形界面:通过
app.py选择图片、输入文本、嵌入水印并预览结果。 - 盲提取:提取时不需要原图,按嵌入算法选择对应模式即可。
- 多算法支持:
invismark_grid:默认算法,基于 InvisMark 模型按 256x256 网格切片嵌入长文本。invismark:原始 InvisMark 模型,适合短消息和高鲁棒场景。invismark_pro/invismark_logpolar:实验性增强模式,用于旋转鲁棒性探索。adaptive_dwt:自研 DWT-QIM 频域算法,画质高、无需模型。dwt_dct/dwt_dct_svd:兼容第三方传统水印库。
- 质量反馈:嵌入后自动计算 PSNR,便于判断图像质量损失。
项目结构
.
├── app.py # Tkinter 桌面应用入口
├── watermark_engine.py # 水印算法统一封装
├── invismark_repo/ # Microsoft InvisMark 子模块
├── models/ # 本地模型目录,权重不进入 GitHub
├── requirements.txt # Python 依赖
└── README.md
模型文件
模型权重不存放在 GitHub。请从 Hugging Face 下载:
shelock/watermark-invismark-model
下载后放到:
models/paper.ckpt
也可以使用 CLI 下载:
pip install -U huggingface_hub
huggingface-cli download shelock/watermark-invismark-model paper.ckpt --local-dir models --local-dir-use-symlinks False
安装
建议使用 Python 3.10 或更新版本。
git clone --recurse-submodules https://github.com/CC-0104/watermark.git
cd watermark
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
如果已经普通 clone,请补拉子模块:
git submodule update --init --recursive
PyTorch 的 CUDA 版本与显卡环境有关。如果需要 GPU 加速,建议按 PyTorch 官网 选择对应 CUDA 版本安装。
运行
python app.py
界面包含两个页签:
- 嵌入水印:选择原图,输入水印文本,选择算法后点击嵌入。
- 提取水印:选择带水印图,选择同一算法后点击提取。
默认算法 invismark_grid 不需要填写密码和比特长度。传统频域算法可能需要嵌入时返回的比特长度,并且密码需与嵌入时一致。
使用建议
- 优先使用 PNG 输出,避免 JPEG/WebP 的有损压缩破坏水印。
invismark_grid适合较长文本,但要求图片尺寸至少能容纳 256x256 网格块。adaptive_dwt不依赖模型,适合轻量部署和高画质场景。- 对经过旋转、裁剪、缩放处理的图片,可启用鲁棒提取。
依赖说明
核心依赖包括:
torch/torchvision:InvisMark 模型推理。opencv-python、Pillow、numpy、PyWavelets:图像处理与频域变换。bchlib:InvisMark 消息纠错。invisible-watermark、blind-watermark:传统水印算法兼容。
清理策略
仓库仅保留运行必需代码、依赖声明、子模块声明和说明文档。以下内容不会进入 GitHub:
models/下的模型权重。- 本地运行配置
.wm_config.json。 __pycache__/、测试脚本、测试图片和实验性清洗目录。- 编辑器配置目录
.vscode/。
致谢
AI 水印模型部分基于 Microsoft 的 InvisMark 项目。使用或引用相关模型能力时,请同时参考原项目的论文、许可证和引用要求。
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support