Skip to content

Releases: sjdhdbbf/dsh-drawai-vectorizer

v0.4.0 — vtracer 高质量矢量化引擎

Choose a tag to compare

@sjdhdbbf sjdhdbbf released this 20 Oct 07:26

v0.4.0 — 新增 vtracer 高质量矢量化引擎

基于上游 dsh-drawai 0.3.2 的增强 fork,保留上游全部功能。

新增

vtracer 引擎(src/vtrace.js,基于 @neplex/vectorizer)

上游的矢量化走「调色板量化 + k-means → 连通域 → marching squares → Douglas-Peucker 折线」,
没有曲线拟合,工作分辨率上限 499px(图片 887px)。本版新增一条路线:
分层颜色聚类 + 三次贝塞尔样条 + 每通道位深控制,在原生分辨率上工作。

实测对比(同一 1920×1080 帧,渲染到 1920):

引擎 / 档位 SVG 体积 绘制步骤 耗时 PSNR
plugin(上游) 18 KB 584 2.5s ~26 dB
vtracer fast 1.6 MB 4,060 1.4s ~18 dB
vtracer hifi(默认) 9.9 MB 35,069 2.8s ~38 dB
vtracer pixel 15.9 MB 173,479 3.7s ~46 dB

关键发现:colorPrecision 6→8 是画质主因(实测 18 → 34.6 dB)。

双引擎 UI

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

  • plugin(默认)— 上游自研描边,快、体积小,适合视频全片
  • vtracer — 高质量,适合单图;三档保真 fast / hifi / pixel

并行度:一半核心

原策略 min(4, 逻辑核-1)(16 核机器只用 4)。改为 floor(逻辑核/2)
(16 核 → 8),叠加内存收敛(每 worker 512MB 预算,上限 32)。

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)。

绘制过程展示与原版一致

vtracer 后端完整对齐上游 drawing 契约({viewBox, fills, steps[]},steps 按面积降序),
客户端渐进绘制回放一行未改 —— 观感仍是「大色块 → 细节 + 进度条 + 自动回放」。

⚠️ 什么时候不要用 vtracer

场景 建议
视频全片 用 plugin。vtracer 体积是数百倍(实测 2209 帧约 80 亿字符)
单图 / 短视频片段 ✅ 推荐
源分辨率 < 800px vtracer 位深优势发挥不出来,plugin 够用

安装

方式一:npm 包(推荐)

npm install dsh-drawai-vectorizer

方式二:离线包(含全部依赖,适合无网/内网)

下载 dsh-drawai-vectorizer-0.4.0-offline.zip,解压到 profile 的 node_modules/dsh-drawai-vectorizer:

Expand-Archive dsh-drawai-vectorizer-0.4.0-offline.zip `
  -DestinationPath <profile>\node_modules\dsh-drawai-vectorizer -Force

离线包已含 @neplex/vectorizer + @resvg/resvg-js 的 win32-x64 原生二进制。
其他平台请用 npm 安装以获取对应平台版本。

装进 DSH

dsh plugin --profile desktop add dsh-drawai-vectorizer

⚠️ 装完需要重启 DSH 主进程才生效(实测热重载最坏延迟约 1 小时)。


完整变更日志

见 FORK-CHANGES.md。

上游

基于 fourzkw/dsh-drawai v0.3.2(MIT)。
上游版权与许可完整保留。

校验和

dsh-drawai-vectorizer-0.4.0.tgz
  D8CE4AF77DCD4E41B08DE0E954AA88477F3F323AC97F6BE337DB8794BDCE4E16
dsh-drawai-vectorizer-0.4.0-offline.zip
  6C6647CA4FB9FCB7B60A63A9BF4140A90A12A46EE0E4EEA033544FD8A4ABFC5A