DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Clover-RHL /

Clover-RHL/comfyui-dsh

Verified

Unofficial DSH plugin for local ComfyUI: start/stop, embedded UI, VRAM release, model downloads and an AI workspace.

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@a1703192

Comfyui-dsh

非官方社区插件,不代表 Comfy Org 或 DeepSeek。ComfyUI 名称和 Logo 属于 Comfy Org;本项目的 MIT 许可证不覆盖 Logo,详见 NOTICE。

把本地 ComfyUI 变成 DeepSeek Harness(DSH)左侧栏里的一个工作台:

  • 一键启动 / 关闭 / 后台运行
  • 在 DSH 面板内嵌 ComfyUI,不用来回切浏览器
  • 独立的「释放显存」按钮:只卸载模型、清空缓存,不关闭 ComfyUI
  • 自动检测本机配置:显卡、显存、驱动、温度、CPU、内存、磁盘、Python / PyTorch
  • 下载入口:国内平台优先,Civitai / Hugging Face 作为补充
  • 模型体检:按你的实际显存估算模型能不能跑,跑不动给出降级方案
  • 自动创建工作区:第一次安装自动生成左侧栏「ComfyUI」工作区;里面的所有对话都会读取 AGENTS.md,可以让 AI 画画、看日志、释放显存、下载模型
  • 自动识别安装:不用手改路径;找不到 ComfyUI 时使用 <DSH_HOME>/comfyui,不会写到插件目录
  • 内置 comfyui-tutor 技能,让 DSH 里的 AI 按你的真实路径教学和排错

这个插件不是 ComfyUI 发行版,也不替代 ComfyUI。它会自动识别一个已经安装好的本地 ComfyUI;找不到时只准备一个 DSH 默认目录和说明,不会自动下载几个 GB 的 ComfyUI / Python / PyTorch。


功能

功能 说明
启动 / 关闭 在 DSH 内启动独立端口的 ComfyUI;关闭时结束进程树并释放显存
接管已有进程 插件重载或 DSH 重启后,自动接管仍在端口上运行的 ComfyUI,避免“显示已停止、显存仍被占用”
后台运行 收起面板,ComfyUI 继续跑
新窗口 单独打开 http://127.0.0.1:<port>
释放显存 调用 ComfyUI 的 POST /free,卸载模型、释放缓存,不停止服务
本机配置 自动读取 GPU / 显存 / CPU / 内存 / 磁盘 / Python / PyTorch
下载模型 LiblibAI、ModelScope、hf-mirror 国内优先;Civitai、Hugging Face、GitHub Releases 补充
存放路径 大模型 / LoRA / VAE / ControlNet 一键打开对应文件夹
模型体检 按模型类型 + 精度估算显存,给出“可以跑 / 勉强 / 不建议”的结论
AI 教师 运行时注册 comfyui-tutor 技能,路径来自当前配置,不写死
自动创建工作区 首次安装创建 <DSH_HOME>/workspaces/ComfyUI,注册为左侧栏「ComfyUI」工作区
工作区助手 工作区内置 tools/comfyui.mjs,所有对话可让 AI 执行 status / logs / generate / download / free
自动识别安装 检查环境变量、常见安装位置、DSH 默认目录;路径无效时自动回退,不阻断新用户

环境要求

  • Windows 10/11(主要在 Windows 上开发和测试;macOS / Linux 的 host 代码做了兼容,但未完整验证)
  • DSH,支持 bundle / Cordis 插件
  • 一个可用的 ComfyUI 安装,以及它对应的 Python 环境(需要 torch)
  • NVIDIA 显卡推荐;没有 nvidia-smi 时硬件卡会降级显示,不影响启动
  • Node.js >= 20(DSH 自带环境即可)

安装

0. 从 DSH 插件市场安装(推荐)

仓库:https://github.com/Clover-RHL/comfyui-dsh

在 DSH 里添加一次索引源:

DSH → 插件 → 发现 → 添加索引源
https://clover-rhl.github.io/comfyui-dsh/market/index.json

然后搜索 Comfyui-dsh → 安装。当前索引使用 GitHub Git source,不需要 npm 账号;DSH 市场暂不支持自动升级,更新时卸载重装即可。

目前 DSH 没有官方集中市场,「发现」需要先添加索引源。想不添加索引直接装,可在 DSH 里执行 plugin_manager action=install_bundle target=git+https://github.com/Clover-RHL/comfyui-dsh.git#095bcf2919c629afb01e8d0c7053dedbd898d210。

1. 准备 ComfyUI(可跳过)

插件会先自动找现成的 ComfyUI;第一次安装不需要手动改路径。

