dsh-live2dwaifu 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -0
- package/assets/corpus.html +35 -11
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -376,6 +376,60 @@ curl -X POST http://127.0.0.1:<端口>/dsh-live2d/api/push \
|
|
|
376
376
|
|
|
377
377
|
---
|
|
378
378
|
|
|
379
|
+
## 更新日志
|
|
380
|
+
|
|
381
|
+
版本号怎么走:动了功能和结构就抬第二位(1.2.0),只补洞和小修就抬第三位(1.2.1)。
|
|
382
|
+
|
|
383
|
+
### 1.2.0
|
|
384
|
+
|
|
385
|
+
- 语料吃的文件多了:`.md`、`.csv`、`.srt`、`.vtt`、`.ass`。字幕会自动去掉序号、时间轴和样式标签。
|
|
386
|
+
- 拖进图片或视频会告诉你怎么办,不再默默没反应:图片留着当形象参考,视频请先导出字幕,或者把台词复制进来。
|
|
387
|
+
- 语料页的文案改成不预设角色,原来的「他/你」换成「对方/角色」。
|
|
388
|
+
|
|
389
|
+
### 1.1.0
|
|
390
|
+
|
|
391
|
+
- 加了语料功能:粘贴、选文件、拖拽三种喂法。解析结果实时预览,能看见条数和前十几条。
|
|
392
|
+
- 存的语料会挑几条贴进提示词,优先挑跟当前这句话沾边的问答。
|
|
393
|
+
|
|
394
|
+
### 1.0.6
|
|
395
|
+
|
|
396
|
+
- 音色和人设卡改成在卡片里盖一层打开。原来点按钮开新窗口,桌面端会拦掉,看起来像没反应。
|
|
397
|
+
- 对话加了说话样例,删掉一句会让她自说自话的提示(“想想你此刻在做什么”)。
|
|
398
|
+
- 回的句子硬卡在六十个字以内。
|
|
399
|
+
- 没写人设时不再套用若妍那套词,换成只带模型名字的通用版。
|
|
400
|
+
|
|
401
|
+
### 1.0.5
|
|
402
|
+
|
|
403
|
+
- 拖窗口改成用一层全屏遮罩接指针,修「窗口拖不动」。
|
|
404
|
+
|
|
405
|
+
### 1.0.4
|
|
406
|
+
|
|
407
|
+
- README 加了反馈邮箱。
|
|
408
|
+
|
|
409
|
+
### 1.0.3
|
|
410
|
+
|
|
411
|
+
- 设置项换成直白说法,每项加了鼠标悬停说明。
|
|
412
|
+
|
|
413
|
+
### 1.0.2
|
|
414
|
+
|
|
415
|
+
- 缩放手柄挪到左上角,拖的时候不再粘手。
|
|
416
|
+
- 拖动加了边界,拖出屏幕也拉得回来。
|
|
417
|
+
|
|
418
|
+
### 1.0.1
|
|
419
|
+
|
|
420
|
+
- 去掉通用短答兜底。选项只由角色自己决定给不给。
|
|
421
|
+
|
|
422
|
+
### 1.0.0
|
|
423
|
+
|
|
424
|
+
- 界面重做一轮。
|
|
425
|
+
- README 重写成说明书。
|
|
426
|
+
- 自带二十张 Q 版贴纸,可以导给 dsh-meme 用。
|
|
427
|
+
- 记忆分两层:最近二十来句原文,加上关于对方的一串事实。
|
|
428
|
+
- 去 AI 味:删套话、卡长度、允许只回两个字。
|
|
429
|
+
- 手机页 `/dsh-live2d/chat`。
|
|
430
|
+
- 人设卡编辑页、音色调色页。
|
|
431
|
+
- 对外接口:`/api/chat`、`/api/push`、`/api/poll`。
|
|
432
|
+
|
|
379
433
|
## 反馈
|
|
380
434
|
|
|
381
435
|
遇到问题、想要新功能、觉得哪句话还是像 AI,都可以写信到 **FujiwaraReisen@outlook.com**。
|
package/assets/corpus.html
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
<body>
|
|
43
43
|
|
|
44
44
|
<h1>语料</h1>
|
|
45
|
-
<p class="sub"
|
|
45
|
+
<p class="sub">把角色说过的话喂进来,之后说话就照这个调子。不用排版整齐,能读懂就行。</p>
|
|
46
46
|
|
|
47
47
|
<div class="row">
|
|
48
48
|
<select id="models"></select>
|
|
@@ -62,17 +62,18 @@
|
|
|
62
62
|
他:今天吃啥
|
|
63
63
|
你:锅里还有,热的。
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
或者只贴角色的台词,一行一句:
|
|
66
66
|
锅里还有,热的。
|
|
67
67
|
先坐下。水在桌上。
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
<div id="drop"
|
|
71
|
-
<input id="files" type="file" multiple accept=".txt,.json,.jsonl,.csv" style="display:none" />
|
|
69
|
+
也支持带引号的一句:「嗯。我也是。」"></textarea>
|
|
70
|
+
<div id="drop">拖文件进来,或者点一下选(可以多选)<br /><span style="font-size:11px">文本、字幕、表格都认;图片和视频见下面</span></div>
|
|
71
|
+
<input id="files" type="file" multiple accept=".txt,.json,.jsonl,.csv,.md,.srt,.vtt,.ass,image/*,video/*" style="display:none" />
|
|
72
72
|
<div class="tips">
|
|
73
|
-
认得的写法:<code
|
|
74
|
-
JSON
|
|
75
|
-
|
|
73
|
+
认得的写法:<code>对方:… / 角色:…</code>、<code>「…」</code>、<code>- …</code>、一行一句、
|
|
74
|
+
JSON 数组、字幕文件 <code>.srt / .vtt / .ass</code>(会自动去掉时间轴)。<br />
|
|
75
|
+
说话人对得上才分得清是谁:他/我/用户/对方 算对方,你/她/角色/助手 算角色;认不出来的一律算角色说的。<br />
|
|
76
|
+
图片和视频:暂时不进语料。图片可以留着当形象参考,视频建议先导出字幕文件,或者把台词复制进来。
|
|
76
77
|
</div>
|
|
77
78
|
</div>
|
|
78
79
|
|
|
@@ -128,7 +129,12 @@
|
|
|
128
129
|
} catch (e) { /* 不是 JSON,按普通行处理 */ }
|
|
129
130
|
}
|
|
130
131
|
|
|
132
|
+
// 字幕文件:跳过序号、时间轴、文件头
|
|
133
|
+
if (/^\d+$/.test(line)) continue;
|
|
134
|
+
if (/-->/.test(line)) continue;
|
|
135
|
+
if (/^(WEBVTT|NOTE|STYLE|REGION)/i.test(line)) continue;
|
|
131
136
|
line = line.replace(/^[-*•·]\s*/, '');
|
|
137
|
+
line = line.replace(/<[^>]+>/g, '');
|
|
132
138
|
var m = line.match(SPEAK);
|
|
133
139
|
if (m) {
|
|
134
140
|
var who = m[1].trim();
|
|
@@ -235,14 +241,32 @@
|
|
|
235
241
|
|
|
236
242
|
function readFiles(list) {
|
|
237
243
|
if (!list.length) return;
|
|
238
|
-
|
|
239
|
-
var
|
|
244
|
+
var texts = [];
|
|
245
|
+
var skipped = [];
|
|
240
246
|
list.forEach(function (f) {
|
|
247
|
+
var name = String(f.name || '').toLowerCase();
|
|
248
|
+
if (f.type.indexOf('image/') === 0 || /\.(png|jpe?g|webp|gif|bmp)$/.test(name)) {
|
|
249
|
+
skipped.push(f.name + '(图片)');
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
if (f.type.indexOf('video/') === 0 || /\.(mp4|mkv|mov|avi|webm|flv)$/.test(name)) {
|
|
253
|
+
skipped.push(f.name + '(视频)');
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
texts.push(f);
|
|
257
|
+
});
|
|
258
|
+
if (skipped.length) {
|
|
259
|
+
$('saved').textContent = '这些没读:' + skipped.join('、') + ' —— 图片先留着当形象参考,视频请导出字幕(.srt)或直接贴台词。';
|
|
260
|
+
}
|
|
261
|
+
if (!texts.length) { $('state').textContent = '没有可读的文本'; return; }
|
|
262
|
+
$('state').textContent = '读文件…';
|
|
263
|
+
var left = texts.length;
|
|
264
|
+
texts.forEach(function (f) {
|
|
241
265
|
var reader = new FileReader();
|
|
242
266
|
reader.onload = function () {
|
|
243
267
|
files.push(String(reader.result || ''));
|
|
244
268
|
left -= 1;
|
|
245
|
-
if (left === 0) { $('state').textContent = '读好了 ' +
|
|
269
|
+
if (left === 0) { $('state').textContent = '读好了 ' + texts.length + ' 个文件'; reparse(); }
|
|
246
270
|
};
|
|
247
271
|
reader.onerror = function () { left -= 1; if (left === 0) reparse(); };
|
|
248
272
|
reader.readAsText(f, 'utf-8');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-live2dwaifu",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "给 DSH 网页右下角请一个 Live2D 角色:会眨眼、会呼吸、视线跟着鼠标、点她有反应、说话时嘴动、心情变了眉毛跟着动。模型不用内置——谁装谁放自己的文件夹;支持自定义 .exp3.json 表情和 .motion3.json 动作,卡片能拖能缩,背景可换。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|