kingkont 0.7.17 → 0.7.19

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.
Files changed (2) hide show
  1. package/index.html +16 -2
  2. package/package.json +1 -1
package/index.html CHANGED
@@ -6881,6 +6881,7 @@ function populateVoicesSelect(voices) {
6881
6881
  for (const v of voices) {
6882
6882
  const opt = document.createElement('option');
6883
6883
  opt.value = v.id;
6884
+ opt.dataset.voiceName = v.name; // нужно для KingKont elevenlabs/v3 (он ждёт name, не id)
6884
6885
  const lbl = v.labels || {};
6885
6886
  const tags = [lbl.gender, lbl.language || lbl.accent, lbl.age].filter(Boolean).join(' / ');
6886
6887
  opt.textContent = tags ? `${v.name} — ${tags}` : v.name;
@@ -7246,11 +7247,24 @@ async function runTTSJob(node, text, boardHandle, bKey, voiceId) {
7246
7247
  // ttsModel может быть сохранён в node.generated.ttsModel (при regenerate)
7247
7248
  // или в текущем глобальном state.ttsModel (новая генерация).
7248
7249
  const ttsModel = node.generated?.ttsModel || state.ttsModel || 'qwen/qwen3-tts';
7249
- logJob(node.id, `→ POST /api/tts ${provider} (model=${ttsModel} voice=${voiceId || '—'})`);
7250
+ // ElevenLabs v3 в KingKont/Chatium ждёт voice как ИМЯ ('Rachel', 'Lara
7251
+ // Croft'), не voice_id. Резолвим имя через select option (data-voice-name).
7252
+ let voiceName = node.generated?.voiceName || null;
7253
+ if (!voiceName && voiceId) {
7254
+ const opt = document.querySelector(`#genVoice option[value="${voiceId}"]`);
7255
+ voiceName = opt?.dataset.voiceName || null;
7256
+ }
7257
+ const ttsBody = { text, voiceId, ttsModel };
7258
+ if (ttsModel === 'elevenlabs/v3' && voiceName) {
7259
+ ttsBody.voice = voiceName; // отправляем ИМЯ
7260
+ } else if (voiceId) {
7261
+ ttsBody.voice = voiceId;
7262
+ }
7263
+ logJob(node.id, `→ POST /api/tts → ${provider} (model=${ttsModel} voice=${ttsBody.voice || '—'})`);
7250
7264
  const r = await fetch('/api/tts', {
7251
7265
  method: 'POST',
7252
7266
  headers: { 'Content-Type': 'application/json' },
7253
- body: JSON.stringify({ text, voiceId, ttsModel }),
7267
+ body: JSON.stringify(ttsBody),
7254
7268
  });
7255
7269
  logJob(node.id, `← via ${r.headers.get('x-provider') || '?'} HTTP ${r.status}`);
7256
7270
  if (!r.ok) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kingkont",
3
- "version": "0.7.17",
3
+ "version": "0.7.19",
4
4
  "description": "KingKont \u00b7 Chatium \u2014 \u043d\u043e\u0434-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0441\u0446\u0435\u043d \u0441 AI-\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 (\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438/\u0432\u0438\u0434\u0435\u043e/\u0433\u043e\u043b\u043e\u0441/SFX/\u043c\u0443\u0437\u044b\u043a\u0430/\u0442\u0435\u043a\u0441\u0442)",
5
5
  "main": "main.js",
6
6
  "bin": {