dsh-paint:在 DSH 里把位图本地矢量化成 SVG 与 PNG

前言

在 DeepSeek Harness(DSH)里让智能体处理图片时,常见需求是拿到可缩放、可二次编辑的产物,而不是再生成一张新图。扩散模型画图要算力、要联网,也未必忠实于原图像素。位图矢量化走的是另一条路:在本地把色块边界描成曲线,再渲染出矢量文件,放大不糊,且不需要训练。

下面介绍社区插件 dsh-paint(维护者 kongbaiwin,当前版本 0.1.1,MIT)。它把「重画成矢量」封装成 DSH 可调用的工具:纯 CPU、离线、不训练,输出 SVG 与 PNG。社区目录归类为「趣味换装」,与 SkillHub 上的条目一致。

这是什么

dsh-paint 是 DSH 插件,核心一句话:让 AI 把一张图片在本地重画成矢量画——色块描摹用打包的 vtracer(Rust,MIT),路径解析与 PNG 超采样渲染在插件自带的 lib/paint.py 中完成。装好以后,对智能体说「把这张图重画成矢量」,或直接调用工具 draw_vectorize,即可在画库目录得到带时间戳的文件(例如 画-1106-205032.png)以及对应 SVG。

它不是「AI 生成新图」,而是图像矢量化:不凭空补画未出现的内容,尽量按原图重建色块边界。

核心功能与流程

README 用表格归纳了分工,便于对照预期:

步骤 谁来做
把像素区域描成矢量路径 vtracer(已随插件放在 vendor/,无需 pip)
解析路径、渲染 PNG、超采样抗锯齿 插件 lib/paint.py
挑参数、做质量评分 使用者(或让 AI 协助调参)

对外暴露的工具名为 draw_vectorize。常用参数如下(与 README 一致):

参数 说明
src 输入图片路径(必填)
size 输出长边像素,常用 1024 / 2048 / 4096 / 8192
trace 描摹分辨率,默认等于 size;调低会明显变糊
crop 居中裁成正方形;默认保留原始比例
out / svg 自定义输出路径

插件同时提供外壳能力:悬浮窗、进度显示、画库与历史。内部按模块接入(paint 提供矢量化;lamp 可盯任意 progress.json)。在 设置 → 绘画 → 模块 里可开关;不画画时可关 paint,仅保留盯进度等能力。

进度文件默认位于(供外部进度面板对接,格式与 dsh-lamp 兼容):

<DSH_HOME>/dsh-paint/paint-progress.json
<DSH_HOME>/dsh-paint/paint-control.json

安装与启用

资料中没有 dsh plugin add github:owner/repo 一类一键命令;官方写法是本地链接进 DSH。

方式一:在 DSH 里装

  1. 打开 设置 → 插件 → 安装本地插件
  2. 选择本仓库所在目录

方式二:改 profile

在 profiles/<你的 profile>/package.json 的 dependencies 中增加本地链接,并确保条目出现在同文件的 dsh.profile.bundles 数组中:

{
  "dependencies": {
    "dsh-paint": "link:<这个仓库的本地路径>"
  }
}

依赖说明(来自 README):

  • DSH 自带 Python 运行时,需具备 numpy 与 Pillow
  • vtracer 已打包在 vendor/,不需要单独 pip 安装

安装前建议自行浏览仓库源码与 LICENSE;插件在当前 DSH 进程权限下运行,能访问的路径与本地 Python 能力均受该环境影响。

典型用法

装好后,用自然语言即可触发,例如:

把 D:\图片\xxx.png 重画成矢量,要 4K

显式调用工具时,参数示例:

{
  "src": "D:\\图片\\xxx.png",
  "size": 4096
}

默认产物落在设置中的画库目录;也可用 out、svg 指定路径。

硬件与质量预期

不需要显卡,全程 CPU。README 在 i7 + 32 GB 机器上给出参考耗时(形状数、内存为估算,实际可能略高):

档位 输出尺寸 形状数 耗时 最低内存(建议)
1K 1024 × 576 2,623 1.1 s 4 GB
2K 2048 × 1152 6,844 4.8 s 4 GB
4K(推荐) 4096 × 2303 44,636 18.6 s 8 GB
8K 8192 × 4606 102,224 78 s 16 GB

日常可优先 4K;8K 形状数接近平方级增长,SVG 体积也会变大(4K 档 SVG 约 17.6 MB,见 README 表)。

已知限制(使用前心里有数):

  • trace 低于输出 size 时会明显发糊
  • 平涂色阶是矢量本质,柔和渐变会被切成色块(插件侧用 precision 8、layer-diff 2 等方式缓解,见 README)
  • 复杂插画形状数可达数万,SVG 较大

关于图片权利:工具只做格式转换;公开发布前请确认你对源图有使用权(README 声明)。

适用场景与注意

更适合:需要忠实于原图的矢量/SVG、放大不糊的 PNG、在对话里一条指令完成本地转换 的 DSH 用户;智能体开发者想把「矢量化」固定成可复现工具而非每次写脚本。

不太适合:指望模型「创作」新画面、或要求照片级柔和渐变完全保留的场景。

DSH 生态强调「一切皆插件」;SkillHub 插件目录 是社区站点,与 DeepSeek / 幻方无官方从属关系。本插件在 GitHub 上目前约 2 stars,归类 趣味换装,适合作为本地图像管线的一环试用与扩展(新能力可按 README 中的模块接口 { id, label, desc, enabled, progressFile, controlFile, tools } 接入)。

结尾

dsh-paint 把 vtracer 描摹与自写渲染器收进 DSH:离线、CPU、输出 SVG + PNG,参数与进度对智能体友好。若要查看说明与源码:

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

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

小夜