dsh-live2dwaifu:在 DSH 网页右下角挂一只会呼吸的 Live2D 角色

前言

DeepSeek Harness(DSH)的主界面以对话和工具链为主,长时间开着往往是一块静态网页。若希望在同一进程里加一个不占聊天区的「角落角色」——会眨眼、会呼吸、说话时嘴动、眼珠跟鼠标——通常要自己嵌 iframe 或写前端补丁。dsh-live2dwaifu 以插件形式把 Live2D(Cubism 3 / 4)接到 DSH 桌面 profile 的网页层:模型文件留在本机,不内置角色资源;装插件的人自己导入含 .model3.json 的文件夹即可。

下面介绍插件定位、能力与安装用法。事实以 GitHub 仓库 README 为准;社区目录页见 SkillHub。目录站与 DeepSeek / 幻方无官方从属关系,属于 DSH「一切皆插件」生态里的第三方条目。

这是什么

维护者 FujiwaraReisen,分类为趣味换装。当前 package 版本 2.3.0,许可证 MIT。

插件在 DSH 网页右下角浮一张可拖、可缩的竖卡片:展开时显示 Live2D 上半身、气泡和输入框;收起时只剩名字与展开按钮。角色支持眨眼(EyeBlink 参数组)、呼吸与物理头发(.physics3.json)、视线跟随鼠标、点击部位反应、说话时 ParamMouthOpenY 驱动口型;带 .motion3.json 时可间隔自动播动作,带 .exp3.json 的可叠表情,否则可用内置七种表情。

模型不是内置的:数据落在 ~/.dsh/dsh-live2d/,README 写明文件不往外网传。除展示外,卡片内还有独立对话线(不进 DSH 主聊天记录)、人设卡、语料、电子音、可选贴图与 HTTP / postMessage 接口,供其它插件或 IM 推送复用。

核心功能

Live2D 与卡片交互

  • 格式:Cubism 3 / 4(.model3.json + .moc3 + 贴图);不支持 Cubism 2(.model.json + .moc)。
  • 卡片:按住标题栏拖动位置;左上角斜纹拖拽改大小(宽约 200–720,高约 220 至视口高减 80);背景可在透明 / 深色 / 浅色 / 纸质间切换;位置、大小、开合等记在本机 localStorage。
  • 标题栏:⚙ 模型与开关抽屉;♪ 每只模型单独存音色;✎ 编辑人设;↻ 重载 iframe;⌄ / ⌃ 收起展开。

对话与记忆

  1. 卡片底输入框:回车发送,往来存在该模型目录下的 chat.json,与 DSH 主聊天隔离。
  2. 手机页:同局域网访问 http://<DSH 设置里显示的地址>/dsh-live2d/chat(端口随启动变化)。
  3. 外部推送:POST /dsh-live2d/api/push 或向 iframe 发 dsh-live2d/say 等 postMessage。

记忆分「最近二十来句原文」与「从对话提炼的长期事实」;约三十句后会压缩小结。回复经规则过滤套话、限制长度(约四十字),并可按人设推断当前时段处境。闲置时可定时主动说一句(本机与服务端各有间隔配置);⚙ 可关「没人理就自己开口」。

人设、语料与声音

人设写在 ~/.dsh/dsh-live2d/models/<id>/meta.json 的 persona,或通过 ✎ 在页内编辑;「世界隔离」默认开,角色不自称插件。语料存 corpus.json,支持粘贴、.txt / .json / .jsonl / .csv 或拖拽,多种「他:/ 你:」行格式;说话时会抽样例进提示词。

说话时为逐字短电音,♪ 可调预设与滑块;⚙ 可关「出声」。浏览器需用户先点击页面才允许播放音频。

与其它插件协作

同源页面可通过 iframe.dsh-l2d-body 的 postMessage 驱动说话、换 mood、打开管理抽屉。HTTP 提供模型列表、导入、选人、人设、设置、聊天、轮询等路径(README 列有 /dsh-live2d/api/models、/chat、/poll 等)。表情包为测试功能,四档滑轴可对接自带图或本机已装的 dsh-meme。

安装与启用

官方安装命令如下(desktop profile):

dsh plugin --profile desktop add dsh-live2dwaifu

重启 DSH 后,右下角应出现小卡片。也可在桌面端 设置 → 插件 中按名称搜索安装。

不要手动解压到 node_modules。DSH 只加载 profile package.json 里 dsh.profile.bundles 登记的包;手动拷贝会导致「装了但右下角没有」、/dsh-live2d/api/models 404。若已遇到,需把 dsh-live2dwaifu 补进 bundles 与 dependencies 后重启。

首次使用:点 ⚙ →「导入模型」→ 选择整个含 .model3.json 的文件夹(不要只选 json 上一层错目录)。

典型用法

导入并切换模型

  1. ⚙ →「导入模型」
  2. 选中含 .model3.json、.moc3、贴图的文件夹(建议含 .physics3.json)
  3. 列表里「用这个」切换,「删」移除

大模型(如 4K 贴图)导入慢属正常,进度在抽屉底部;中断可重导,同名覆盖。

卡片内私聊

在卡片输入框输入后回车即可。需 DSH 自身模型接口可用;若提示「模型接口不可用」,先在 DSH 设置里选可用模型。

让其它脚本让她说话

const frame = document.querySelector('iframe.dsh-l2d-body');
frame.contentWindow.postMessage({
  type: 'dsh-live2d/say',
  text: '窗台那盆番茄红了。',
  mood: '开心',
}, '*');

HTTP 推送示例(端口替换为当前 DSH 端口):

curl -X POST http://127.0.0.1:<端口>/dsh-live2d/api/push \
  -H 'content-type: application/json' \
  -d '{"text":"锅里有汤。","mood":"平静","from":"im"}'

数据位置与重置

~/.dsh/dsh-live2d/
  config.json
  models/<id>/
    meta.json
    chat.json
    …模型文件…

清空对她的记忆:删对应 chat.json。彻底重来:删整个 ~/.dsh/dsh-live2d/ 并重新导入模型。

适用场景与注意

适合:希望在 DSH 桌面网页长期开一个 Live2D 看板娘/助手角标;需要与主聊天隔离的轻量角色对话;希望用 HTTP 或 postMessage 把 IM、自动化脚本接到可见角色上。

注意:

  • 插件随当前 DSH 进程运行,具备该进程权限;安装前请阅读源码与 MIT 许可证,确认信任维护者 FujiwaraReisen。
  • 仅 Cubism 3 / 4;竖卡片可能裁切过宽或过扁的模型画布,可拖斜纹改卡片比例。
  • 主动说话、轮询展示有几秒延迟(卡片约 2.5 秒拉一次 /dsh-live2d/api/poll);0–7 点不会主动开口。
  • 表情包、自带 OC 贴纸 README 标明为测试/效果一般,可按需在 ⚙ 关断。

常见问题(无卡片、bundles 未登记、半脸、不眨眼、手机连不上等)见仓库 README「常见问题」一节。

结尾

dsh-live2dwaifu 把 Live2D 展示、私聊记忆、人设语料和对外 API 收进一个右下角浮层,模型自备、数据在本机。若你要在 DSH 里加一个会呼吸的角落而不是改主聊天 UI,可按上文命令安装并导入 .model3.json 目录。

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

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

Xiaoye