picturereader:给纯文本 DSH 模型补上本地看图能力

前言

在 DeepSeek Harness(DSH)里用纯文本模型处理图片,常见做法是手动 OCR 或切到多模态模型。前者步骤多、证据零散;后者依赖外部视觉 API,成本和隐私边界也不好控。

picturereader 是维护者 jing-hy 发布的 DSH 插件(GitHub 约 33 stars,分类为模型推理)。它把「看图 / 读文档 / 修图」转成纯文本模型能消费的结构化证据:本地像素扫描、OCR、可选外部 VLM,以及视觉孪生 adapter 让文本模型在 DSH 里也能显示原生缩略图。当前版本为 v3.2.0,MIT 许可证。

这是什么

一句话定位:面向纯文本模型的像素级读图插件,默认纯本地运行,可选 PaddleOCR 与外部视觉 API。

它主要解决三件事:

  1. 把图片内容翻译成结构化文本证据(像素分析 + OCR + 可选 VLM 语义),并附带 image-reading 读图方法论 skill。
  2. 通过视觉孪生 adapter,为勾选的文本模型生成「(视觉)」变体,解锁 DSH 原生缩略图与图片块粘贴,同时把 image block 拦截为文本路径,避免 UNSUPPORTED_CONTENT
  3. 提供本地修图工具 image_edit(v3.2.0),纯 CPU 完成缩放、水印、合成等操作,图片不出本机。

版本兼容性(来自 README):专门适配 dsh 0.1.1-rc.2、dsheac 5.1.0;同时兼容 DeepSeek Harness EAC 4.2.0 与 @deepseek-ai/dsh-client-ui-workspace rc.7。

核心功能

视觉孪生 adapter

对被勾选模型所属 provider 做 Proxy 原位包装:在 listModels / resolveModel 中声明 inputModalities: ['text','image'],名称加「(视觉)」后缀。DSH 因此认为模型支持图片,原生缩略图、图片块进会话、粘贴准入一并解锁。

stream 拦截会捕获请求里的 image block,导出到 ~/.dsh/picturereader-vision/images/,再替换成文本路径与本地工具引导后转发给原始 adapter。下游收到的是纯文本,不会触发 UNSUPPORTED_CONTENT。v3.1.0 起还拦截内置 read_image 工具返回的 image block,同样降级为文本引导。

三模式路由

路由逻辑集中在 routing.jsruntime.js,供各工具、视觉孪生 streamvision_analyze 共用:

模式 默认像素扫描 默认 OCR 默认外部 VLM 特点
隐私(privacy) 否(硬禁) 图片字节不出本机,即使配置了 API 也不外呼
智能(smart,默认) 按需 值得才调 先本地看图,文字走 OCR,复杂内容才外呼 VLM
严谨(strict) 多路证据交叉验证,可靠性优先

本地工具链

工具 作用
image_scan 颜色网格、色块区域、纹理与结构分析;支持 focus / region 定向放大
image_ocr 三引擎:windows(内置)、paddle(选装)、rapid(选装);失败自动降级
image_sample N×N 像素取样,判断材质与纹理
image_crop 按区域裁剪并导出 PNG
image_palette 主色提取(hex、名称、占比)与色相家族
image_compare 两图或两区域像素对比,可选差异可视化
image_batch 批量扫描、类型判定与是否值得深入的建议
vision_analyze 统一入口:按模式组合像素扫描、OCR、可选 VLM
document_to_image 将 pdf / docx / doc / xlsx / xls / pptx / ppt 逐页转 PNG(需 LibreOffice + PyMuPDF)
image_edit 本地修图:22 种纯 CPU 动作(Pillow + OpenCV,可选 rembg / rawpy / realesrgan)

外部 VLM 桥(可选)

配置 OpenAI 兼容端点(LM Studio、llama-server、云端网关等)后,模型在智能 / 严谨模式下可自行决定是否调用 vision_analyze(include_vlm=true)。隐私模式下 host 侧强制禁用,图片绝不外发。外部 API 是增强能力,不是必须依赖。

