dsh-comfyui-agent:让 Agent 直接驱动本机 ComfyUI

前言

DeepSeek Harness (DSH) 的核心设计理念是“一切皆插件”。对于开发者来说,如何让 Agent 能够直接调用本地运行的图形化工具(如 ComfyUI),是一个常见需求。传统的做法需要编写大量的 API 适配代码或通过脚本中转。DSH 的 Agent 插件机制提供了解决方案:通过接入 dsh-comfyui-agent,Agent 可以直接读取你本地保存的 ComfyUI 画布工作流、修改参数、执行出图,并将结果直接回显在对话中。

插件介绍

dsh-comfyui-agent 是一个面向 DeepSeek Harness 0.2.0-rc.2 的工具插件,由开发者 Nana7mi0721 维护。它解决了 Agent 与本地 ComfyUI 通信的痛点,让 Agent 能够像操作本地程序一样控制 ComfyUI。

  • 核心价值:直接驱动本地 ComfyUI,跑存好的工作流,产出的图片直接显示在对话里。
  • 兼容性:兼容 DSH 0.2.0-rc.2(@deepseek-ai/dsh-tools 0.2.0-rc.2 / cordis 4.x)。该插件不依赖 dsh-settings,因此可以直接安装使用。
  • 许可证:MIT。

核心功能

该插件注册了五个工具,覆盖了从状态探测到结果展示的完整流程:

  1. comfyui_status

    • 作用:探活。用于确认 ComfyUI 版本、队列长度、路径以及可用模型清单。
    • 使用时机:在第一次使用前先跑它,确认连接正常。
  2. comfyui_nodes

    • 作用:搜节点类或查某个类的输入定义。
    • 使用时机:不确定某个节点具体需要什么参数时使用。
  3. comfyui_workflows

    • 作用:管理本地保存的画布工作流。
    • 用法:
      • action:"list":列出工作流名字、节点数、输出节点。
      • action:"params":列出可调参数(按节点分组,带取值范围)。
      • action:"get":打印完整 API 工作流(诊断用,费 token)。
  4. comfyui_run

    • 作用:真正跑图。
    • 用法:通过 file(画布工作流名)、template(内置模板)或 workflow(自定义 API 工作流对象)执行。
  5. comfyui_show

    • 作用:查看或上传图片。
    • 用法:
      • action:"latest":查看最近产出(默认 6 张)。
      • action:"view":按文件名取图。
      • action:"upload":把本地图片传进 ComfyUI 的 input/(img2img 要用)。

安装与配置

插件安装后,配置项会写入 ~/.dsh/profiles/desktop/cordis.patch.yml。

安装步骤:

  1. 确保你的 DSH 版本为 0.2.0-rc.2。
  2. 执行以下命令将插件安装到桌面配置文件中:
dsh plugin --profile desktop add \
  https://github.com/Nana7mi0721/dsh-comfyui-agent/releases/download/v0.1.3/dsh-comfyui-agent-0.1.3.tgz

配置说明:

安装时(或事后修改)需要配置 ComfyUI 的连接信息,配置项如下:

字段 默认值 说明
baseUrl http://127.0.0.1:8188 ComfyUI 的 HTTP 服务地址。核心默认只监听 127.0.0.1,跨机器需加 --listen
comfyuiDir E:\ComfyUI\ComfyUI ComfyUI 本体目录(读取 output/、input/、user/default/workflows/)
workflowsDir 空 留空则自动使用 <comfyuiDir>/user/default/workflows
timeoutMs 120000 单次 HTTP 请求超时时间
pollIntervalMs 1200 等待运行结果时的轮询间隔
runTimeoutMs 1800000 一次运行跑完的上限(30 分钟)
toolTimeoutMs 2400000 单个工具调用的上限(40 分钟)

典型用法

下面是一个 Agent 修改画布参数并重新出图的典型对话流程:

  1. 列出参数:首先查看画布里有哪些可调参数。
    > Agent: comfyui_workflows {action:"params", name:"anima v2"}
    > 输出结果:看到节点 765:709 是 steps(步数)。

  2. 第一次出图:使用默认步数(如 12)出一张图。
    > Agent: comfyui_run {file:"anima v2", inputs:{"765:709":{"value":12}}, savePrefix:"silver"}

  3. 修改参数再次出图:将步数改为 20。
    > Agent: comfyui_run {file:"anima v2", inputs:{"765:709":{"value":20}}, savePrefix:"silver20"}

注意事项与限制

在使用该插件时,请注意以下事实:

  1. 纯前端节点会被跳过:如果工作流中包含纯前端节点(如 Note、Fast Muter 或没有服务端实现的 rgthree 开关),这些节点会被跳过。如果下游连线因节点被跳过而断开,会在工具回复的 warnings 中说明。
  2. 显存限制:在 8GB 显存下,建议不要并发提交多个大工作流,以免 OOM。
  3. 版本依赖:必须安装 DSH 0.2.0-rc.2 或更高版本。
  4. 图片回显:默认最多回显 4 张图(上限 12 张),显式设置 0 则只返回路径不回显图片。

总结

dsh-comfyui-agent 通过将 ComfyUI 的图形化工作流转化为 Agent 可执行的指令,实现了本地绘图任务的自动化。它不依赖额外的配置管理库,直接通过 cordis 挂载工具,配合简单的配置即可让 Agent 具备操作本地绘图软件的能力。

  • GitHub 仓库:https://github.com/Nana7mi0721/dsh-comfyui-agent
  • 社区目录:https://www.skillhub.cn/plugins/Nana7mi0721/dsh-comfyui-agent
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