FujiwaraReisen/dsh-live2dwaifu

FujiwaraReisen/dsh-live2dwaifu

在 DSH 网页右下角放一个 Live2D 角色:会眨眼、会呼吸、说话时嘴动、心情变了眉毛跟着动,用自己的对话气泡聊天,记得住之前说过的,能喂语料,也会配表情包。模型不用内置,谁装谁放自己的文件夹。

UI 增强

dsh-live2dwaifu

把一只 Live2D(Cubism 3 / 4) 角色请进 DSH 网页的右下角。她会眨眼、会呼吸、头发会被风吹,说话时嘴一张一合,眼珠跟着鼠标走,心情变了眉毛跟着动。

她还能跟你说话——不用经过聊天框,不用进聊天记录。有自己的记忆、自己的作息、自己的声音(那种“哔哔”的电子音),高兴了甩你一张贴图。

模型不是内置的:谁装谁放自己的。文件全留在这台机器上,一根网线都不往外走。

给她一个模型,她给你一个会呼吸的角落。

状态 · 说明 展开 · 一张竖卡片:上半身、气泡、底下一个输入框 收起 · 缩成一条,只剩名字和一个 ⌃

装

dsh plugin --profile desktop add dsh-live2dwaifu

重启 DSH。右下角出现一张小卡片 → 点 ⚙ → 「导入模型」→ 选装着 .model3.json 的那个文件夹 → 完事。

桌面端也可以在设置 → 插件里搜名字安装。

别手动解压到 `node_modules`。 DSH 只加载列在 profile package.json 的 dsh.profile.bundles 里的包。手动扔进去的名字不会自动登记,表现就是“装了但右下角什么都没有”,/dsh-live2d/api/models 也返回 404。真遇到了,把 dsh-live2dwaifu 补进 bundles 和 dependencies 再重启。

卡片

位置和大小

按住标题栏能拖到屏幕任何地方。 改大小:卡片左上角那个小斜纹,往左上拖变大、往右下拖变小——卡片本身钉在屏幕右下角,所以动的是它的左上角(宽 200–720,高 220–视口高−80)。 位置、大小、背景、开合状态都记在本机,下次打开还是这样。

拖到一半跑到屏幕外了?关掉重开一次就回到默认位置。

标题栏按钮

按钮 · 干什么 ⚙ · 抽屉:模型列表、自定义表情、全部开关 ◐ · 换背景:透明 / 深色 / 浅色 / 纸质 ♪ · 音色调色页(每只模型各存一份音色),在卡片里盖一层打开 ✎ · 人设卡编辑页,同样盖一层打开 ↻ · 重载 iframe(模型卡住时点这个) ⌄ / ⌃ · 收起 / 展开

放自己的模型

  1. ⚙ → 「导入模型」
  2. 选整个文件夹,里面要有 .model3.json、.moc3、贴图,最好带 .physics3.json
  3. 读完它自己认出模型并切过去

想放好几个也行:列表里「用这个」换人,「删」送走。

吃:Cubism 3 / 4(.model3.json + .moc3)。 不吃:Cubism 2 老格式(.model.json + .moc)。

模型自带的动作:有 .motion3.json 的,隔十几秒自己播一个;没有也能活——眨眼靠 EyeBlink 参数组,嘴动靠 ParamMouthOpenY,头发晃动是 physics3.json 的物理。

模型自带的表情:带 .exp3.json 的会在抽屉里列出来,点一下叠上去(Add / Multiply / Overwrite 照原样执行)。没带的话,内置七种:平静、开心、委屈、生气、害羞、无语、困。

导入卡住或只导入一半:模型大(贴图 4K)时浏览器要一张张传,慢是正常的,进度在抽屉底下显示。传一半断了就再来一次,同名文件会覆盖。

她是谁:人设卡

她说话像不像人,全看这一段字。别只写“一个可爱的女孩”——那样只会得到一段没味道的话。

人设卡存在 ~/.dsh/dsh-live2d/models//meta.json 的 persona 字段里,也可以点标题栏 ✎ 在网页里改,改完她一重载就按新的说。

值得写进去的:

  • 她是谁、几岁、做什么工作的
  • 说话什么调子:短句还是长句、用不用标点、爱不爱反问
  • 口头禅、习惯性的小动作、称呼你什么
  • 怕什么、喜欢什么、有什么毛病
  • 跟你是什么关系、你们在哪儿过日子
  • 这个时间点她通常在干嘛

写得越具体越像人,写一句“性格开朗”没什么用。写完可以自己念一遍,像不像一个人在发消息。

世界隔离(人设卡页底下一个开关):开着的时候,她不知道什么是程序、界面、插件、模型,问起来就当你在她身边;关掉她就老老实实承认自己是插件里的角色。默认开。

不写 persona 也行,会用默认那份(若妍)。

跟她说话

三条路

一、卡片底下的输入框:打一句、回车。这条线不进你的聊天记录,往来只存在她自己的 chat.json 里。

二、手机:手机连同一个地址,打开 /dsh-live2d/chat,全屏就她的脸加一个输入框,不用看整个 DSH。

