前言¶
在 DeepSeek Harness(DSH)里做示意图、流程图或把位图变成可编辑矢量,常见做法是让模型手写一段近似 SVG,或在画布外另开工具链。dsh-drawai-vectorizer 把可编辑画布放进右侧栏,人和模型读写同一份原生 .drawio;本仓库是 fourzkw/dsh-drawai 的增强 fork(v0.4.0,基于上游 0.3.2),在保留上游能力的前提下新增 vtracer 矢量化路线,适合单图高保真描摹,视频全片仍建议用上游自研的 plugin 引擎。
这是什么¶
- 插件名称:
dsh-drawai-vectorizer(npm 包名同) - 维护者:sjdhdbbf(社区 fork;上游作者为 fourzkw,MIT 许可保留)
- 分类:客户端
- 目录页:skillhub.cn 插件页
- 源码:github.com/sjdhdbbf/dsh-drawai-vectorizer
一句话:DSH 右侧栏 DrawAI 画布 + diagram_read / diagram_apply 改图工具,位图与视频「绘制复刻」可选 plugin(默认,快、体积小) 或 vtracer(贝塞尔样条、每通道位深、原生分辨率)。
核心功能¶
画布与 AI 改图(上游能力)¶
- 右侧栏可编辑画布 — 打开 / 新建工作区
*.drawio:节点、连线、分层、对齐、导出;双击改标签。 - 自然语言改图 — 模型通过
diagram_read读结构与选区、diagram_apply按 ops 改图并原子写回。 - 选区感知与回退 — 画布选中会进入模型上下文;AI 改动最多可退 8 步。
- SVG 图形节点 — 图标 / logo 可作为节点内容。
- 位图矢量化
traceImage— 按工作区图片像素管线描成 SVG 节点(非手写近似)。 - 视频复刻 — 抽帧绘制成 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。
典型用法¶
- 安装并重启 DSH 后,在右侧栏用「文件 → 新建画布…」或「打开…」绑定工作区里的
.drawio。 - 对话中让模型
diagram_read看清 revision 与选区,再用diagram_apply增删节点、改样式或traceImage描摹工作区位图。 - 单图要高保真:在绘制面板或
traceImage里选引擎vtracer,档位默认hifi,极保真可用pixel。 - 导入视频后使用「绘制复刻」:全片长视频请保持
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。