dsh-tool-comfyui:在 DSH 對話裏直接調用本機與局域網 ComfyUI 出圖

前言

在 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 → 按模板出圖 → 本地拿路徑」閉環的開發者或小團隊。

注意:

  1. 插件不替代 ComfyUI 本身的安裝與模型資源管理;worker 必須已啓動且 URL 可達(局域網場景 README 建議先測 TCP 端口,勿僅依賴 ping)。
  2. comfyui_status 全部 offline 時,常見原因是 ComfyUI 未起或素材機未用 lan 監聽。
  3. README 在 RTX 5090D、SDXL 1024×1024、30 步下給出單張約 15.1 秒、批量 2 張約 16.7 秒的實測耗時;同 seed 兩次輸出字節一致。該數據來自維護者環境,你的硬件與 workflow 會不同。
  4. 社區插件目錄(如 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
羽毛球分组比赛记分
小程序二维码

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

小夜