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,參數與進度對智能體友好。若要查看說明與源碼:

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

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

小夜