dsh-comfyui-supervisor:本地 ComfyUI 按需啓動與空閒退出

前言

在 DeepSeek Harness(DSH)裏接本地生圖,常見有兩種做法:要麼讓 ComfyUI 一直開着,內存和顯存常年佔着;要麼每次用手動啓動,第一次調用 generate_image 往往失敗,再切窗口、等幾十秒重試。兩種都不理想。

下面介紹社區插件 dsh-comfyui-supervisor(維護者 nizhouding-tech),把 ComfyUI 的生命週期做成顯式、可自動化的流程:需要時再啓動,空閒一段時間後退出。插件本身在 DSH 冷啓動時不髮網絡請求、不拉起進程,不影響 Harness 啓動速度。

這是什麼

dsh-comfyui-supervisor 是打包爲 DSH 插件的 ComfyUI 監管工具:啓動階段什麼都不做,通過三個工具按需管理本機 ComfyUI 服務。當前版本 0.1.0,許可證 MIT。歸類爲工作流類插件;源碼與說明見 GitHub 倉庫,目錄頁見 SkillHub。

非官方社區工具,與 ComfyUI、DeepSeek 或 AMD 無隸屬關係。

核心功能

插件向智能體暴露三個工具,職責如下。

工具 作用
comfyui_status 查詢 ComfyUI 是否在運行、使用哪塊設備、當前實例是否由本插件管理,以及 VRAM、版本等信息
comfyui_start 確保 ComfyUI 運行:先探測,必要時拉起獨立 supervisor 進程並等待就緒
comfyui_stop 停止服務並釋放內存/顯存;默認只結束本插件拉起的實例,除非傳入 force=true

內置 supervisor 位於 assets/supervise.cjs(無額外依賴):在使用期間維持進程樹,空閒超過配置的分鐘數後結束 ComfyUI,並清理狀態文件。

安裝與啓用

環境要求:DSH 0.2.x、Node 22+。進程樹結束依賴 Windows 的 taskkill(探測與啓動路徑可移植,但當前完整生命週期管理以 Windows 爲準)。

安裝請使用 README 中的 tarball 地址,勿依賴 github:user/repo 簡寫(在 pnpm 下可能解析爲 git+ssh:// 且無 SSH 密鑰時會失敗):

# 推薦:GitHub tarball(無需 npm 賬號與 SSH 密鑰)
dsh plugin --profile web add https://github.com/nizhouding-tech/dsh-comfyui-supervisor/archive/refs/heads/main.tar.gz

# 固定到 v0.1.0 發佈包
dsh plugin --profile web add https://github.com/nizhouding-tech/dsh-comfyui-supervisor/archive/refs/tags/v0.1.0.tar.gz

若堅持使用 github: 簡寫,可先執行 pnpm config set git-protocol https。安裝完成後 重啓 DSH 一次,三個工具會出現在工具表中。

配置

在已安裝插件條目的 cordis.patch.yml 中可調整 ComfyUI 地址、安裝路徑與超時,示例片段如下:

- insert:
    - id: comfyui-supervisor
      name: dsh-comfyui-supervisor
      config:
        baseUrl: http://127.0.0.1:8188
        comfyRoot: D:\ComfyUI
        idleTimeoutMinutes: 30
        startTimeoutSeconds: 300
字段 默認值 含義
baseUrl http://127.0.0.1:8188 用於探測的 ComfyUI 端點
comfyRoot D:\ComfyUI ComfyUI_windows_portable 與 logs/ 所在目錄
idleTimeoutMinutes 30 無生成任務空閒超過該分鐘數後結束 ComfyUI
startTimeoutSeconds 300 comfyui_start 等待就緒的最長時間

典型用法與工作方式

智能體側可按「先看狀態 → 需要則啓動 → 再用生圖類插件 → 空閒自動退出或主動 stop」使用,README 在真實 DSH 工具接口下驗證了 status → start → status → stop 鏈路。

comfyui_start 大致流程:

  1. 請求 GET /system_stats,若已就緒則直接返回。
  2. 否則執行 node assets/supervise.cjs,寫入 .supervisor.lock(單實例)與 .supervisor.state(進程信息),啓動 ComfyUI 並等待 /system_stats。
  3. 每 15 秒輪詢 /queue 與 /history;空閒超過 idleTimeoutMinutes 後 taskkill /T /F,刪除狀態文件並退出。

comfyui_status 通過狀態文件判斷運行中的實例是否 managed;comfyui_stop 對非本插件啓動的實例默認拒絕結束,除非 force: true。

作者在 Windows 11 上實測(ComfyUI 0.44.0):冷啓動 comfyui_start 約 10 秒 就緒;comfyui_stop 可釋放 VRAM;將空閒超時設爲 1 分鐘測試時,可在 1 分鐘後清理進程與鎖文件;無進程時 comfyui_stop 爲 no-op(changed=false)。你的硬件與版本不同,耗時會變化,以上僅作行爲參考。

適用場景與注意

適合誰:在本機用 DSH 接 ComfyUI 生圖、又不想常駐佔顯存,或希望智能體在首次生圖前自動拉起服務的開發者。

使用前請知悉:

  • 插件以 當前 DSH 進程權限 運行;安裝前建議閱讀倉庫源碼與 MIT 許可證,確認路徑與停止邏輯符合你的環境。
  • Linux / macOS 上進程樹結束尚未實現(roadmap 中爲 TODO);非 Windows 用戶需自行評估或等待後續版本。
  • 社區目錄站點與 DeepSeek / 幻方無官方從屬關係,安裝來源以 GitHub README 爲準。

侷限與規劃:計劃支持由單一插件統一注入 lifecycle 服務;npm 發佈待定,當前以 GitHub tarball 安裝即可。

結尾

dsh-comfyui-supervisor 把「ComfyUI 常開」和「每次手啓」兩條路折成按需啓動、空閒退出,減輕本地生圖工作流裏的資源與操作成本。更多信息見 SkillHub 目錄頁 與 GitHub 倉庫。問題可聯繫維護者(README 中列有郵箱與 GitHub)。

羽毛球分组比赛记分
小程序二维码

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

小夜