dsh-comfy:在 DSH 右侧边栏用原生无限画布操作本机 ComfyUI 工作流

前言

在 DSH(DeepSeek Harness)桌面版里跑 ComfyUI,常见做法是在右侧边栏用浏览器标签打开 ComfyUI 的 Web UI。页面完整,但本质是「另一个应用在侧栏里嵌套」,和 DSH 会话、工作区的集成也偏浅。

维护者 Link-h1j 的客户端插件 dsh-comfy 换了一条路:不把 ComfyUI 整站嵌进来,而是把本机工作流数据接到 DSH 原生右侧栏标签页——节点图画在无限画布上,参数在面板里改,运行由宿主进程直连 ComfyUI API,结果回到画布。下面介绍它做什么、怎么装、日常怎么用,以及需要注意的限制。

这是什么

dsh-comfy 是 DSH 桌面版右侧边栏插件(分类:客户端)。一句话定位:在右侧边栏以无限画布浏览、检查、编辑参数并运行本机 ComfyUI 工作流,使用原生面板,而不是内嵌浏览器。

  • 仓库:Link-h1j/dsh-comfy
  • 社区目录页:skillhub.cn/plugins/Link-h1j/dsh-comfy
  • 许可证:MIT(package.json 版本 1.0.0;Node.js ≥ 20 用于构建/自检)
  • 开发验证环境:README 写明在 DSH 桌面版 0.1.5 / 0.2 预览版上验证;平台徽章为 DSH Desktop (Windows)

入口与会话行为:右侧边栏顶部 +(开始页)→ ComfyUI 胶囊 → 打开「ComfyUI」标签页;与「无限画布 / 工作区文件 / 浏览器」并列,每个会话独立记住标签页与视图状态。

核心功能

工作流从哪里来

插件会从多处发现工作流并供选择:

  • 本机 ComfyUI 常见路径:user/default/workflows、user/workflows
  • 工作区自定义目录(可配置)
  • ComfyUI 官方模板(README 称约 295 个,可搜索、按来源分组,并标注 UI/API 格式)

无限画布与 ComfyUI 式操作

画布支持平移、缩放、适应视图、分组框、贝塞尔连线、按类别着色的节点卡片;静音/绕过/缺失类型有对应状态;缩放低于 50% 时使用 LOD 骨架卡片;连到大图时会自动聚焦采样/导演类节点。

操作习惯尽量贴近 ComfyUI:左键框选、中键或空格拖拽平移、右键上下文菜单(画布/节点/结果卡片)、双击节点改参数、F 适应画布等。完整对照表见仓库 README「画布操作」一节。

参数、运行与结果

参数编辑按节点分组列出可编辑控件(文本、数字、开关、下拉)。改动只作为本次运行的覆盖值(键形如 "<nodeId>.<输入名>"),不写回工作流 JSON 文件。

运行提供 ▶ 运行 / ■ 中断;约 800ms 轮询进度,显示状态、耗时、队列位置;未知节点、缺必填、子图等错误用中文提示。

结果在底部结果条和可拖动的画布结果卡片中展示;大图浮层支持下载、新标签打开;图片、视频、音频、3D、文本按类型渲染。

离线自愈与主题

ComfyUI 未启动时,界面提供一键「启动 ComfyUI」:由宿主在后台调用你配置的启动脚本,服务起来后自动重连。浅色/深色跟随系统,颜色走 DSH --dsw-alias-* 设计令牌。

架构要点(便于排查问题)

浏览器侧 client.js 负责右侧栏标签类型、画布、参数与运行 UI;通过同源 fetch 访问仅 loopback 的宿主 API /api/dsh-comfy/*。宿主负责工作流发现与路径校验、UI/API 格式归一为统一 Graph、向 ComfyUI 提交 prompt,并代理队列、历史与输出。ComfyUI 默认探测 127.0.0.1:8188,其次 8189。

主要端点包括:GET /status、POST /start、GET /workflows、GET /workflow?id=、POST /run、GET /progress?promptId=、POST /interrupt、POST /clear-queue、GET /history?limit=、GET /view?filename=&subfolder=&type=。错误统一为 {ok:false,error} 的 JSON。

安装与启用

前置:DSH 桌面版、本机可运行的 ComfyUI、Node.js ≥ 20(仅构建/自检需要)。

官方 README 给出的安装步骤如下(Windows 示例路径可按本机修改):

  1. 将仓库放到插件目录(不要直接放进 profile 的 node_modules):
git clone https://github.com/Link-h1j/dsh-comfy.git D:\plugins\dsh-comfy
  1. 安装到 DSH profile(以 desktop profile 为例):
# ① 链接到 profile 依赖(Windows 用 junction;pnpm link 亦可)
cmd /c mklink /J "%USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-comfy" "D:\plugins\dsh-comfy"
# ② 在 profile 的 cordis.patch.yml 末尾追加:
#   - insert:
#       - id: dsh-comfy
#         name: dsh-comfy
  1. 重启 DSH 桌面版。右侧边栏 + → ComfyUI 应出现。

也可以在会话里让 DSH Agent 用插件管理器从本地目录安装(plugin_manager install_bundle 指向克隆目录),效果与上述链接方式相同。

本机路径与启动脚本

若 ComfyUI 安装布局与默认不同,可复制 config.example.json 为 config.local.json(已在 .gitignore,不会提交):

{
  "comfyHome": "C:\\ComfyUI",
  "workspaceRoot": "C:\\ComfyUI\\workflows",
  "startScript": "C:\\ComfyUI\\start_comfyui.ps1"
}

优先级:环境变量 → config.local.json → 内置默认值。修改环境变量后需重启 DSH。

变量 默认值 说明
DSH_COMFY_URL 自动探测 127.0.0.1:8188 → 8189 ComfyUI 服务地址
DSH_COMFY_HOME config.local.json → ~/ComfyUI ComfyUI 安装根目录
DSH_COMFY_WORKSPACE config.local.json → <comfyHome>/workflows 额外工作流目录(递归扫描)
DSH_COMFY_TEMPLATES config.local.json → <comfyHome>/.venv/.../templates 官方模板目录
DSH_COMFY_START_SCRIPT config.local.json → 插件同级 start_comfyui.ps1 「启动 ComfyUI」调用的脚本

典型用法

  1. 确认 ComfyUI 已在本机运行,或在本插件离线态点击「启动 ComfyUI」(依赖 DSH_COMFY_START_SCRIPT / config.local.json 中的 startScript)。
  2. 在 DSH 右侧边栏 + → ComfyUI,打开标签页。
  3. 通过工作流选择器挑选本机、工作区或官方模板中的工作流;在画布上查看节点图。
  4. 单击节点标题打开参数抽屉,或使用双击节点;按需修改控件值(仅影响本次运行)。
  5. 右键菜单或工具栏执行 运行;需要时用 中断 停止。运行完成后在结果条与画布结果卡片查看输出,大图可预览、下载或新标签打开。
  6. ComfyUI 未连上时,界面会提示离线;启动脚本执行成功后会自动连上。

工作流格式说明(摘自 README):UI 格式保留节点位置与分组;API 格式会自动分层布局并可直接运行。Note、MarkdownNote、Reroute、PrimitiveNode 以小卡片显示且不参与运行。官方模板里的 Subgraph 节点目前只能查看、不能运行(会中文提示)。

适用场景与注意

适合谁:已经在本机维护 ComfyUI、希望在 DSH 会话旁快速换工作流、改参数、看队列与结果,又不想长期占一个内嵌浏览器标签的开发者或创作者。

安全与权限:插件在 DSH 宿主进程内注册 loopback API,并代你访问本机 ComfyUI。安装前请自行阅读仓库源码与 MIT 许可证;插件随当前 DSH 进程权限运行,路径与启动脚本配置错误可能影响本机环境。

已知限制(README 原文要点):

  • 官方模板中的 Subgraph 只能查看不能运行;其余模板能否跑通取决于本机自定义节点是否齐全。
  • 参数覆盖不回写工作流文件;画布节点与结果卡片位置仅会话内存,不持久化。
  • 输出经 ComfyUI /view 代理;/history 只列最近 50 条。
  • 侧栏宽度有限,超大工作流需平移缩放浏览。

卸载:在插件管理器停用或移除 dsh-comfy 即可,源码目录可保留。同作者的 dsh-image-canvas 是同一右侧栏生态里的另一张无限画布(图片批注与 ComfyUI 改图等),可按需搭配。

结尾

dsh-comfy 把 ComfyUI 工作流从「侧栏里开网页」改成「侧栏里的原生画布 + 宿主直连 API」,工作流来源、参数覆盖式运行和结果展示都在 README 里有完整说明。DSH 社区插件目录独立于 DeepSeek / 幻方,属于社区生态;若要安装或反馈问题,以仓库与目录页为准。

  • 目录页:https://www.skillhub.cn/plugins/Link-h1j/dsh-comfy
  • GitHub:https://github.com/Link-h1j/dsh-comfy
羽毛球分组比赛记分
小程序二维码

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

小夜