按顺序检查:

  1. COMFYUI_DIR / COMFYUI_PATH / COMFYUI_HOME 环境变量
  2. cordis.patch.yml 里显式写的 comfyDir / installDir
  3. 常见位置:C:/D:/E:/F:/ComfyUI、ComfyUI_windows_portable/ComfyUI、ComfyUI-DSH/ComfyUI、AI/ComfyUI、秋叶/绘世整合包目录
  4. 用户目录、Downloads、Desktop 下的 ComfyUI
  5. 仍找不到:使用 <DSH_HOME>/comfyui/ComfyUI

Python 也按同样逻辑找:<installDir>/python、python_embeded、venv,以及 COMFYUI_PYTHON。模型目录优先读取 ComfyUI 的 extra_model_paths.yaml,其次 <comfyDir>/models。

如果自动找错了,再在配置里显式指定即可。

2. 放进 DSH workspace

git clone https://github.com/Clover-RHL/comfyui-dsh.git comfyui-dsh

把 comfyui-dsh 放到 DSH 的 workspace 下,例如:

<workspace>/comfyui-dsh

3. 配置(可选)

cordis.patch.yml 里默认不写死任何人的绝对路径,只保留端口和工作区开关:

config:
  port: 8199
  host: '127.0.0.1'
  startupTimeoutMs: 240000
  autoStopOnExit: true
  allowEmbedding: true
  autoWorkspace: true
  extraArgs: []

如果自动识别不对,再追加自己的路径:

  installDir: 'D:/ComfyUI-DSH'
  comfyDir: 'D:/ComfyUI-DSH/ComfyUI'
  pythonPath: 'D:/ComfyUI-DSH/python/python.exe'
  modelsRoot: 'D:/AI/ComfyUI/models'

显式配置优先;路径不存在时自动回退到探测结果,不会因为作者示例路径而启动失败。

4. 安装 bundle

在 DSH 会话里:

plugin_manager action=install_bundle target=<workspace>/comfyui-dsh

安装后刷新 DSH 页面,左侧栏会出现官方 Comfy 标记图标。

5. 首次启动

点「启动 ComfyUI」,等待 15–60 秒。首次加载自定义节点和模型索引会慢一些。

6. 第一次安装还会创建 ComfyUI 工作区

安装后左侧栏会多一个 ComfyUI 工作区,默认路径 <DSH_HOME>/workspaces/ComfyUI,它里面自带:

AGENTS.md          # 告诉 AI 这个工作区绑定 ComfyUI,先 status / logs
tools/comfyui.mjs  # AI 可直接运行的助手

这个工作区里的所有对话都会自动读取 AGENTS.md,因此可以直接说:

  • “帮我看看 ComfyUI 为什么没启动” → AI 跑 logs
  • “画一只戴红围巾的橘猫” → AI 跑 generate
  • “把显存清一下” → AI 跑 free
  • “帮我下载这个 LoRA” → AI 跑 download

工作区只创建一次;之后即使删除也不会在每次启动时重复创建。需要重建时删除 <DSH_HOME>/comfyui/.workspace-created 再重载插件。

工作区为什么默认在 C 盘?

因为 DSH 默认把工作区注册信息放在 DSH_HOME(通常是 C:\Users\<用户>\.dsh)。这个目录里只有 AGENTS.md 和 tools/comfyui.mjs,大约十几 KB,不是模型、不是出图、也不是 ComfyUI 本体;ComfyUI、Python、模型和输出仍然在你自己的 ComfyUI 所在盘。

如果想把对话工作区也放到 E 盘,在 cordis.patch.yml 里加一行即可:

  workspaceDir: 'E:/ComfyUI-DSH/workspace'

再重载插件;插件会新建并注册这个路径,旧的 C 盘工作区不会被删除(需要的话可以手动从 DSH 侧边栏移除)。

配置项

键 默认 / 示例 说明
installDir 自动探测,找不到时 <DSH_HOME>/comfyui 插件运行根目录(日志、Python、ComfyUI 的父目录)
comfyDir 自动探测,找不到时 <DSH_HOME>/comfyui/ComfyUI ComfyUI 核心目录,必须包含 main.py
pythonPath 自动探测 运行 ComfyUI 的 Python;找不到时界面会提示补环境
modelsRoot 优先读 extra_model_paths.yaml,否则 <comfyDir>/models 插件统计/展示/打开的模型库;建议只读共享
port 8199 独立端口,避免和原有 ComfyUI 冲突
host 127.0.0.1 只监听本机;不要随意改成 0.0.0.0
startupTimeoutMs 240000 启动超时
autoStopOnExit true DSH 退出时停止 ComfyUI
allowEmbedding true 加 --enable-cors-header,允许 iframe 内嵌
autoWorkspace true 首次安装自动创建并注册「ComfyUI」工作区
workspaceDir <DSH_HOME>/workspaces/ComfyUI 工作区目录;可改成 E:/ComfyUI-DSH/workspace 等任意可写目录
extraArgs [] 追加给 ComfyUI 的启动参数,例如 --lowvram

