图片去水印
官方脚本
可调用节点
v1.0.0
图片去水印脚本 | 框选涂抹标注,MiGAN本地AI修复,离线CPU推理无需联网,批量多图处理,支持PNG/JPG/BMP/WEBP/TIF,右键菜单一键去水印,可被定时任务与节点联动调用
脚本能力
直接启动支持
右键启动支持
快捷键启动不支持
超级复制启动不支持
定时任务支持
可被其他脚本调用是
依赖其他脚本否
图形化启动界面不支持
框选或涂抹出水印位置,本地 MiGAN 修复模型自动重绘该区域,全程离线,图片不出本机。
核心特性
- 只擦你圈的地方:弹出标注窗口,框住或涂抹水印,模型仅重绘标注区域,其余像素原样保留
- 本地 AI 修复:基于 MiGAN 图像修复模型,纯 CPU 推理,无需联网、无需 API Key
- 不规则水印也能处理:花体 Logo、斜向文字、半透明角标用画笔涂一遍即可,不必勉强框成矩形
- 批量多图:一次选中多张,只弹一个窗口,左侧缩略图逐张切换标注;位置相同的图点「复制到全部」一次搞定
- 不改原图:在同目录生成
原名_no_watermark.png,原文件保持不动 - 可进工作流:支持定时任务批量处理,也能被其他脚本作为节点调用
脚本演示

安装方法
本脚本的运行环境、AI 模型与标注窗口均依赖「不忙脚本盒子」,建议仅通过盒子安装和使用。
前置条件:安装好 不忙脚本盒子
- 打开盒子 → 脚本市场 → 搜索「图片去水印」
- 点击「安装」,等待30秒左右即可安装完成
使用方式
- 右键启动(最常用)
- 在文件管理器中选中一张或多张图片
- 右键 → 选择「图片去水印」
- 在弹出的窗口里框选或涂抹水印 → 点「开始去水印」(或按 Enter)
- 标注完成后会自动弹出命令行窗口,显示处理进度与生成的文件路径
- 直接启动
- 在盒子里点击脚本卡片 → 在启动窗口中选择图片 → 确定后进入标注窗口
- 定时任务 / 节点调用
- 这两种方式无法弹窗标注,需填写 「固定框选区」 参数
💡 使用提示
- 标注要盖住整条水印:模型只重绘你圈到的地方。文字水印请连上下沿一起框住,宁可多框一点,不要只框中间
- 矩形还是涂抹:角标、条状水印用矩形最快;斜向或不规则水印切到「涂抹」,用笔宽滑杆控制粗细
- 撤销 / 清空:标错点「撤销」回退上一步,点「清空本张」重来;没有标注任何区域时无法提交
- 多图怎么标:只弹一个窗口,左侧是本次选中图片的缩略图,点谁就标谁(键盘 ← → 也能切换)。位置相同的批量图,标完一张点「复制到全部」即可套用;没标注的图片会直接跳过
- 固定框选区怎么写:
x,y,w,h四个 0~1 的相对坐标,表示水印区左上角位置和宽高占整图的比例。例如水印在右下角、约占 25% 宽 6% 高,就填0.7,0.9,0.25,0.06 - 速度:纯 CPU 约 2~3 秒一张,图片越大耗时略长
- 效果预期:平滑背景、渐变、天空、皮肤上的水印效果最好;水印压在复杂文字或精细纹理上会留下轻微涂抹感,这是修复类模型的共性
节点脚本(开发者阅读)
被其他脚本通过盒子 /api/link 调用时,需提供图片路径与固定框选区:
{
"data": { "target_paths": ["D:/photos/1.jpg", "D:/photos/2.jpg"] },
"params": { "rect": "0.7,0.9,0.25,0.06", "output_dir": "" }
}
返回信封的业务键:
| 键 | 类型 | 说明 |
|---|---|---|
results |
list | 成功输出的图片路径列表(原名_no_watermark.png) |
failed |
list | 失败条目,格式 源文件路径: 原因 |
code:0 全部成功 / 1 部分成功 / 2 全部失败 / 3 模型不可用 / 4 输入无效(例如未提供 rect)。
🖥️ 环境要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10+(64 位) |
| 运行环境 | Python 3.12+(由盒子托管,依赖 onnxruntime / numpy / pillow) |
| 标注窗口 | webview-cli(盒子按 binaries 自动下载) |
| AI 模型 | MiGAN migan_pipeline_v2.onnx(28MB,来自 HuggingFace andraniksargsyan/migan,盒子按 models 自动下载) |
| 联网 | 仅安装时需要,处理图片全程离线 |
本脚本已声明为节点,可被其他脚本通过「不忙脚本盒子」机制调用。完整配置见下方 TOML,其他脚本若需调用请严格按此配置构造请求。
bm-scripts-box-rc.toml
[bmscriptsbox]
[bmscriptsbox.info]
id = "60439cdd-635f-422a-ba53-fdbbb9ccbd1e"
name = "图片去水印"
desc = "图片去水印脚本 | 框选涂抹标注,MiGAN本地AI修复,离线CPU推理无需联网,批量多图处理,支持PNG/JPG/BMP/WEBP/TIF,右键菜单一键去水印,可被定时任务与节点联动调用"
version = "1.0.0"
icon = "./imgs/logo.png"
[bmscriptsbox.runtime]
language = "python"
language_version = ">=3.12"
entry = "main.py"
terminal = "auto"
binaries = [{name = "webview-cli"}]
[bmscriptsbox.triggers.context_menu]
enabled = true
targets = ["files"]
filters = [".png", ".jpg", ".jpeg", ".bmp", ".webp", ".tif", ".tiff"]
[[bmscriptsbox.inputs]]
name = "target_paths"
label = "源图片"
type = "list"
pick = "files"
exts = [".png", ".jpg", ".jpeg", ".bmp", ".webp", ".tif", ".tiff"]
description = "要去除水印的图片;右键菜单选中文件时自动预填,也可在启动窗口里重新选"
# ====== 运行参数 ======
[[bmscriptsbox.params]]
name = "rect"
label = "固定框选区"
type = "str"
default = ""
description = "0~1 相对坐标 x,y,w,h(如 0.7,0.9,0.25,0.06)。填了就跳过标注窗口直接处理,供定时任务与节点联动无人值守使用;留空则弹窗手动标注"
[[bmscriptsbox.params]]
name = "output_dir"
label = "输出目录"
type = "str"
default = ""
description = "留空=输出到原图所在目录;定时任务场景建议填绝对路径"
# ====== AI 模型(盒子安装时统一下载,脚本运行时问 /api/model/path 要路径)======
[[bmscriptsbox.models]]
source = "huggingface"
repo_id = "andraniksargsyan/migan"
files = ["migan_pipeline_v2.onnx"]
# ====== 定时任务:无人值守,需填 rect ======
[bmscriptsbox.schedule]
enabled = true
# ====== 节点:可被其他脚本经 /api/link 调用,需传 rect ======
[bmscriptsbox.node]
enabled = true
[[bmscriptsbox.outputs]]
name = "results"
type = "list"
description = "成功输出的图片文件路径列表(原名_no_watermark.png)"
[[bmscriptsbox.outputs]]
name = "failed"
type = "list"
description = "处理失败的条目,格式「源文件路径: 原因」"
评论