前言¶
DeepSeek Harness(DSH)通過插件機制擴展功能。本地部署模型推理工具是智能體開發中的常見需求。如果希望利用本地 GPU 資源生成圖片、視頻、音頻和 3D 資產,而無需調用雲端 API 或承擔按次計費成本,dsh-comfyui-image 插件提供了直接的連接方案。它允許 Harness 直接操控本地安裝的 ComfyUI。
插件簡介¶
dsh-comfyui-image 是一個 DeepSeek Harness 插件,由用戶 QXingYShu 維護。其核心價值在於:通過本地 ComfyUI 實例處理圖像、視頻、音頻和 3D 資產的生成,無需 API 密鑰,無需依賴雲端服務,且無單次生成的計費成本。該插件遵循 MIT 許可證。
核心功能¶
插件註冊了以下工具和能力:
- comfyui_generate:用於文本生成圖片,接收提示詞並輸出參數。
- comfyui_templates:瀏覽本地模板目錄,檢查模板輸入,或詢問模型推薦。
- comfyui_run_template:運行特定的模板並保存輸出。
- comfyui_status:報告已安裝組件和運行狀態,用於排查生成失敗原因。
- comfyui-image 技能:提供模型選擇、提示詞構建、採樣器調整和負向提示詞支持,讓智能體能主動決策。
在生態層面,插件支持 67 個開源模型家族的 116+ 工作流模板,覆蓋圖像編輯、視頻生成、ControlNet、深度估計、背景移除、放大、3D、音樂和音頻處理。
安裝與啓用¶
安裝該插件需要 DeepSeek Harness 0.2.0-rc.2 或更新版本。
dsh plugin --profile desktop add https://github.com/<you>/dsh-comfyui-image.git
安裝後必須重啓 Harness。插件會在配置的 profile 啓動時加載,因此對 lib/ 目錄的修改或插件代碼更新不會在運行中生效。只有 Web GUI 的客戶端插件支持熱重載,而本插件的工具和技能均爲服務器端運行。
配置與發現¶
插件會自動探測 ComfyUI 的運行狀態。它會依次檢查配置端口和 8188–8192 端口,確認 /system_stats 接口是否響應。如果沒有運行的服務器,它會自動啓動 ComfyUI 的無頭模式。
若需手動指定路徑,可設置環境變量 DSH_COMFYUI_PATH 指向本地的 ComfyUI 檢出目錄。
主要的環境變量配置項如下:
- 端口控制:
DSH_COMFY_PORT:強制所有工作流使用同一端口(默認爲探測 8188–8192)。DSH_COMFY_PORT_Z_IMAGE_TURBO/DSH_COMFY_PORT_QWEN_IMAGE_2_1:強制指定特定模板(Z-Image-Turbo 或 Qwen-Image-2.1)使用的端口。
- 模型路徑:
DSH_ZIMAGE_MODELS/DSH_QWEN_IMAGE_MODELS:覆蓋默認模型文件名,格式爲 JSON。
例如,若本地量化了 Qwen-Image-2.1 模型,可配置如下:
export DSH_QWEN_IMAGE_MODELS='{"unet_name":"qwen_image_2.1_fp8.safetensors","clip_name":"qwen3vl_8b_fp8.safetensors","vae_name":"qwen_image_2.1_vae_bf16.safetensors"}'
模型與下載¶
插件默認通過 hf-mirror.com 下載模型權重。這是通過在啓動 ComfyUI 進程時設置 HF_ENDPOINT 環境變量實現的,確保 huggingface_hub 庫在導入時重寫所有 URL。
注意:插件故意禁用了 HF_HUB_ENABLE_HF_TRANSFER(默認開啓),因爲該 Rust 下載器不支持鏡像站點,啓用會導致下載失敗。
插件本身不會主動下載模型,而是報告文件列表、大小、許可證和剩餘空間。只有在用戶確認後,纔會通過 download=true 觸發下載。
典型用法¶
在 DSH 會話中,可以直接使用自然語言調用工具。例如:
draw a small green plant in a terracotta
插件將選擇合適的模板、模型和採樣參數,在本地 GPU 上執行生成。
在配置模型名稱時,可以使用環境變量覆蓋默認設置:
export DSH_QWEN_IMAGE_MODELS='...'
注意事項¶
- 重啓要求:插件安裝或更新後,必須重啓 Harness 才能生效。
- 服務端運行:插件的核心工具(
comfyui_generate等)是服務器端邏輯,修改代碼後必須重啓。 - 無頭模式:ComfyUI 不需要預先運行,插件會在首次使用時啓動無頭進程,後續複用該進程。
- 模板限制:並非所有模板都能運行。插件會檢查模型權重是否存在,而非僅檢查模板名稱。