关于 allowEmbedding 和黑屏

ComfyUI 默认的 origin_only_middleware 会检查 Host 和 Origin。DSH 页面和 ComfyUI 端口不同,iframe 请求会被 403,表现为黑屏。

插件在 allowEmbedding: true 时给 ComfyUI 加官方参数:

--enable-cors-header

该参数会跳过这个来源校验,并加上 Access-Control-Allow-Origin: *。因为服务仍然只绑定 127.0.0.1,只在本机使用是可接受的;如果你把 host 改成 0.0.0.0,请自行评估风险,或改成反向代理同源方案。

隔离部署示例

D:\ComfyUI-DSH
├─ python\            # 从现有环境复制的 Python + PyTorch
├─ ComfyUI\           # ComfyUI 核心 + 自定义节点
│  ├─ extra_model_paths.yaml   # 只读挂载外部模型库
│  ├─ output\         # 新图写这里
│  └─ user\           # 独立设置
└─ logs\              # 启动日志

外部模型库(例如 D:\AI\ComfyUI\models)只作为只读共享,不移动、不删除、不改写。示例 extra_model_paths.yaml:

comfui_shared:
  base_path: D:/AI/ComfyUI
  checkpoints: models/checkpoints
  loras: models/loras
  vae: models/vae
  controlnet: models/controlnet
  text_encoders: models/text_encoders
  diffusion_models: models/diffusion_models

不要设置 is_default: true,否则 ComfyUI 下载的新模型可能写进原模型库。

AI 在 ComfyUI 工作区里能做什么

工作区内的 tools/comfyui.mjs 不依赖第三方包,直接调用插件和 ComfyUI:

node tools/comfyui.mjs status
node tools/comfyui.mjs logs --lines 80
node tools/comfyui.mjs models --type all
node tools/comfyui.mjs start
node tools/comfyui.mjs free
node tools/comfyui.mjs open --kind checkpoints
node tools/comfyui.mjs generate --prompt "一只戴红围巾的橘猫,电影感" --width 1024 --height 1024
node tools/comfyui.mjs download --url "https://..." --type loras
  • generate 使用 CheckpointLoaderSimple + KSampler + VAEDecode + SaveImage 的最小 txt2img 工作流,默认 1024×1024 / 20 步 / CFG 7;出图后打印绝对路径。
  • download 只允许 Civitai、Hugging Face、hf-mirror、ModelScope、LiblibAI、GitHub 这些域名,按类型写入 <modelsRoot>/checkpoints|loras|vae|controlnet,不会覆盖已有文件(除非加 --force)。
  • 所有命令都先读插件 /status,所以路径和端口始终以实际配置为准。

工作区里的 AI 仍然受 DSH 的工具权限约束;涉及删除、覆盖、改系统设置时,先让用户确认。

接口

Host 侧提供同源 JSON 接口,只允许本机 DSH 页面访问:

方法 路径 说明
GET /api/dsh-comfyui/status 运行状态、端口、路径、模型计数
POST /api/dsh-comfyui/start 启动
POST /api/dsh-comfyui/stop 停止并释放
GET /api/dsh-comfyui/logs 最近日志
GET /api/dsh-comfyui/hardware 硬件检测;?refresh=1 强制刷新
POST /api/dsh-comfyui/free-vram 调用 ComfyUI /free,卸载模型、释放显存
POST /api/dsh-comfyui/open-folder 打开白名单目录,body { "kind": "checkpoints" }

修改类接口(start / stop / free-vram / open-folder)还要求请求头 X-DSH-ComfyUI: 1,用于阻止跨站请求伪造。

open-folder 只接受这些 kind:

models, checkpoints, loras, vae, controlnet, output, input, temp, comfy, install, workspace

模型下载

国内优先(打不开国外站点时先走这里):

  • LiblibAI 哩布哩布 — 国内友好,中文界面,部分模型免费
  • ModelScope 魔搭 — 国内模型平台
  • hf-mirror — Hugging Face 国内镜像

国外 / 补充:

  • Civitai(C站) — 模型最全,需科学上网
  • Hugging Face — 官方开源模型主来源
  • GitHub Releases — 个别 ControlNet / Flux 配套文件

ComfyUI 内下载:在 ComfyUI-Manager 里搜索 ComfyUI-Model-Downloader 或 CivitaiManager。

存放位置(以 modelsRoot 为准):

