dsh-see-now - 让 AI 只接收「画面变了」的那几帧的实时视觉插件
dsh-see-now 是给 DSH 用的实时视觉插件:把屏幕、摄像头或视频文件变成按变化量筛选过的画面,几帧拼成一张图交给模型。项目自述静止屏幕几乎不出图,硬切幻灯片每切一次留一帧。Apache-2.0 许可,最新 release v0.0.10。
dsh-see-now 是一个面向 DSH 的实时视觉插件,由 SAOS-3624 维护。它要解决的问题很具体:如果想让模型「陪你看屏幕」,最直觉的做法是定时截全屏喂过去,但截得太密会产生大量重复画面、消耗大量 token,截得太疏又会把中间发生的事全丢掉。据项目说明,dsh-see-now 的思路是先给每一帧打一个 0–255 的「变化分」,只保留「画面突然换了一张」或「一直在动、攒够了量」的帧,再把留下的几帧拼进同一张图,把一张图的固定成本摊到多帧上。它适合希望让模型持续感知屏幕内容、又不想为此付出成倍图像成本的 DSH 用户,也适合把采集与拼图流水线当作普通 Node 库复用的开发者。
维护者与状态
仓库由 SAOS-3624 维护,创建于 2026-11-01,最后提交时间为 2026-11-03。最新 release 为 v0.0.10,发布于 2026-11-03。截至 2026-11-04,仓库星标数为 265。项目采用 Apache-2.0 许可证。
从时间线看,这是一个非常年轻的项目:创建到最新 release 只隔两天,版本号仍处于 0.0.x 阶段。读者在评估时应当把这一点纳入考虑——接口与行为仍可能快速变化。
主要能力
以下能力均据项目自述(README)整理,未经独立验证。
- 按变化量筛选帧:每帧先在 64×36 网格上计算 HSV 三通道加权差,得到一个 0–255 的变化分;只有满足「切点」判据(分数跳得又高又孤立)或「积分」判据(分数不高但持续累积到阈值)的帧才会被保留。
- 多帧拼一张图:留下的几帧被拼进同一张图,项目自述一张图里放 4 帧还是 8 帧成本相同,因此「多留一帧几乎免费,漏掉一帧才贵」。
- 多种采集源:支持屏幕、摄像头,以及回放视频文件。
- 三档节奏:
calm/normal(默认)/dense,分别对应不同的换画面门槛与最长唤醒间隔,用于在灵敏度与成本之间取舍。 - 逐场景模式:
scene:true时每换一次画面单独输出一张满幅图,适合「每翻一页说一句」的用法。 - 区域采集:可只盯屏幕上一块区域,项目说明支持通过交互方式框选,坐标持久化保存。
- 语音输出通道:核心不内置 TTS 引擎,只动态加载用户指定的适配器模块;
say是唯一会进悬浮窗并被念出来的通道。 - 可选的「听声音」:项目自述可抓取系统回环音频并转写为台词,与画面帧共用时间码,便于模型把一句话对到某一格画面上。
- 独立 Node 库用法:包本身不依赖 DSH,
capture/pipeline/png均为独立导出。
使用入口
仓库地址:SAOS-3624/dsh-see-now。
据项目说明,在 DSH 中安装可通过 DSH 自带的插件命令完成:
dsh plugin --profile web add dsh-see-now
桌面版需换成 --profile desktop,且该 profile 需先启动过一次桌面端才会初始化。项目说明强调安装后需重启 DSH 生效,但不必新开会话。卸载与升级分别使用 remove 与 update 子命令。
从源码安装时,项目给出的流程是克隆仓库后运行 node scripts/install-dev.mjs,该脚本执行的是复制而非软链,装完同样需要重启 DSH。
作为普通 Node 库使用时,项目示例从 dsh-see-now/capture 导入 spawnFrames、从 dsh-see-now/pipeline 导入 createPipeline,把采集到的帧推入流水线,再周期性取出拼好的 PNG。
模型侧通过 see_now 工具调用,常用参数包括 action(watch / peek / start / stop / status / window / region)、quality、pace、scene、seconds、minFrames 等。
许可与限制
许可证为 Apache-2.0。项目自述允许个人、公司内部、闭源产品、SaaS 与二次分发使用,条件是保留 LICENSE 与 NOTICE 文件;提交 PR 不需要签 CLA。
项目自述中明确写出的限制包括:
- 平台差异:Windows 使用
ddagrab,不可用时回退gdigrab;macOS 使用avfoundation,需要在系统设置中为运行 DSH 的应用勾选屏幕录制权限;Linux 的屏幕采集尚未接入。 - ffmpeg 依赖:不必加入 PATH,插件会按若干约定路径自行查找,也可通过环境变量指定。
- 「听声音」仅限 Windows:macOS 抓系统声音需要虚拟声卡,项目说明这一版未实现;此外它抓的是整个系统的输出,提示音、BGM、游戏音效都会进入转写,且转写为机器识别,可能存在同音字错误。
- 区域采集的边界:抓的是屏幕上正在显示的像素,被遮挡时看到的是遮挡窗口;抓不到后台或最小化窗口;只支持主屏。
- 成本口径:项目自述 800×450 一张图约 233 token,并说明源码中旧注释的 218 是早期估算、偏低。
需要说明的是,上述性能与成本数字均来自项目自述,本文未做独立复现;项目也未在素材中给出与其他方案的对比数据。