前言¶
在 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:... 一类命令:
- 将仓库放到本地任意目录(不要放进 profile 的
node_modules)。README 示例路径为D:\plugins\dsh-image-canvas。 - 在 DSH 左侧栏 插件 → 添加插件,填写该目录的绝对路径,按提示启用。
- 若右侧栏面板迟迟不出现,完整重启一次桌面版(宿主半边探活路由需重启才挂载;浏览器半边画布 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 许可证,确认符合你的安全与合规要求。
典型用法¶
- 右侧栏「+」→ 选择 无限画布,打开常驻画布。
- 在对话中让 Agent 生成或打开图片,或在文件树中点开图片 → 自动落到画布。
- 用 选择 移动与多选;切换到 标记 / 框选 / 涂抹 标注,在标记浮层中写清修改意图。
- 点 复制批注(N) 回到对话粘贴,让 Agent 按批注处理;或点 生成 / 改图 走本地 ComfyUI。
- ⋯ → 导出 PNG 下载当前画布合成图。
界面右下角提供生成/改图、指针组(选择/拖动)、批注组、适应视图与更多菜单;图片与画布空白处各有右键菜单(复制/粘贴/剪切/删除、改图、导出、清空等)。详细快捷键见仓库 README 表格。
适用场景与注意¶
适合:需要在同一工作会话里汇总多张参考图或产出图、用批注驱动 Agent 改稿,或希望在不依赖云端 Key 的前提下用本机 ComfyUI 快速试改的用户。
限制(README 已知项):
- 改图依赖本机 ComfyUI;一次只跑一单任务,换 checkpoint 首张可能较慢。
- 仅接管 session scope 工作区文件(
dsh-resource://file/session/...);absolutescope 无会话,不会被汇入。 - 单文件读取上限取决于宿主(官方默认 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 与探活接口的落地路径。