前言¶
DeepSeek Harness(DSH)的 Agent 擅长处理文字,但在对话中处理图片往往需要把文件拖出去、用外部工具处理、再把结果拖回来。h-table/dsh-bg-tool 插件将这个流程收进了对话本身。它基于本地 rembg 和 BiRefNet,提供 remove_background 工具,让 Agent 直接调用,处理后的透明背景 PNG 会写入工作区,全程不离开 Harness,图片不出本机,无需 API Key。
核心功能¶
- 对话内直接抠图:把图片放进会话工作区,Agent 调用
remove_background,透明背景 PNG 直接写入输出目录。 - 三档模型按需切换:提供
general(任意物体/商品)、portrait(人物/头发/证件照)、fast(快速草稿)三档模式。 - 全本地 GPU 推理:BiRefNet 以 fp16 运行并做了 CUDA 调优,无需网络请求。
- 服务器生命周期自管理:DSH 启动时自动拉起本地 rembg 服务,插件停止时自动回收。
- 官方同款插件配置卡片:设置 → 插件 → 插件配置 → 「背景抠图」,支持模型映射、输出目录、自动启动开关。
环境准备¶
插件依赖本地环境,需准备 .bg-tools/ 目录(Python venv + 模型文件 + bg_server.py)。
- 系统要求:Windows + NVIDIA GPU + CUDA 13。
- 目录结构:
.bg-tools/
├── venv/ # Python 虚拟环境(含 rembg、onnxruntime-gpu)
├── models/ # 模型文件(BiRefNet fp16、u2netp 等)
├── bg_server.py # 本地 rembg HTTP 服务
├── start-server.ps1 # 手动启动脚本(可选)
└── output/ # 默认输出目录
- 路径解析顺序:
$DSH_BG_TOOL_ROOT>$DSH_HOME/.bg-tools> 旧版工作区路径。
安装与启用¶
在本机 profile 的 package.json 中添加依赖和 bundle 引用:
// ~/.dsh/profiles/web/package.json
"dependencies": { "@local/dsh-bg-tool": "link:<本仓库目录>" },
"dsh": { "profile": { "bundles": ["@local/dsh-bg-tool"] } }
安装后建立 node_modules/@local/dsh-bg-tool 到本仓库目录的符号链接,重启 Web Profile 即可生效。
使用方法¶
插件为每个会话注册 remove_background 工具。调用时需提供 image_path(绝对路径,使用正斜杠)和 mode(general / portrait / fast),可选 output_name。
示例:
把 workspace 里的 DSH娘.png 去掉背景,用 portrait 模式。
把这个商品图抠出来,输出到 output 目录,命名 product_1.png。
Agent 会返回 output_path,打开该路径即可看到透明背景 PNG。
配置说明¶
在设置 → 插件 → 插件配置 → 「背景抠图」卡片中,可配置以下项:
* generalModel:通用模型(默认 birefnet-general)。
* portraitModel:人像模型(默认 birefnet-portrait)。
* fastModel:快速模型(默认 u2netp)。
* outputDir:输出目录(默认 .bg-tools/output)。
* autoStartServer:自动启动 GPU 服务(默认 true)。
注意事项¶
- 首次加载:首次调用某个模型约 7 秒(加载进显存),之后热调用约 1 秒/张。
- 路径限制:
image_path需是 Agent 可读的绝对路径,输出文件名里的\/会被替换成_。 - 故障排查:若返回「rembg 服务无法启动」,请检查
.bg-tools的 venv / models 是否完整,或手动运行start-server.ps1查看日志。