前言¶
在 DSH 里做图像相关任务时,常见做法是:把图丢进对话、用文字描述要改哪里,再在聊天窗口里来回对比前后结果。改局部细节时,「哪里要动」往往说不清;多轮迭代时,原图和生成图也容易散落在附件里,不好并排对照。
dsh-grsai-canvas(维护者 knxi,社区目录分类为「联网工具」)在 DSH 网页 GUI 的右侧栏增加一块无限画布:图片作为画布对象摆放,用箭头、框、蒙版等标注标出修改意图,再经 GrsAI(如 gpt-image-2、nano-banana 系列)出图。生成结果默认落在原图右侧,原图与标注保留,便于继续迭代;画布状态自动写入当前会话工作区,刷新不丢。交互思路参考 Cowart(无限画布 + 标注驱动改图)。
下文介绍插件定位、能力与安装方式;典型操作步骤来自项目 README(当前包版本 0.27.3,MIT 许可证)。
这是什么¶
一句话:DSH 右侧栏「画布」插件——无限画布 + 图上标注 + 接入 GrsAI 按标注改图,结果并排对比,画布自动存到工作区。
插件通过 package.json 中的 dsh.client.inject 挂到 @deepseek-ai/dsh-client-ui-sidebar-right;宿主侧在 Cordis 中注册路由,浏览器侧不直连 GrsAI 上游,请求经宿主 /grsai-canvas/* 代理转发,用于绕开 CORS,并避免结果图跨域导致画布无法安全 toDataURL() 保存。
上游接口与 image.grsai.ai 页面所用一致(README 摘录):
| 用途 | 请求 |
|---|---|
| 建任务 | POST https://grsai.dakka.com.cn/v1/api/generate,Authorization: Bearer <APIKEY>,body {model, prompt, images[], aspectRatio, replyType:"async"} → {id} |
| 查结果 | GET https://grsai.dakka.com.cn/v1/api/result?id=<id> → {status, progress, results:[{url}]},约 3 秒轮询一次 |
实际调用时,插件在设置里配置的 KEY 经 x-grsai-key 交给宿主(见下文「设置」),与 README 表格中的 Bearer 表述并存于文档不同层,以设置面板说明为准。
核心功能¶
画布与标注¶
- 摆图:
+图片选文件、拖拽、Ctrl+V粘贴,或从「工作区」挑选会话内文件;也支持拖入网页图片、http/https直链(经宿主/image代理取图)。 - 视图:滚轮以光标为中心缩放;空格 / 中键 / 右键拖动平移;
适应、100%等视图控制;多图可自由摆放,生成结果也是普通图片对象。 - 标注(归一化坐标粘在图上,不烧进像素):选择
V、画笔B、箭头A、矩形R、椭圆O、蒙版K(涂哪改哪)、橡皮E。文字自 0.21.0 起为「文字图层」,在选中图片后于属性区+ 文字添加。 - 生成:填写提示词后,选中图点「按标注改图」(提交原图 + 标注合成图),未选图时可「生成新图」。可勾选「只提交标注范围(裁剪)」「附加按标注改说明」;支持参考图、任务排队(默认最多同时 2 张,
MAX_CONCURRENT_JOBS可调)、生成占位框与单任务打断。 - 辅助能力(README 已列):生成记录(
画布/history.json+画布/results/<id>.png)、双图对比视图、图层面板、22 个内置 Skills 模板(可扩展画布/skills.json)、跨平台批量尺寸、快捷工具条等。
模型与尺寸¶
支持在界面输入或从菜单选择多种模型(如 gpt-image-2 / nano-banana 等);不同模型对 aspectRatio 字段格式要求不同(像素如 1024x1024、比例如 3:4、或 minimax-h3 的方向词)。插件内置 MODEL_SIZES 与换算逻辑,默认尺寸可为「原图比例」,提交前会将合成图长边缩至不超过 SUBMIT_MAX_SIDE(2048),整包超过 MAX_SUBMIT_BYTES(24 MB)会拦截。
安装与启用¶
DSH 以「一切皆插件」方式扩展;SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系。安装前建议阅读 GitHub 仓库 源码与许可证——插件随当前 DSH 宿主进程运行,并会代理访问配置的 GrsAI 接口。
前提:目标机器上 DSH 已可用(README 要求至少跑过一次 dsh web,并存在 profile 目录,例如 Windows 下 %USERPROFILE%\.dsh\profiles\web)。
README 强调:补丁层(cordis.patch.yml 绝对路径)与 bundle 安装只能选一种,同时存在会被 DSH 拒绝。
方式 A:一键安装(README 推荐)¶
将整个 dsh-grsai-canvas 目录或发布 zip 拷到本机任意路径后执行:
双击 dsh-grsai-canvas\install.cmd (根目录;与 deploy\install.cmd 相同)
或在 PowerShell 中:
powershell -ExecutionPolicy Bypass -File deploy\install.ps1
powershell -ExecutionPolicy Bypass -File deploy\install.ps1 -DshHome D:\dsh-home -Profile web
powershell -ExecutionPolicy Bypass -File deploy\install.ps1 -ProfileLocal
powershell -ExecutionPolicy Bypass -File deploy\install.ps1 -UsePnpm # 有 pnpm 时走官方 dsh plugin add
脚本会把包复制到 <DSH_HOME>\profiles\node_modules\dsh-grsai-canvas(默认;-ProfileLocal 则放入 profile 自有 node_modules),并写入 profile 的 dsh.profile.bundles。装完重启 DSH。卸载可使用安装目录内的 deploy\uninstall.cmd。
方式 B:补丁层(适合本机开发)¶
在 <DSH_HOME>\profiles\web\cordis.patch.yml 增加:
- insert:
- id: grsai-canvas
name: '<绝对路径>/dsh-grsai-canvas/lib/index.js'
改源码后宿主侧需重启 DSH;停用则改回 [] 或删除对应行并重启。
设置(APIKEY / 接口)¶
首次未填 KEY 时,界面会提示「填 APIKEY」并弹出设置面板:
| 字段 | 说明 | 存储 |
|---|---|---|
| GrsAI APIKEY | grsai.com 后台 KEY,请求经 x-grsai-key 交给宿主 |
浏览器 localStorage(dsh.grsai-canvas.apikey) |
| 接口地址 | 默认 https://grsai.dakka.com.cn |
localStorage(prefs 的 apiBase) |
KEY 与接口地址仅存本机浏览器,不写配置文件、不进日志;换机器需重新填写。上游 GrsAI 的额度、费用与条款由服务商自行规定。
典型用法¶
下面是一条可复现的主流程(细节以 README「画布怎么用」为准)。
- 在 DSH 网页打开右侧栏画布,于设置中填写 GrsAI APIKEY 与接口地址(如需)。
- 用
+图片或粘贴把主图放上画布;用箭头、矩形或蒙版标出要修改的区域。 - 在生成区选择模型与尺寸(可用「原图比例」),填写提示词;需要时勾选裁剪或附加说明,点「按标注改图」。
- 等待占位框进度完成,新图出现在原图右侧并被选中;原图与标注保留,可继续标注或再生成。
- 在「记录」标签查看历史,可用「恢复参数」回填表单(不会自动重发)、「放入画布」或下载;画布状态与工作区内的
画布/目录一并持久化。
若使用 Skills:在右上角 Skills 选择模板(如抠图、扩图、证件照等),模板参数与提示词前缀会套用到下一次生成;自定义模板保存在工作区 画布/skills.json。
适用场景与注意¶
适合谁:需要在 DSH 会话旁做图像迭代、强调「图上标哪里改哪里」、并希望原图与结果并排对比的开发者或智能体使用者;依赖 GrsAI 图像模型与有效 APIKEY。
需要注意:
- 插件分类为联网工具,生成与取图会访问配置的 GrsAI 端点;安装前请确认信任维护者与代码行为。
- 浏览器不直连上游,但宿主代理仍会以你配置的 KEY 发起请求;请勿在不可信环境泄露 KEY。
- 大图提交前会缩放,标注随比例保持相对位置;蒙版场景下按整图提交,避免裁剪与压暗罩错位。
- 客户端与宿主版本不一致时,部分能力(如自动存画布)可能降级,README 建议重启 DSH 使两侧一致。
- 社区目录页显示星标为 0(截至目录抓取),不代表功能完整度;问题可至 GitHub Issues 反馈。
结尾¶
dsh-grsai-canvas 把「无限画布 + 标注 + GrsAI 出图 + 工作区持久化」收进 DSH 右侧栏,减少在对话里反复描述局部修改的成本。进一步了解与安装包见社区目录 knxi/dsh-grsai-canvas 与源码仓库 github.com/knxi/dsh-grsai-canvas。