前言¶
DSH Agent 的控制範圍目前主要在本地腳本或通用網絡服務。對於 Stable Diffusion 工作流(如 ComfyUI),手動操作繁瑣且難以自動化。dsh-comfyui-commander 解決了這個問題,它通過 DSH 的 Subprocess 能力,讓 Agent 直接接管 ComfyUI 的生成任務、進度監控與模型管理。
是什麼¶
這是一個由 suika009 維護的插件,通過 Node.js 輔助進程與 ComfyUI API 通信,實現自然語言控制。它不依賴外部運行時,僅要求本機 Node >= 22。
核心功能¶
插件提供以下工具集:
- 工作流控制:列出工作流 (
comfy_list_workflows),加載工作流並轉換爲 API 格式 (comfy_load_workflow),支持通過overrides修改任意節點參數。 - 任務執行:提交生成任務 (
comfy_submit),實時監控進度 (comfy_get_progress,包含隊列位置、當前節點、採樣百分比),獲取結果 (comfy_fetch_results) 並下載到本地。 - 批量編排:通過
comfy_wait_task實現阻塞等待,串聯多階段任務(例如先生成分鏡再合成視頻)。 - 模型管理:上傳模型 (
comfy_upload_model)、移動模型 (comfy_move_model)、導出歸檔 (comfy_export_model)、盤點磁盤佔用 (comfy_model_disk_usage)。
安裝與啓用¶
- 進入 DSH 的 Profile 目錄:
cd $DSH_HOME/profiles/<name>
- 安裝依賴:
pnpm add dsh-comfyui-commander
- 在
cordis.patch.yml中添加插件行:
- insert:
- id: comfyui-commander
name: 'dsh-comfyui-commander'
- 重啓 DSH。
典型用法¶
Agent 可以通過自然語言編排一系列操作,例如:
-
單次生成:
「列出工作流 → 加載SDXL.json→ 提示詞換成 ‘a cat, masterpiece’ → 生成 → 下載到本地」
對應工具鏈:comfy_list_workflows→comfy_load_workflow→comfy_submit(overrides)→comfy_get_progress→comfy_fetch_results(download)。 -
批量生成:
「先生成 5 張分鏡,全部完成後用合併工作流合成視頻」。
對應工具鏈:利用comfy_wait_task串行執行。
安全與限制¶
- 不保存只提交:對現有工作流的任何改造只作用於本次提交,絕不改動已保存的工作流文件。
- 安全配置:模型文件操作遵循默認安全、危險操作需手動開啓的原則。默認關閉刪除、覆蓋、修改。若需使用
comfy_delete_model,需在配置文件中將allowDelete設爲true並重啓。 - 已知邊界:打開的工作流標籤頁是瀏覽器 localStorage 狀態,服務端不可枚舉;動態 Cordis 插件在部分部署中不可見。
總結¶
該插件爲 DSH Agent 提供了完整的 ComfyUI 控制面,適合需要自動化生成、批量處理和模型管理的場景。更多細節可參考插件目錄或GitHub 倉庫。