dsh-drawai-vectorizer:DSH 画布与 vtracer 高质量矢量化

前言

在 DeepSeek Harness(DSH)里做示意图、流程图或把位图变成可编辑矢量,常见做法是让模型手写一段近似 SVG,或在画布外另开工具链。dsh-drawai-vectorizer 把可编辑画布放进右侧栏,人和模型读写同一份原生 .drawio;本仓库是 fourzkw/dsh-drawai 的增强 fork(v0.4.0,基于上游 0.3.2),在保留上游能力的前提下新增 vtracer 矢量化路线,适合单图高保真描摹,视频全片仍建议用上游自研的 plugin 引擎。

这是什么

一句话:DSH 右侧栏 DrawAI 画布 + diagram_read / diagram_apply 改图工具,位图与视频「绘制复刻」可选 plugin(默认,快、体积小) 或 vtracer(贝塞尔样条、每通道位深、原生分辨率)。

核心功能

画布与 AI 改图(上游能力)

  1. 右侧栏可编辑画布 — 打开 / 新建工作区 *.drawio:节点、连线、分层、对齐、导出;双击改标签。
  2. 自然语言改图 — 模型通过 diagram_read 读结构与选区、diagram_apply 按 ops 改图并原子写回。
  3. 选区感知与回退 — 画布选中会进入模型上下文;AI 改动最多可退 8 步。
  4. SVG 图形节点 — 图标 / logo 可作为节点内容。
  5. 位图矢量化 traceImage — 按工作区图片像素管线描成 SVG 节点(非手写近似)。
  6. 视频复刻 — 抽帧绘制成 SVG 序列,可导出 MP4 / WebM / GIF 等(编码依赖宿主 FFmpeg)。

装好插件后典型变化:右侧栏出现「DrawAI 画布」面板;工具集增加 diagram_read / diagram_apply;会话技能目录有 drawai-canvas。

本 fork 新增:双引擎与 vtracer

上游矢量化路径为调色板量化 + k-means → 连通域 → marching squares → Douglas-Peucker 折线,工作分辨率上限约 499px。本 fork 增加 vtracer:分层颜色聚类 + 三次贝塞尔样条 + 每通道位深控制,在原生分辨率上工作。

视频「绘制复刻」与单图「绘制」面板新增 「矢量化引擎」 下拉:

引擎 说明
plugin(默认) 上游自研描边,快、体积小,适合视频全片
vtracer 高质量,适合单图;可选保真档位

三档保真度(README 实测:同一 1920×1080 帧,渲染到 1920):

档位 关键参数 SVG 体积 绘制步骤 耗时 PSNR
fast cp6 fs2 ld8 spline 1.6 MB 4,060 1.4s ~18 dB
hifi(默认) cp8 fs0 ld8 spline 9.9 MB 35,069 2.8s ~38 dB
pixel cp8 fs0 ld1 none 15.9 MB 173,479 3.7s ~46 dB

对照:同帧上游 plugin 引擎约 18 KB / 584 步 / ~26 dB。参数缩写:cp=colorPrecision,fs=filterSpeckle,ld=layerDifference,mode=PathSimplifyMode;README 注明 colorPrecision 6→8 是画质主因(实测约 18→34.6 dB)。

并行度:由原先 min(4, 逻辑核-1) 改为 floor(逻辑核/2)(例如 16 核 → 8),并配合每 worker 512MB 内存预算(上限 32)。

vtracer 后端对齐上游 drawing 契约({viewBox, fills, steps[]},steps 按面积降序),客户端渐进绘制回放与原版一致。

traceImage 也可指定引擎,例如:

{ "op": "traceImage", "image": "ref.png", "removeBg": false,
  "engine": "vtracer", "vtraceLevel": "pixel" }

可选覆盖:colorPrecision(4-8)、filterSpeckle(0-16)、layerDifference(1-64)、maxLayers(8-256,默认 48)、mode(spline|polygon|none)。

模型侧基础调用示例(上游 README):

diagram_apply({ op:"traceImage", image:"refs/角色.png", removeBg:false, x:40, y:40 })

removeBg 必填:true 抠底,false 保留整图。

安装与启用

本 fork README 给出的装进 DSH profile 方式如下(路径或打包 tgz 由你本地准备,不要凭仓库名拼接未在文档出现的 install 命令):

npm install
npm run build     # src/ → lib/
npm test          # 25 项自测
dsh plugin --profile desktop add <本仓库路径或 tgz>

装完后需要重启 DSH 主进程才生效(README 注明热重载最坏延迟约一小时)。

上游 npm 预构建包的装法(供对比,非本 fork 专属路径)在原文中为:

dsh plugin --profile web add dsh-drawai-vectorizer

然后重启 dsh web。本仓库 fork 文档强调 desktop profile 与本地路径 / tgz。

环境要求(package.json):Node >= 20,许可证 MIT。

典型用法

  1. 安装并重启 DSH 后,在右侧栏用「文件 → 新建画布…」或「打开…」绑定工作区里的 .drawio。
  2. 对话中让模型 diagram_read 看清 revision 与选区,再用 diagram_apply 增删节点、改样式或 traceImage 描摹工作区位图。
  3. 单图要高保真:在绘制面板或 traceImage 里选引擎 vtracer,档位默认 hifi,极保真可用 pixel。
  4. 导入视频后使用「绘制复刻」:全片长视频请保持 plugin;短片段或单帧预览再考虑 vtracer。

适用场景与注意

场景 建议
视频全片绘制复刻 用 plugin;README 实测 vtracer 体积可达数百倍(例:2209 帧约 80 亿字符量级)
单图 / 短视频片段 适合 vtracer
源分辨率 < 800px vtracer 位深优势有限,plugin 够用

插件在当前 DSH 进程权限下运行,安装前请自行查看源码与 MIT 许可证。DSH 社区插件目录(如 SkillHub)为独立生态站点,与 DeepSeek / 幻方无官方从属关系;「一切皆插件」是 DSH 的产品思路,本文介绍的是社区维护的客户端插件(目录页星标为 0,以页面为准)。

结尾

dsh-drawai-vectorizer 在 DrawAI 画布与 AI 改图能力之上,用可选的 vtracer 引擎补齐单图高质量矢量化;视频与低分辨率场景仍应优先默认 plugin。进一步了解请访问 插件目录页 与 GitHub 仓库,变更细节见仓库内 FORK-CHANGES.md。

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

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

小夜