设置卡片

Web 设置页注册「图片阅读」卡片:使用模式、外部视觉 API、视觉桥模型多选、OCR 引擎与高级参数。改动写入 ~/.dsh/settings.yaml 即时生效;视觉桥模型勾选变更需重启 DSH。

安装与启用

下面命令来自插件 README 的快速上手章节。SkillHub 社区目录(https://www.skillhub.cn/plugins/jing-hy/picturereader)收录了该插件,安装方式与 README 一致。

1、安装插件:

dsh plugin --profile web add picturereader
dsh plugin --profile headless add picturereader

从源码安装时,在插件目录执行 dsh plugin --profile web add .

2、(推荐)复制读图方法论 skill 到 DSH skills 目录:

cp skills/image-reading.md ~/.dsh/skills/

3、按需安装可选依赖:

node scripts/setup-ocr.mjs       # PaddleOCR
node scripts/setup-rapid.mjs       # RapidOCR
node scripts/setup-doc-venv.mjs  # 文档转图片(需已装 LibreOffice)
node scripts/setup-image-venv.mjs          # image_edit 核心依赖
node scripts/setup-image-venv.mjs --full   # 再加 rembg、rawpy

重启 DSH Desktop 后,模型工具列表出现全部工具,设置页出现「图片阅读」卡片。

启用视觉孪生:

  1. 在设置页「图片阅读」勾选目标文本模型,保存后重启 DSH。
  2. 模型选择器中选择对应模型的「(视觉)」变体。
  3. 粘贴或拖入图片,即可看到原生缩略图,图片块自动分析为文本证据。

典型用法

读一张本地图片:

用 image_scan 看一下 <路径> 这张图,细看感兴趣的部分

复杂场景可接着用 vision_analyze;以文字为主时先 image_ocr;多图用 image_batch;Office / PDF 文档先用 document_to_image 逐页转图再分析。

image_edit 修图示例:

用 image_edit 把 <路径> 缩放到宽 800:action=resize, file_path=<路径>, width=800, height=600
给 <路径> 加左下角文字水印:action=watermark, file_path=<路径>, type=text, text="©2026", position=bottom_left, font_size=40
把 <IMG1>、<IMG2> 水平拼接:action=stitch, file_path=<IMG1>, file_paths=[<IMG2>], direction=horizontal

若会话处于 DSH code 工具模式,需通过 run_code 间接调用(如 await tools.image_scan({"file_path": "..."})),或把部署的 tools.mode 设为 both

适用场景与注意

适合在 DSH 中继续使用纯文本模型、又需要读图、读文档或本地修图的场景。隐私模式下可处理敏感截图、合同扫描件,全程不走外部 API。

使用前注意:

  • 插件以当前 dsh 进程权限运行,安装前应自行检查源码与 MIT 许可证。
  • 原生缩略图需启用视觉孪生并选择「(视觉)」变体;未勾选时文本模型不被 DSH 视为支持图片。
  • image_scan / vision_analyze 暂不支持 WebP,可先经 image_editconvert 转成 PNG / JPEG。
  • remove_backgroundraw_convertupscale 等动作需 --full 安装或额外 CLI;缺失时返回安装提示,不会崩溃。
  • DSH attachment 单图默认约 5MB,超大图片可能被宿主上传限制拦截。

按计划,该插件后续将作为 DeepSeek Harness EAC 的内置视觉插件,替换 dsh-tool-vision;当前仍以独立包形式发布,方便非 EAC 或旧版用户安装。


picturereader 把纯文本模型的读图链路收敛到一套本地工具 + 可选 VLM 桥 + 视觉孪生 adapter,在 DSH「一切皆插件」的生态里补上了模型推理侧的看图能力。

  • 社区目录:https://www.skillhub.cn/plugins/jing-hy/picturereader
  • GitHub:https://github.com/jing-hy/picturereader
羽毛球分组比赛记分
小程序二维码

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

小夜