前言¶
在 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