驱动用户本地一个名为「布衣图片批量去水印软件」的 PyQt 桌面程序的辅助 skill。该 GUI 程序有一个「📡 监控目录」功能——开启后,凡是放进"输入文件夹"的图片都会被自动处理,结果写入"输出文件夹"。
本 skill 的作用是把这套手动流程自动化:把图片复制到输入目录 → 轮询等待结果 → 返回输出文件路径。
调用本 skill 之前,必须确认用户已经做了以下事情。如果没做,先告诉用户怎么做,不要假装能跑通:
config.json 里的 input_dir / output_dir 与 GUI 中实际选定的目录完全一致凡是用户提到水印移除、批量去水印、"布衣"软件相关任务,且 skill 已配置好的,都应该使用本 skill。
第一次为用户运行此 skill 时(或者怀疑 GUI 没开/监控没启用时),先跑自检:
python watermark_remover.py check
如果用户提供了一张测试图,可以做实时连通性测试:
python watermark_remover.py check --sample /path/to/any_image.png --timeout 60
自检通过再继续。自检失败时不要硬上,把错误信息原样告诉用户并指导排查(按钮没开?目录路径不一致?会员类型?)。
单张或多张文件:
python watermark_remover.py process /path/to/img1.jpg /path/to/img2.png
整个目录(递归扫描所有支持的图片):
python watermark_remover.py process /path/to/folder/
支持的格式:.png .jpg .jpeg .bmp .tiff .tif .webp
常用参数:
--timeout 600 自定义超时秒数(批量大文件时用得上)--json-out result.json 把结果以结构化 JSON 输出到文件,方便后续步骤读取--subdir my_task 指定任务子目录名(缺省自动生成 UUID,不会与他人冲突)--no-subdir 直接把文件放在输入根目录(不推荐,多任务时会混在一起)--move 移动而非复制(会删除原文件,谨慎使用)process 命令返回时会打印每张图的输入和输出路径。两类结果:
[OK]:水印已成功识别并去除,输出在 output_dir 下[未识别水印]:OCR 没在图中检测到文字,原图被原样移到 output_dir + "_未识别" 下退出码:
0 全部成功2 没找到可处理的文件3 部分文件超时未完成4 配置/初始化失败5 提交参数错误(文件不存在、格式不支持等)如果用了 --json-out,可以从 JSON 里直接读 completed[*].output 取到所有结果路径。
skill 启动时按下列顺序查找 config.json:
--config /path/to/config.json 命令行参数WATERMARK_REMOVER_CONFIG 环境变量watermark_remover.py 同目录下的 config.json~/.watermark-remover/config.json参考 config.example.json 复制一份并填入实际目录。关键点:路径要与 GUI 中实际选定的完全一致,Windows 用正斜杠 / 或双反斜杠 \\。
如果在 Python 代码里编排多步骤流水线,可以直接 import:
from watermark_remover import WatermarkRemoverClient, load_config, find_config
cfg = load_config(find_config(None))
client = WatermarkRemoverClient(cfg)
result = client.process(
["/path/to/a.jpg", "/path/to/b.png"],
task_subdir="auto", # 自动 UUID 子目录
timeout_sec=300,
)
for item in result["completed"]:
if item["category"] == "ok":
print("成功:", item["output"])
else:
print("未识别水印:", item["output"])
for p in result["pending"]:
print("超时:", p)
| 现象 | 原因 | 解决 |
|---|---|---|
| --- | --- | --- |
check 静态部分通过但实时测试超时 | GUI 没开 / 监控没开启 / 输入目录不一致 | 让用户对照 GUI 检查这三项 |
输入目录不存在 | 配置里写的路径和 GUI 用的不一样,或盘符大小写 | 在 GUI 里复制一遍输入目录路径填进配置 |
| 文件被处理了但 skill 一直显示 pending | 文件名/路径在中文/特殊字符上有差异 | 检查 output_dir 中实际生成的文件名 |
| GUI 显示"功能受限:监控目录是会员功能" | 当前账号是免费会员 | 升级会员,或方案 A(CLI 模式,需另行开发) |
| 超时但文件其实还在处理中 | 图片大或批量太多 | 增大 --timeout,或调高配置中的 default_timeout_sec |
共 1 个版本