dsh-grsai-canvas:DSH 右侧栏无限画布与 GrsAI 按标注改图

前言

在 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 表述并存于文档不同层,以设置面板说明为准。

核心功能

画布与标注

  1. 摆图:+图片 选文件、拖拽、Ctrl+V 粘贴,或从「工作区」挑选会话内文件;也支持拖入网页图片、http/https 直链(经宿主 /image 代理取图)。
  2. 视图:滚轮以光标为中心缩放;空格 / 中键 / 右键拖动平移;适应、100% 等视图控制;多图可自由摆放,生成结果也是普通图片对象。
  3. 标注(归一化坐标粘在图上,不烧进像素):选择 V、画笔 B、箭头 A、矩形 R、椭圆 O、蒙版 K(涂哪改哪)、橡皮 E。文字自 0.21.0 起为「文字图层」,在选中图片后于属性区 + 文字 添加。
  4. 生成:填写提示词后,选中图点「按标注改图」(提交原图 + 标注合成图),未选图时可「生成新图」。可勾选「只提交标注范围(裁剪)」「附加按标注改说明」;支持参考图、任务排队(默认最多同时 2 张,MAX_CONCURRENT_JOBS 可调)、生成占位框与单任务打断。
  5. 辅助能力(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「画布怎么用」为准)。

  1. 在 DSH 网页打开右侧栏画布,于设置中填写 GrsAI APIKEY 与接口地址(如需)。
  2. 用 +图片 或粘贴把主图放上画布;用箭头、矩形或蒙版标出要修改的区域。
  3. 在生成区选择模型与尺寸(可用「原图比例」),填写提示词;需要时勾选裁剪或附加说明,点「按标注改图」。
  4. 等待占位框进度完成,新图出现在原图右侧并被选中;原图与标注保留,可继续标注或再生成。
  5. 在「记录」标签查看历史,可用「恢复参数」回填表单(不会自动重发)、「放入画布」或下载;画布状态与工作区内的 画布/ 目录一并持久化。

若使用 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。

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

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

小夜