类型 目录
大模型 / Checkpoint <modelsRoot>/checkpoints
LoRA <modelsRoot>/loras
VAE <modelsRoot>/vae
ControlNet <modelsRoot>/controlnet

下载后文件名不要改;刷新模型列表或重启 ComfyUI。

模型体检

面板里的“模型体检”是一个保守估算:

  • 显存需求 ≤ 85%:可以跑
  • 85%–130%:勉强,建议 fp8/量化 + --lowvram + 降低分辨率
  • 130%:不建议直跑,换 fp8/GGUF Q4,或用云端 / 更大显存机器

实际还受分辨率、批量、自定义节点影响。把模型链接发给 DSH AI,comfyui-tutor 技能会按真实参数再算。

故障排查

现象 处理
面板黑屏 / iframe 空白 确认 allowEmbedding: true;ComfyUI 启动参数应包含 --enable-cors-header;仍不行点「新窗口」
启动失败 看日志末尾;检查 pythonPath、comfyDir/main.py、端口占用、显卡驱动
端口被占用 Get-NetTCPConnection -LocalPort 8199;换 port 或关掉占用程序
显示已停止但显存仍占用 插件重载后会自动接管端口上的 ComfyUI;若界面还没刷新,点一次「启动」让它接管,或点「关闭」结束残留进程
模型列表为空 检查 modelsRoot、extra_model_paths.yaml,以及 ComfyUI 是否有读权限
爆显存 SDXL 控制在 1024×1024;Flux 用 fp8;加 --lowvram;关掉其他 GPU 程序
释放显存按钮无变化 没有加载模型时释放量可能为 0;加载模型后再试;或直接「关闭」
ComfyUI-Manager 报 raw.githubusercontent.com 它联网检查失败,不影响启动和画图,可忽略

开发

没有构建步骤,源码即产物:

comfyui-dsh/
├─ src/index.js        # Host:进程管理、自动探测、工作区注册、HTTP 接口、技能
├─ src/client.js       # Client:左侧栏入口、面板 UI、iframe
├─ assets/comfyui.mjs  # 工作区助手,首次安装复制到 <DSH_HOME>/workspaces/ComfyUI/tools
├─ cordis.patch.yml    # bundle 配置
├─ locale/             # 元数据国际化
└─ icon.svg

检查语法:

npm run check

CI 也会在 Node 20 / 22 上跑同样的语法检查。

修改后重新安装 bundle 并刷新 DSH 页面。

安全

  • Host 接口只接受 loopback 且 Host 为 localhost 的请求。
  • 修改类接口要求 X-DSH-ComfyUI: 1 请求头,阻止本地网页跨站调用。
  • open-folder 只允许白名单目录,不接受任意路径。
  • 不做遥测,不上传任何本地数据;外部链接只在用户点击时打开。
  • 模型库只读共享;不删除、不移动用户原文件。
  • --enable-cors-header 会放宽 ComfyUI 同源限制,服务请保持绑定 127.0.0.1。

更多见 SECURITY.md。媒体/隐私边界见 PRIVACY.md,Logo 与商标说明见 NOTICE。

开源与发布

仓库已开源:https://github.com/Clover-RHL/comfyui-dsh。当前发布方式为 Git source + GitHub Pages 索引,不依赖 npm;索引地址:

https://clover-rhl.github.io/comfyui-dsh/market/index.json

更完整的发布、npm 可选发布、隐私检查说明见 PUBLISHING.md:

  • 发布前的隐私/密钥检查(npm run check:secrets);
  • 如何托管 market/index.json,让用户在 DSH 的「发现」里添加索引源后搜索安装;
  • 为什么目前没有官方插件市场,以及进入官方目录需要 DSH 团队收录。

Comfyui-dsh 是非官方社区插件。ComfyUI 名称和 Logo 属于 Comfy Org,Logo 仅用于标识被集成的应用,不代表官方背书;详见 NOTICE。

License

MIT。ComfyUI 名称/Logo 不包含在 MIT 授权范围内。

English

Comfyui-dsh is an unofficial DSH sidebar workbench for local ComfyUI: start/stop/background, embedded iframe, a dedicated Free VRAM button, automatic hardware detection, China-first model download links, and a model-fit estimator. On first install it also creates a ComfyUI workspace whose conversations can drive the workbench through tools/comfyui.mjs (status, logs, generate, download, free VRAM). It auto-detects an existing ComfyUI installation; when none is found it prepares <DSH_HOME>/comfyui instead of writing into the plugin folder. It never modifies your model library.

See the Chinese sections above for installation, privacy, and publishing. For distribution, see PUBLISHING.md; for the logo/trademark notice, see NOTICE.

—/ 5

No ratings yet

Verified DSH bundle

Commit a17031927359

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout