dsh-image-canvas:DSH 桌面版右侧栏无限画布与本地 ComfyUI 改图

前言

在 DSH 桌面版里做视觉类任务时,图片往往散落在对话预览、文件树和交付物里:改一版要来回切窗口,想在图上标「这里改配色、那里去掉杂物」又很难把坐标和说明一次性交给 Agent。社区里已有参考实现(例如 dsh-design-mode)把画布、批注和版本树放在一起,但需要独立实例;若你已经在用 DSH 桌面版 0.2.x,更希望能力直接挂在官方右侧栏里、除推理外尽量本地完成,可以看一下 Link-h1j 维护的客户端插件 dsh-image-canvas。

这是什么

dsh-image-canvas 是 DSH 桌面版右侧边栏的「无限画布」插件:在对话、文件树或交付物中打开的图片会汇入同一张可平移、缩放的画板;支持拖动、缩放、旋转、锁定与撤销,可在图上做点/框/涂抹批注,一键把批注整理成带画布坐标的提示词交给 Agent,也可通过本机 ComfyUI 做整图重绘、按批注局部重绘或文生图。除 ComfyUI 推理外流程在本地完成,README 写明不需要任何云端 API Key。当前 package 版本为 0.4.0,许可证 MIT,平台标注为 DSH Desktop (Windows),Node.js ≥ 20(主要用于开发自检)。

灵感与交互参考 KaichenCurry/dsh-design-mode;本仓库是为 DSH 桌面版 0.2.x 重写的独立插件,走官方右侧栏 tab 契约,直接装进当前桌面版(在 0.2.0-rc.2 上开发验证)。

核心功能

下面按 README 能力表归纳,只列资料中已说明的行为。

图片汇入与画布

  • 打开 png/jpg/jpeg/gif/webp/bmp/ico/svg/avif/apng 会落到同一张画布;同一张图重复打开不会重复添加。
  • 无限画布:滚轮以指针为中心缩放,手/中键或 Alt 拖动平移,适应视图,显示真实缩放百分比。
  • 单选节点:8 个缩放手柄(角上等比、Shift 放开比例、边单向缩放)+ 外侧旋转点(Shift 吸附 15°);支持拖动、锁定、删除、F 聚焦。
  • 撤销/重做:Ctrl+Z / Ctrl+Y,最多 60 步。
  • 按会话持久化:默认写入 <DSH_HOME>/storages/dsh-image-canvas/<会话>.json;宿主不可用时回落 localStorage。AI 产出图片在同目录 out/<会话>/,由插件路由取回。

批注与交给 Agent

  • 批注工具:点、框选、涂抹三种锚点;编号标记,每条可写说明;「标记」浮层中可查看与删除。
  • 复制批注:一键把批注整理成提示词(含画布坐标)复制到剪贴板,粘贴进对话即可让 Agent 按意见处理。

本地改图(ComfyUI)

需本机已启动 ComfyUI(插件不负责启动;默认地址 http://127.0.0.1:8189)。三种动作:

动作 说明
整图重绘 img2img,用重绘强度(默认 0.6)控制整体改动幅度
按批注重绘 框选/涂抹作掩码的 inpaint,只改指定区域
生成新图 txt2img(832×1216),结果作为新节点落在源图右侧

使用通用核心节点,不依赖自定义节点;SD1.5 / SDXL / Flux checkpoint 均可选。未启动 ComfyUI 时画布仍可用,三个生成按钮置灰。

导出与其它

  • 将可见图片合成为一张 PNG 下载(含旋转,本地合成)。
  • 在画布面板外的内容图上右键:放入无限画布 / 复制图片地址。

安装与启用

前置:DSH 桌面版 0.2.x、可选本机 ComfyUI、开发自检时需 Node.js ≥ 20。

README 给出的安装方式是本地目录 bundle,而非 dsh plugin add github:... 一类命令:

  1. 将仓库放到本地任意目录(不要放进 profile 的 node_modules)。README 示例路径为 D:\plugins\dsh-image-canvas。
  2. 在 DSH 左侧栏 插件 → 添加插件,填写该目录的绝对路径,按提示启用。
  3. 若右侧栏面板迟迟不出现,完整重启一次桌面版(宿主半边探活路由需重启才挂载;浏览器半边画布 UI 可热更)。

装完后可用探活与 profile 检查(端口换成本机 DSH Web GUI 实际端口):

Invoke-RestMethod http://127.0.0.1:<端口>/plugins/dsh-image-canvas/probe

期望返回含 ok: true、plugin: dsh-image-canvas、version: 0.4.0 等字段。

(Get-Content "$env:USERPROFILE\.dsh\profiles\desktop\package.json" -Raw | ConvertFrom-Json).dsh.profile.bundles -contains 'dsh-image-canvas'

期望为 True。

ComfyUI 地址:默认 http://127.0.0.1:8189;更换时设置环境变量 DSH_IMAGE_CANVAS_COMFY(宿主半边启动时读取,改后需重启桌面版)。Windows 上启动 ComfyUI 前建议设 PYTHONUTF8=1,避免控制台 GBK 与 emoji 导致 UnicodeEncodeError。

插件以当前 DSH 进程权限运行;安装前请自行查看源码与 MIT 许可证,确认符合你的安全与合规要求。

典型用法

  1. 右侧栏「+」→ 选择 无限画布,打开常驻画布。
  2. 在对话中让 Agent 生成或打开图片,或在文件树中点开图片 → 自动落到画布。
  3. 用 选择 移动与多选;切换到 标记 / 框选 / 涂抹 标注,在标记浮层中写清修改意图。
  4. 点 复制批注(N) 回到对话粘贴,让 Agent 按批注处理;或点 生成 / 改图 走本地 ComfyUI。
  5. ⋯ → 导出 PNG 下载当前画布合成图。

界面右下角提供生成/改图、指针组(选择/拖动)、批注组、适应视图与更多菜单;图片与画布空白处各有右键菜单(复制/粘贴/剪切/删除、改图、导出、清空等)。详细快捷键见仓库 README 表格。

适用场景与注意

适合:需要在同一工作会话里汇总多张参考图或产出图、用批注驱动 Agent 改稿,或希望在不依赖云端 Key 的前提下用本机 ComfyUI 快速试改的用户。

限制(README 已知项):

  • 改图依赖本机 ComfyUI;一次只跑一单任务,换 checkpoint 首张可能较慢。
  • 仅接管 session scope 工作区文件(dsh-resource://file/session/...);absolute scope 无会话,不会被汇入。
  • 单文件读取上限取决于宿主(官方默认 32 MiB)。
  • 画布状态按会话隔离;换会话即换一张画布。
  • 目前没有版本树;每次 AI 改图会新增节点,形成简单版本链。

卸载:在插件管理器中移除;如有残留可删除 $DSH_HOME/storages/dsh-image-canvas 及浏览器中 dsh-image-canvas:* 的 localStorage 键。

链接

  • 社区目录页:https://www.skillhub.cn/plugins/Link-h1j/dsh-image-canvas
  • GitHub:https://github.com/Link-h1j/dsh-image-canvas

DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。若你已在桌面版 0.2.x 上工作,需要把看图、批注、Agent 提示词与本地 ComfyUI 串在同一条右侧栏流程里,dsh-image-canvas 提供的是一条可核对 README 与探活接口的落地路径。

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

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

小夜