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
羽毛球分组比赛记分
小程序二维码

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

小夜