端口每次启动可能不一样。在 DSH 设置里能看到当前地址,把它换成 /dsh-live2d/chat 就行。手机和电脑得在同一个局域网。

三、别的插件推(见下面「给别的插件用」)。

她记得住

记忆分两层:

  • 最近二十来句:原话,最近说了什么都在。
  • 关于你的事实:名字、作息、口味、忌讳、答应过的事——从对话里攒出来的,长期挂着。聊天时只挑跟你这句话对得上的几条带上,不会一股脑塞进提示词。

攒满三十句,前面二十句会压成小结,不丢。嫌费 token,就在 ⚙ 里把「记住之前说的」关掉。

她说的话会过一道筛子

模型写出来的东西先过一遍:套话会被删掉——“好的”“我理解你的感受”“希望帮到你”“还有什么需要我帮忙的吗”这些,出来就没有。最多留两三句,也允许她只回两个字。

提示词里还会明确禁止:不总结、不分点、不讲道理、不解释心情、你没问就不给建议。

另外给了几组说话样例(“他:今天吃啥 —— 你:锅里还有,热的。”这种),让她照着那个密度和信息量说,不是照着内容抄。长度硬卡在四十字上下,超了会被截。

还是觉得哪句像 AI?记下来告诉作者,往规则里加。

她偶尔给你选项

话说到需要你挑的地方,她会在气泡上方冒出两三个按钮,点一个就等于你回了她。

她不给就没有——要不要给是她自己决定的,不是每次都有。通用短答试过,效果不好,撤掉了。

她知道现在几点,也知道自己该在干嘛

提示词里会让她按人设推断这个时间点的处境——早上在实验室、半夜还没睡——话里自然带着那个味道。不用你提醒,也不用写死时间表。

她偶尔自己开口

十几分钟没人理她,她就找个话头说一句,通过卡片的气泡冒出来。嫌吵:⚙ 里关掉「没人理就自己开口」。

开了却从不出现?她只在页面开着的时候说,而且说出来到显示有几秒延迟(卡片每 2.5 秒拉一次)——等一会。

喂她语料

人设卡告诉她「是谁」,语料告诉她「怎么说话」。⚙ 抽屉里的 语料 按钮打开一个页面,有模型选择、大文本框、文件按钮和拖拽区。

四种喂法,怎么方便怎么来:

  1. 直接粘贴——打字、贴聊天记录、贴剧本都行
  2. 点「选文件」,.txt / .json / .jsonl / .csv,可以多选
  3. 把文件拖到那个虚框里
  4. 一行一句地贴她的台词,什么都不用标

认得的写法:

他:今天吃啥           ← 认得出谁说的
你:锅里还有,热的。

「嗯。我也是。」        ← 只认她是说话人

- 先坐下。水在桌上。    ← 一行一句台词

[{"user":"累吗","assistant":"还行。"}]   ← JSON 也行

说话人写 他 / 我 / 用户 算你,你 / 她 / 助手 算她;认不出来的一律当她说的——只贴台词最省事。

页面右边会实时显示解析出来的条数,和前面十几条预览。贴错了能看见,改完再存。

存法有两种:「加进去」是并到原来的里面,「替换成这些」是把之前清掉。第一次喂就用加。

以后她说话会从语料里挑几条贴进去当样例——优先挑跟你这句话沾边的问答,另外随机抽几句她的台词找语感。所以语料越多、越像她本人,她说得就越像。

存的位置:~/.dsh/dsh-live2d/models//corpus.json。

声音

她说话时一个字一声很短的电音,标点停一拍,句尾沉一下。不是朗读,是“哔哔”那种。

调色:标题栏 ♪ 打开调音页,左边是这只模型真身,右边四个预设(柔和 / 清脆 / 机械 / 游戏)加五个滑块(基频、抖动、长度、音量、语速)。边调边听,满意了点「存到这只模型」。每只模型各存一份,换人换声。

安静:⚙ 里关掉「出声」,或把音色调到音量 0。关掉之后只剩气泡和口型。

第一次没有声音?浏览器要求用户先点一下页面才允许出声。点她一下,或者点一下调音页的按钮,再试。

表情包(测试功能)

她说话时可能甩一张贴图,贴在气泡里。

⚙ 里有一根四档滑轴:

档位 · 意思 不使用 · 不说话配图 只使用自带 · 只用插件自带的那套 均开启 · 自带和 dsh-meme 混着来 只用 dsh-meme · 只借你本机已装的 dsh-meme 图库

自带那套是作者 OC 的 Q 版贴纸(效果不是很好其实)。

怎么挑图:她点名叫哪张就用哪张(提示词里给了名字清单);没点名的话,按她这句话的情绪随机抽一张,大约三成概率。

给 dsh-meme 用:自带那二十张是标准图库格式,导一次就能丢给它。

python tools/export-dsh-meme.py

产物在 dsh-live2d/dsh-meme-pack/xialing-001/,整个目录丢进 ~/.dsh/profiles/desktop/node_modules/dsh-meme/memes/ 下面就认。