dsh-comfyui-canvas
From chat to canvas to artwork — drive ComfyUI as a visual workflow IDE inside DSH. Embed ComfyUI (local or cloud) as a split-screen canvas in DeepSeek Harness Web: the agent sparks ideas, writes prompts and scripts right in the chat, applies them live to the canvas in front of you, and produces ima
Install
dsh plugin --profile web add dsh-comfyui-canvas
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
dsh-comfyui-canvas(DSH 画布插件)
中文 · [English](README.md)






关键词:ComfyUI · Stable Diffusion · 文生图 · 图生图 · AI 绘画 · 工作流 workflow · 音乐 music · 视频 video · 3D · DeepSeek Harness · DSH
✅ DSH 版本兼容(v0.1.4 起):分屏布局已完全自包含在插件内——只用官方 DSH 插槽(conversation.session.header.utilities)与 DOMdata-*锚点,零核心改动。任何官方 DSH v0.1.x(含带破坏性 client 更新的 v0.1.2+)都开箱即用、无需补丁。此前分屏 rail 依赖 DSH 私有核心补丁,v0.1.4 已彻底移除该依赖。
从对话到画布再到作品——DSH 里驾驭 ComfyUI 的可视化工作流 IDE。 把 ComfyUI(本地或云端)以画布分屏嵌入 DeepSeek Harness Web,agent 在对话里激发创意、书写提示词与脚本,实时落到你眼前的画布上,产出图像、音乐、视频、3D。从灵感到成品,全程不离开对话,不用切换任何前端工具:
- 画布操作:搭建编排、读写工作流、修改节点、连线、运行、调整参数、工作流查错——所见即所得,实时落在你眼前的画布上
- 生产任务:批量扫参(
batch_run)、自动取回出图(get_outputs)带回对话,实现图像、音乐、视频、3D 等多任务智能创作与批量生产 - 环境维护:一键启动 ComfyUI、一键升级核心与全部自定义节点(
upgrade),省心维护不间断
本仓库集成了 DSH 侧插件(画布副驾)+ ComfyUI 侧桥接节点。需要无人值守 / 规模化执行时,可配合官方 ComfyUI MCP 服务器使用——见[「画布 + MCP」](#画布--mcp同一个-comfyui-的两种驾驶方式)。
功能特性
能力 · 说明
画布分屏入口 · 点会话标头右侧的 ComfyUI 按钮进入画布左 + 对话 rail 右的分屏形态——画布内嵌 ComfyUI 前端(本地/云端),右侧是官方对话 rail,边看画布边发消息让 agent 操控。iframe 常驻不重载,再点按钮即关闭分屏。
分屏布局(自包含) · ComfyUI 按钮 = 画布左 + 对话右,状态按会话隔离。只用官方插槽(conversation.session.header.utilities)+ DOM data-* 锚点与 CSS 变量,零核心改动,上游样式变化也不受影响。
可视化画布副驾 · agent 操作你正在看的画布——节点出现、连线接上、参数变化、运行触发,全部实时显示在屏幕上,每一步都看得见,而不是黑盒改 JSON。出图经 comfyui_get_outputs 直接带回对话。
画布操作工具 · comfyui_read_workflow / add_node / connect / set_param / remove_node / inject_text / load_workflow / run / debug / clear / group——在活画布上搭建与修复工作流;group 把复杂工作流分成具名组(提示词区 / 采样区 / 输出区),组框自动贴合、预留标题行、成员随保存持久化。工作流生命周期(v0.1.12):comfyui_new_canvas 直接调用前端"新建空白工作流"命令开新画布(不用清空、不模拟点击)、comfyui_rename_workflow 命名/重命名、comfyui_save_workflow 保存——全部走前端 store、无对话框。布局整理(v0.1.12):comfyui_move_node(绝对/偏移移动)、comfyui_align_nodes(对齐 / 均匀分布 / 网格重排)整理画布,组内成员移动时组框自动重新贴合。
生产工具 · comfyui_batch_run 一次扫参数矩阵(seed / prompt / 强度)——支持显式 runs 或声明式 matrix(zip 并行槽位 / product 笛卡尔展开);comfyui_get_outputs 把产物直接带回对话——图像、视频、GIF、音频都支持,可传 outputStem 自动编号(stem.01.png,永不覆盖);comfyui_attach_file 把本机任意文件(图片/音频/视频/3D/文本)上传进 ComfyUI input/ 供对应 Load 节点使用;comfyui_export_api 把当前画布导出为 API 格式工作流,供 comfy-cli 无人值守批量。
桥接节点一键安装 · comfyui_setup_bridge 检测 / 安装 / 更新 ComfyUI 侧桥接节点到 custom_nodes/(幂等、校验文件、提示何时重启)——不再需要手动复制;comfyui_config 一眼报告 bridgeInstalled / bridgeVersion / bridgeUpToDate。
项目目录与溯源 · 下载默认落「项目目录」(设置页可改,默认 <工作区>/projects);每次下载把 runs.json(promptId / overrides / 时间戳 / 文件)追加进项目目录,任意一张图都能追溯回它的生成参数。运行失败返回结构化 executionError(节点 id / 节点类型 / 异常类型 / 信息),不再是一堵 JSON 墙。
技能包(SOP) · 内置技能教 agent 按正确顺序操作:comfyui-canvas-ops(读→确认→改→跑→取回→自检)、comfyui-admin-ops(配置/启动/升级/节点管理)、comfyui-video-audio-ops(视频+配音/音轨)、comfyui-dev-ops(开发/调试自定义节点)。装插件即自带技能,无需额外配置。
维护工具 · comfyui_upgrade 一键升级 ComfyUI 核心与全部 git 自定义节点(并发、跳过本地改过的仓库);comfyui_config 报告当前连接、画布专注状态、项目目录,以及桥接鉴权握手检查(bridgeAuthEffective)。
节点开发工具 · comfyui_read_source / comfyui_edit_source / comfyui_reload——对话里直接读写 custom_nodes/ 下的节点源码并重启 ComfyUI,再到画布上验证。
画布专注模式(会话隔离) · agent 通过 comfyui_config 感知当前会话是否开启画布分屏,只在画布场景专注画布操作,且按会话隔离——多个会话互不干扰。
ComfyUI 报错处理 · debug 校验工作流并高亮报错节点(纯校验,不触发执行),agent 帮你定位/修复画布错误。
设置页 · ComfyUI 地址 / 端口 / 网络模式 / 桥接 Token / 启动命令 / 项目目录 / 右侧面板宽度,实时生效;显示插件版本号并支持检查 / 一键更新(更新到 npm 最新版后需重启 DSH)。导航栏已自定义为 ComfyUI logo 图标。
对话栏 · 分屏 rail 复用官方完整对话(消息、输入、发送、贴图、授权弹窗全在),不再需要插件自绘迷你输入框与授权 overlay。
安装
1. 安装 DSH 插件
dsh plugin add dsh-comfyui-canvas
或从 GitHub 安装:
dsh plugin add github:wbin0001/dsh-comfyui-canvas
或本地安装:
# 在 DSH profile 目录下 pnpm add <本仓库路径>
插件自带 cordis.patch.yml(通过 dsh.bundle.patch 声明),装完自动挂载,无需手改配置。
2. 安装 ComfyUI 桥接节点(一键)
agent 工具通过 /dsh-bridge/* 与 ComfyUI 页面通信。装完插件后,让 agent 「安装 ComfyUI 桥接节点」(或自己调用 comfyui_setup_bridge):它会检测 custom_nodes/ 里是否已有桥接节点、把本包内嵌的版本复制过去(幂等——已装同版本或更新则保留)、校验文件、并提示何时重启 ComfyUI。
Agent: comfyui_setup_bridge → { installed, version, upToDate, restartNote }
需要先在 设置 → ComfyUI 画布 填好 ComfyUI 安装目录(或设 COMFYUI_DIR 环境变量)。没填时 comfyui_config 会报告 bridgeInstalled: false——填一次再重跑即可。
手动复制仍然支持(如离线机器)——桥接节点内嵌在本包 comfyui-bridge/ComfyUI-DSH-Canvas:
Windows(PowerShell / cmd):
Copy-Item -Recurse (npm root -g)\dsh-comfyui-canvas\comfyui-bridge\ComfyUI-DSH-Canvas <ComfyUI>\custom_nodes\ComfyUI-DSH-Canvas
macOS / Linux(bash):
cp -r $(npm root -g)/dsh-comfyui-canvas/comfyui-bridge/ComfyUI-DSH-Canvas <ComfyUI>/custom_nodes/ComfyUI-DSH-Canvas
然后重启 ComfyUI 并打开一次画布页面(注入的 bridge.js 会上报画布状态并监听命令)。
3. 云端 ComfyUI(桥接节点装在「跑 ComfyUI 的那台机器」上)
comfyui_setup_bridge 管理的是本机安装(comfyuiDir 是本机路径)。云端 / 远程 ComfyUI 请在云端机器上装桥接节点——二选一:
A. 有 SSH / 控制台(自建云 GPU 机)——在云机上执行:
# 方式 1:拉取 npm 包,把其中的桥接节点解出来 npm pack dsh-comfyui-canvas && tar -xzf dsh-comfyui-canvas-*.tgz && cp -r package/comfyui-bridge/ComfyUI-DSH-Canvas <ComfyUI>/custom_nodes/ # 方式 2:从 GitHub 仓库稀疏检出桥接节点目录 cd <ComfyUI>/custom_nodes git clone --depth 1 --filter=blob:none --sparse https://github.com/wbin0001/dsh-comfyui-canvas.git cd dsh-comfyui-canv …(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::13,最后更新 2026-10-01