前言¶
在 DeepSeek Harness(DSH)里做智能体时,若需要文生图,常见做法是切到 ComfyUI 界面手点,或自己拼 ComfyUI 的 HTTP API。ComfyUI 出图是两段式协议:先 POST /prompt 拿到 prompt_id,再轮询 /history/<id> 直到完成;对话里若只有通用 web_fetch,很难在「提交后等待 GPU 跑完」这一环上闭环。dsh-tool-comfyui 是社区维护的联网工具类插件,把探测机队、按模板出图、查队列三件事注册成 Agent 可调用的工具,装好后在 chat 里用自然语言即可驱动本机或局域网上的 ComfyUI 机队。
这是什么¶
- 插件名称:dsh-tool-comfyui(GitHub:
yuehancn/dsh-tool-comfyui) - 维护者:yuehancn
- 分类:联网工具(SkillHub 目录页:https://www.skillhub.cn/plugins/yuehancn/dsh-tool-comfyui)
- 定位:给 DSH 用的自建工具插件;在 dsh 里一句话直接调用本机/局域网的 ComfyUI 机队出图。
- 兼容性:README 写明在 dsh
0.2.0-rc.2(preview)上构建与测试;apply(ctx)插件规范稳定,若你使用更新版本 dsh,需自行核对。 - 许可:MIT
插件以当前 dsh 进程权限运行,仅访问你在配置里填写的 workers[].url;安装或使用前建议阅读仓库源码与许可证,并确认 ComfyUI 暴露方式是否符合你的安全预期(ComfyUI 默认无鉴权)。
核心功能¶
装好并在 profile 里启用后,会注册三个模型可调用的工具:
| 工具 | 作用 |
|---|---|
comfyui_status |
探测全机队:谁在线、ComfyUI 版本、显卡型号/显存、队列深度;顺带列出可用工作流模板 |
comfyui_generate |
按命名工作流模板出图:提交 prompt → 等 GPU 跑完 → 把成图下载到本地,返回文件路径 |
comfyui_queue |
查某台机器的运行/排队情况,或一键中断并清空队列 |
轮询是插件存在的理由:裸 web_fetch 做不到「提交后等待」,因此必须写成插件内的协作逻辑。
README 中的权限与隐私要点:网络仅连配置中的 worker 地址(默认常见为 127.0.0.1:8188 与局域网机器),不访问第三方服务;不需要 API key;prompt 发往你的 ComfyUI,成图写入 outputDir;插件不启动进程(仓库里的 start-comfyui-worker.bat 供素材机手动双击)。comfyui_queue 的 cancelAll 会中断并清空目标机器队列,属于破坏性操作,仅在明确需要时使用。
安装与启用¶
支持的 profile 包括 desktop(桌面版)与 web(Web 版);装完需重启对应 profile,三个工具才会出现。
一行安装(资料原文命令):
dsh plugin --profile desktop add github:yuehancn/dsh-tool-comfyui
将 desktop 换成你自己的 profile 名称。README 另注:若已发布到 npm,也可使用 dsh plugin --profile desktop add dsh-tool-comfyui(注释形式给出)。
启用 bundle 时需注意:bundles 里必须列出包名 dsh-tool-comfyui,dsh 才会读取其 dsh.bundle.patch;仅在 dependencies 里声明而不进 bundles 不算启用。手动开发安装路径与 cordis.patch.yml 示例见 GitHub README,本文不展开 git clone 流程。
配置机队¶
在 profile 的 cordis.patch.yml 中覆盖插件行,示例结构如下(路径与 IP 需按你的环境修改):
- id: tool-comfyui
config:
workers:
- id: local5090
url: http://127.0.0.1:8188
label: RTX 5090D 主力机
- id: spark5060
url: http://192.168.11.109:8188
label: 5060 Ti 素材机 A
workflowsDir: <插件目录>/workflows
outputDir: C:/Users/<你>/Pictures/comfyui
defaultWorkflow: txt2img
maxBatchSize: 8
timeoutMs: 900000
加机器即在 workers 中追加一项。常用配置键包括:workers[](必填)、workflowsDir(默认 workflows)、defaultWorkflow(默认 txt2img)、timeoutMs(默认 600000)、pollIntervalMs(默认 2000)、outputDir(默认 comfyui-output)、maxBatchSize(默认 8),以及分别开关三个工具的 generate / status / queue(默认均为 true)。
素材机上若需被局域网内 dsh 调用,可将仓库中的 start-comfyui-worker.bat 拷到素材机后执行,例如只听本机或监听 0.0.0.0(README 给出 8188 lan 用法);脚本会先尝试结束 pminer.exe,避免 GPU 被占满导致出图极慢。
工作流模板¶
模板为 ComfyUI API 格式 JSON,放在 workflows/ 下,文件名即模板名(仓库自带 txt2img.json 等)。插件按节点 _meta.title 注入参数,例如 title 为 prompt / positive / 提示词 时写入 args.prompt,negative / 负面 写入 args.negativePrompt,seed 等写入 args.seed;带 batch_size 的节点可接 args.batchSize。只覆盖字面量输入,不改动被连线(link)的输入。新模板流程:在 ComfyUI 导出 API 格式 → 给 CLIPTextEncode 等节点改 title → 存为 workflows/<名>.json → 调用时指定 workflow="<名>"。
典型用法¶
在对话里直接说明意图即可,README 示例:
帮我出一张白底咖啡杯的电商图
→ 调 comfyui_generate(prompt="a white ceramic mug on pure white background, e-commerce catalog photo")
先看看素材机活着没
→ 调 comfyui_status
把 109 上排队的任务清掉
→ 调 comfyui_queue(worker="spark5060", cancelAll=true)
成图默认落在 outputDir 下带时间戳的子目录;README 示例路径形如 comfyui-output/2026-10-01T23-30-12-local5090/dsh_comfyui_00001_.png。
适用场景与注意¶
适合:已在本地或局域网部署 ComfyUI,希望在 DSH Agent 对话中完成「看机队状态 → 选 worker → 按模板出图 → 本地拿路径」闭环的开发者或小团队。
注意:
- 插件不替代 ComfyUI 本身的安装与模型资源管理;worker 必须已启动且 URL 可达(局域网场景 README 建议先测 TCP 端口,勿仅依赖 ping)。
comfyui_status全部 offline 时,常见原因是 ComfyUI 未起或素材机未用lan监听。- README 在 RTX 5090D、SDXL 1024×1024、30 步下给出单张约 15.1 秒、批量 2 张约 16.7 秒的实测耗时;同 seed 两次输出字节一致。该数据来自维护者环境,你的硬件与 workflow 会不同。
- 社区插件目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,选型时以仓库 README 与源码为准。
结尾¶
dsh-tool-comfyui 把 ComfyUI 的提交与轮询封装进三个工具,让 DSH 在 chat 内即可完成机队探测、模板出图与队列管理,且网络与文件写入边界在 README 中写清。若要安装或查配置细节,可看目录页与 GitHub 仓库:
- 目录页:https://www.skillhub.cn/plugins/yuehancn/dsh-tool-comfyui
- GitHub:https://github.com/yuehancn/dsh-tool-comfyui