dsh-audiogen 0.4.5 → 0.4.7

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/lib/client.js CHANGED
@@ -22,6 +22,8 @@ window.__ModuleLoader__.load({
22
22
  const ENHANCE_API = "/api/dsh-audiogen/prompt/enhance";
23
23
  /** Host-mediated built-in provider catalog (channels the user can instantiate). */
24
24
  const PRESETS_API = "/api/dsh-audiogen/presets";
25
+ /** LLM 模型目录:提示词增强模型的候选(来自「设置 → 模型」各提供方)。 */
26
+ const LLM_MODELS_API = "/api/dsh-audiogen/llm/models";
25
27
  /** Host-mediated model/voice discovery endpoint. */
26
28
  const MODEL_API = { discover: "/api/dsh-audiogen/models/discover" };
27
29
  /** Host-persisted generation history routes. */
@@ -187,6 +189,10 @@ window.__ModuleLoader__.load({
187
189
  "settings.allowAgentAudio": "允许 Agent 调用音频生成",
188
190
  "settings.autoSaveLibrary": "生成后自动保存到资源库",
189
191
  "settings.maxConcurrent": "最大并发生成数(同时打到上游的请求数,默认 5)",
192
+ "settings.enhanceModel": "提示词增强模型(LLM)",
193
+ "settings.enhanceModelDefault": "跟随 Agent 默认模型(设置 → 模型)",
194
+ "settings.enhanceModelHint": "用于「✨ 增强提示词」与 generate_audio 的 enhance_prompt 参数;留空则使用「设置 → 模型」中的默认模型。",
195
+ "settings.enhanceModelFailed": "模型列表加载失败",
190
196
  "settings.save": "保存",
191
197
  "settings.saving": "保存中…",
192
198
  "settings.discard": "放弃修改",
@@ -239,6 +245,8 @@ window.__ModuleLoader__.load({
239
245
  "channel.category.sfx": "音效",
240
246
  "channel.category.voice_design": "音色设计",
241
247
  "channel.category.voice_clone": "音色克隆",
248
+ "channel.category.stableDual": "音乐 + 音效(自动)",
249
+ "channel.category.stableDualHint": "Stable Audio 模型按模型名自动识别为音乐+音效,无需设置分类。",
242
250
  "channel.addModel": "添加模型",
243
251
  "channel.removeModel": "移除",
244
252
  "channel.fetchModels": "获取可用模型",
@@ -247,6 +255,7 @@ window.__ModuleLoader__.load({
247
255
  "channel.fetchEmpty": "未发现音频相关模型。",
248
256
  "channel.discoverSource": "来源:{source}",
249
257
  "channel.candidates": "发现 {n} 个可用模型/音色",
258
+ "channel.stabilityHint": "Stable Audio 模型(stable-audio-*)同时适用于「音乐生成」与「音效生成」,面板按模型名自动识别;分类仅影响默认展示。官方不支持 TTS。",
250
259
  "channel.selectAll": "全选",
251
260
  "channel.clearSelection": "清空",
252
261
  "channel.adoptSelected": "添加所选({n})",
@@ -289,6 +298,10 @@ window.__ModuleLoader__.load({
289
298
  "settings.allowAgentAudio": "Allow agents to generate audio",
290
299
  "settings.autoSaveLibrary": "Auto-save generated audio to the library",
291
300
  "settings.maxConcurrent": "Max concurrent generations (in-flight upstream calls, default 5)",
301
+ "settings.enhanceModel": "Prompt enhance model (LLM)",
302
+ "settings.enhanceModelDefault": "Follow the agent default model (Settings → Models)",
303
+ "settings.enhanceModelHint": "Used by \"✨ Enhance prompt\" and the generate_audio enhance_prompt parameter; empty follows the default model in Settings → Models.",
304
+ "settings.enhanceModelFailed": "Failed to load the model list",
292
305
  "settings.save": "Save",
293
306
  "settings.saving": "Saving…",
294
307
  "settings.discard": "Discard",
@@ -341,6 +354,8 @@ window.__ModuleLoader__.load({
341
354
  "channel.category.sfx": "SFX",
342
355
  "channel.category.voice_design": "Voice design",
343
356
  "channel.category.voice_clone": "Voice clone",
357
+ "channel.category.stableDual": "Music + SFX (auto)",
358
+ "channel.category.stableDualHint": "Stable Audio models are auto-detected as Music + SFX by model name; no category needed.",
344
359
  "channel.addModel": "Add model",
345
360
  "channel.removeModel": "Remove",
346
361
  "channel.fetchModels": "Fetch available models",
@@ -349,6 +364,7 @@ window.__ModuleLoader__.load({
349
364
  "channel.fetchEmpty": "No audio-related models found.",
350
365
  "channel.discoverSource": "Source: {source}",
351
366
  "channel.candidates": "{n} available model(s)/voice(s) found",
367
+ "channel.stabilityHint": "Stable Audio models (stable-audio-*) apply to both Music and SFX; the panel detects them by model name. The category only affects the default display. Official API does not support TTS.",
352
368
  "channel.selectAll": "Select all",
353
369
  "channel.clearSelection": "Clear",
354
370
  "channel.adoptSelected": "Add selected ({n})",
@@ -1158,7 +1174,7 @@ window.__ModuleLoader__.load({
1158
1174
  }
1159
1175
  //#endregion
1160
1176
  //#region \0dsh-css:/Users/shimingming/Projects_code/dsh-audiogen/src/client/audio-panel.module.css.mjs
1161
- const css$4 = ".Oo1fpq_panel{background:var(--dsw-alias-bg-base,#f7f7f8);min-width:0;height:100%;min-height:0;color:var(--dsw-alias-label-primary,#1f2328);font-family:var(--dsw-font-family,system-ui, sans-serif);flex-direction:column;gap:12px;padding:14px 16px 16px;display:flex;position:relative}.Oo1fpq_panel,.Oo1fpq_panel *,.Oo1fpq_panel :before,.Oo1fpq_panel :after{box-sizing:border-box}.Oo1fpq_header{flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.Oo1fpq_title{color:var(--dsw-alias-label-primary,#1f2328);white-space:nowrap;margin:0;font-size:16px;font-weight:700}.Oo1fpq_tabs{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:10px;align-items:center;gap:2px;padding:3px;display:inline-flex}.Oo1fpq_tab{min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12.5px;transition:color .12s,background .12s;display:inline-flex}.Oo1fpq_tab:hover{color:var(--dsw-alias-label-primary,#1f2328)}.Oo1fpq_tab[data-active=true]{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-1,#fff);font-weight:600;box-shadow:0 1px 3px #0000001a}.Oo1fpq_studio{flex:1;gap:14px;min-width:0;min-height:0;display:flex}.Oo1fpq_formCol{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:none;gap:11px;width:300px;min-width:260px;max-width:340px;min-height:0;padding:2px;display:flex;overflow-y:auto}.Oo1fpq_formCol::-webkit-scrollbar{width:8px}.Oo1fpq_formCol::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Oo1fpq_modeRow{flex-wrap:wrap;gap:6px;display:flex}.Oo1fpq_modeButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);min-width:0;min-height:34px;color:var(--dsw-alias-label-secondary,#6b7280);white-space:nowrap;cursor:pointer;border-radius:9px;flex:auto;justify-content:center;align-items:center;padding:6px 10px;font-family:inherit;font-size:11.5px;transition:border-color .12s,color .12s,background .12s;display:flex}.Oo1fpq_modeButton:hover{border-color:var(--dsw-alias-label-dimmed,#9ca3af);color:var(--dsw-alias-label-primary,#1f2328)}.Oo1fpq_modeButton[data-active=true]{border-color:var(--dsw-alias-brand-primary,#2563eb);color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 8%, transparent);font-weight:600}.Oo1fpq_label{color:var(--dsw-alias-label-secondary,#6b7280);flex-direction:column;gap:5px;font-size:12px;font-weight:600;display:flex}.Oo1fpq_input,.Oo1fpq_textarea{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-2,#fff);width:100%;min-height:36px;color:var(--dsw-alias-label-primary,#1f2328);border-radius:9px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px;transition:border-color .12s,box-shadow .12s}.Oo1fpq_input:focus,.Oo1fpq_textarea:focus{border-color:var(--dsw-alias-brand-primary,#2563eb);box-shadow:0 0 0 3px color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 14%, transparent)}.Oo1fpq_textarea{resize:vertical;min-height:96px}.Oo1fpq_checkbox{color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;align-items:center;gap:7px;font-size:12px;font-weight:600;display:flex}.Oo1fpq_checkbox input{accent-color:var(--dsw-alias-brand-primary,#2563eb);margin:0}.Oo1fpq_hint{color:var(--dsw-alias-label-tertiary,#9ca3af);margin:0;font-size:11.5px;line-height:1.55}.Oo1fpq_row{align-items:flex-end;gap:8px;display:flex}.Oo1fpq_row .Oo1fpq_label{flex:1;min-width:0}.Oo1fpq_advanced{border:1px dashed var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:10px;flex-direction:column;gap:9px;padding:9px 11px;display:flex}.Oo1fpq_advanced summary{cursor:pointer;color:var(--dsw-alias-label-secondary,#6b7280);font-size:12px;font-weight:600}.Oo1fpq_generate{background:var(--dsw-alias-label-primary,#1f2328);color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:10px;padding:10px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:opacity .12s,transform 80ms}.Oo1fpq_generate:hover:not(:disabled){opacity:.92}.Oo1fpq_generate:active:not(:disabled){transform:translateY(1px)}.Oo1fpq_generate:disabled{opacity:.5;cursor:default}.Oo1fpq_resultCol{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;border-radius:12px;flex-direction:column;flex:1;gap:10px;min-width:0;padding:14px;display:flex;overflow-y:auto}.Oo1fpq_resultCol::-webkit-scrollbar{width:8px}.Oo1fpq_resultCol::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Oo1fpq_resultEmpty{text-align:center;color:var(--dsw-alias-label-secondary,#6b7280);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex}.Oo1fpq_resultEmptyIcon{background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:4px;font-size:24px;display:inline-flex}.Oo1fpq_resultEmptyHint{color:var(--dsw-alias-label-tertiary,#9ca3af);margin:0;font-size:11.5px}.Oo1fpq_error{border:1px solid var(--dsw-alias-label-error,#b91c1c);background:color-mix(in srgb, var(--dsw-alias-label-error,#b91c1c) 6%, transparent);color:var(--dsw-alias-label-error,#b91c1c);border-radius:9px;flex:none;margin:0;padding:9px 12px;font-size:12.5px;line-height:1.55}.Oo1fpq_resultMeta{color:var(--dsw-alias-label-tertiary,#9ca3af);flex:none;align-items:center;gap:8px;font-size:12px;display:flex}.Oo1fpq_resultModeChip{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:999px;padding:2px 9px;font-size:11px}.Oo1fpq_audioList{gap:10px;display:grid}.Oo1fpq_audioCard{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:12px;flex-direction:column;gap:8px;padding:12px;transition:border-color .12s;display:flex}.Oo1fpq_audioCard[data-saved=true]{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 42%, var(--dsw-alias-border-l1,#e5e7eb));background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 5%, var(--dsw-alias-bg-layer-2,#f7f7f8))}.Oo1fpq_audioCardHead{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.Oo1fpq_voiceIdChip{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);max-width:100%;color:var(--dsw-alias-label-secondary,#6b7280);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:2px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;overflow:hidden}.Oo1fpq_savedChip{background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 12%, transparent);color:var(--dsw-alias-brand-primary,#2563eb);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.Oo1fpq_audioCardIndex{color:var(--dsw-alias-label-tertiary,#9ca3af);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.Oo1fpq_audioCardActions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.Oo1fpq_ghostButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:5px;padding:3px 11px;font-family:inherit;font-size:12px;text-decoration:none;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.Oo1fpq_ghostButton:hover{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 8%, transparent)}.Oo1fpq_compareBox{border:1px dashed var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 4%, var(--dsw-alias-bg-layer-1,#fff));border-radius:10px;flex-direction:column;gap:7px;padding:9px 11px;display:flex}.Oo1fpq_compareChips{flex-wrap:wrap;gap:6px;display:flex}.Oo1fpq_compareChip{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;border-radius:999px;align-items:center;padding:0 11px;font-family:inherit;font-size:12px;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.Oo1fpq_compareChip:hover{color:var(--dsw-alias-label-primary,#1f2328);border-color:var(--dsw-alias-label-dimmed,#9ca3af)}.Oo1fpq_compareChip[data-active=true]{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 9%, transparent);font-weight:600}.Oo1fpq_compareBoard{flex-direction:column;gap:12px;display:flex}.Oo1fpq_compareGroup{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:12px;flex-direction:column;gap:8px;padding:11px;display:flex}.Oo1fpq_compareGroup[data-state=running]{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 45%, var(--dsw-alias-border-l1,#e5e7eb))}.Oo1fpq_compareGroup[data-state=done]{border-color:color-mix(in srgb, #10b981 45%, var(--dsw-alias-border-l1,#e5e7eb))}.Oo1fpq_compareGroup[data-state=error]{border-color:color-mix(in srgb, var(--dsw-alias-label-error,#b91c1c) 45%, var(--dsw-alias-border-l1,#e5e7eb))}.Oo1fpq_compareGroupHead{justify-content:space-between;align-items:center;gap:10px;display:flex}.Oo1fpq_compareModelName{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l1,#e5e7eb);color:var(--dsw-alias-label-primary,#1f2328);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;overflow:hidden}.Oo1fpq_compareState{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;align-items:center;gap:5px;font-size:11px;display:inline-flex}.Oo1fpq_compareGroup[data-state=running] .Oo1fpq_compareState{color:var(--dsw-alias-brand-primary,#2563eb)}.Oo1fpq_compareGroup[data-state=done] .Oo1fpq_compareState{color:#059669}.Oo1fpq_compareGroup[data-state=error] .Oo1fpq_compareState,.Oo1fpq_hint[data-error]{color:var(--dsw-alias-label-error,#b91c1c)}.Oo1fpq_historyCol{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:12px;flex-direction:column;flex:none;width:250px;min-width:210px;max-width:290px;min-height:0;display:flex;overflow:hidden}.Oo1fpq_historyHeader{border-bottom:1px solid var(--dsw-alias-border-l1,#e5e7eb);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.Oo1fpq_historyTitle{color:var(--dsw-alias-label-primary,#1f2328);font-size:13px;font-weight:700}.Oo1fpq_historyClear{border:1px solid var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border-radius:999px;padding:2px 9px;font-family:inherit;font-size:11px}.Oo1fpq_historyClear:hover{color:var(--dsw-alias-label-error,#b91c1c);border-color:var(--dsw-alias-label-error,#b91c1c)}.Oo1fpq_historyList{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:1;gap:8px;min-height:0;padding:9px;display:flex;overflow-y:auto}.Oo1fpq_historyList::-webkit-scrollbar{width:8px}.Oo1fpq_historyList::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Oo1fpq_historyEmpty{text-align:center;color:var(--dsw-alias-label-tertiary,#9ca3af);flex:1;justify-content:center;align-items:center;padding:18px;font-size:12px;display:flex}.Oo1fpq_historyItem{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:10px;flex-direction:column;gap:6px;padding:9px;display:flex}.Oo1fpq_historyPrompt{color:var(--dsw-alias-label-primary,#1f2328);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.Oo1fpq_historyMeta{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.Oo1fpq_historyActions{justify-content:flex-end;display:flex}.Oo1fpq_historyAction{border:1px solid var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;display:inline-flex}.Oo1fpq_historyAction:hover{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb)}.Oo1fpq_player{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:10px;align-items:center;gap:9px;padding:8px 10px;display:flex}.Oo1fpq_playerCompact{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:9px;align-items:center;gap:8px;padding:6px 8px;display:flex}.Oo1fpq_playButton{background:var(--dsw-alias-label-primary,#1f2328);width:30px;height:30px;color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:opacity .12s,transform 80ms;display:inline-flex}.Oo1fpq_playerCompact .Oo1fpq_playButton{width:26px;height:26px}.Oo1fpq_playButton:hover{opacity:.9}.Oo1fpq_playButton:active{transform:scale(.94)}.Oo1fpq_track{background:var(--dsw-alias-border-l2,#d1d5db);cursor:pointer;border-radius:999px;flex:1;min-width:0;height:4px;position:relative}.Oo1fpq_trackFill{background:var(--dsw-alias-brand-primary,#2563eb);border-radius:999px;position:absolute;inset:0 auto 0 0}.Oo1fpq_trackKnob{background:var(--dsw-alias-brand-primary,#2563eb);border-radius:50%;width:11px;height:11px;transition:transform .1s;position:absolute;top:50%;transform:translate(-50%,-50%)}.Oo1fpq_time{font-variant-numeric:tabular-nums;min-width:62px;color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;text-align:right;flex:none;font-size:10.5px}.Oo1fpq_playerCompact .Oo1fpq_time{min-width:56px;font-size:10px}.Oo1fpq_muteButton{width:24px;height:24px;color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.Oo1fpq_muteButton:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_modalMask{z-index:200;backdrop-filter:blur(3px);background:#0006;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.Oo1fpq_modal{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:14px;flex-direction:column;gap:12px;width:440px;max-width:100%;max-height:calc(100vh - 40px);padding:16px;display:flex;box-shadow:0 18px 50px #00000038}.Oo1fpq_modalHead{color:var(--dsw-alias-label-primary,#1f2328);justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}.Oo1fpq_modalBody{flex-direction:column;gap:11px;min-height:0;display:flex;overflow-y:auto}.Oo1fpq_formRow{grid-template-columns:1fr 1fr;gap:10px;display:grid}.Oo1fpq_modalFoot{justify-content:flex-end;align-items:center;gap:8px;display:flex}.Oo1fpq_primaryButton{background:var(--dsw-alias-label-primary,#1f2328);min-height:32px;color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex}.Oo1fpq_primaryButton:disabled{opacity:.5;cursor:default}.Oo1fpq_secondaryButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);min-height:32px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:8px;padding:0 14px;font-family:inherit;font-size:12.5px}.Oo1fpq_secondaryButton:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_iconButton{width:26px;height:26px;color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.Oo1fpq_iconButton:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_toast{z-index:150;border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-mask-1,#fff);color:var(--dsw-alias-label-primary,#1f2328);backdrop-filter:blur(6px);pointer-events:none;border-radius:999px;align-items:center;gap:7px;padding:7px 16px;font-size:12.5px;animation:.16s ease-out Oo1fpq_audiogenToastIn;display:inline-flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000038}@keyframes Oo1fpq_audiogenToastIn{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.Oo1fpq_toast{animation-duration:1ms}}.Oo1fpq_modelCheckList{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-3,#fff);border-radius:8px;flex-direction:column;gap:4px;max-height:180px;padding:8px;display:flex;overflow-y:auto}.Oo1fpq_resultGroups{flex-direction:column;gap:16px;display:flex}.Oo1fpq_resultGroup{flex-direction:column;gap:8px;display:flex}.Oo1fpq_resultGroupHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Oo1fpq_resultGroupChip{background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);border:1px solid var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-label-primary,#1f2328);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.Oo1fpq_resultGroupError{color:var(--dsw-alias-state-error-primary,#dc2626);font-size:12px}.Oo1fpq_resultGroupCount{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:11px}.Oo1fpq_overrideTable{flex-direction:column;gap:6px;display:flex}.Oo1fpq_overrideRow{align-items:center;gap:6px;display:flex}.Oo1fpq_overrideCell{min-width:0;color:var(--dsw-alias-label-secondary,#6b7280);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}.Oo1fpq_overrideCell .Oo1fpq_input{min-height:30px;padding:5px 8px}.Oo1fpq_overrideCellHead{color:var(--dsw-alias-label-primary,#1f2328);white-space:normal;font-weight:700}.Oo1fpq_taskList{flex-direction:column;gap:14px;display:flex}.Oo1fpq_taskCard{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-2,#fafafa);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.Oo1fpq_taskCard[data-state=failed]{border-color:var(--dsw-alias-state-error-primary,#dc2626)}.Oo1fpq_taskCard[data-state=cancelled]{opacity:.75}.Oo1fpq_taskHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Oo1fpq_taskLabel{color:var(--dsw-alias-label-primary,#1f2328);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:13px;font-weight:600;overflow:hidden}.Oo1fpq_taskStatus{color:var(--dsw-alias-label-secondary,#6b7280);font-size:12px}.Oo1fpq_taskStatus[data-state=done]{color:var(--dsw-alias-state-success-primary,#16a34a)}.Oo1fpq_taskStatus[data-state=failed]{color:var(--dsw-alias-state-error-primary,#dc2626)}.Oo1fpq_taskActions{gap:6px;margin-left:auto;display:flex}.Oo1fpq_historyTabs{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.Oo1fpq_historyTab{border:1px solid var(--dsw-alias-border-l2,#d1d5db);cursor:pointer;background:var(--dsw-alias-bg-layer-3,#fff);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:999px;padding:3px 10px;font-size:12px}.Oo1fpq_historyTab[data-active=true]{background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);color:var(--dsw-alias-label-primary,#1f2328);font-weight:600}.Oo1fpq_historyTabCount{color:var(--dsw-alias-label-tertiary,#9ca3af);margin-left:4px;font-size:11px}.Oo1fpq_historyCompareSummary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Oo1fpq_historyCompareBadge{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-3,#fff);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.Oo1fpq_historyModelRow{border-top:1px dashed var(--dsw-alias-border-l1,#e5e7eb);flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;display:flex}.Oo1fpq_overrideOnly{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:10px;font-weight:500}.Oo1fpq_overrideDash{color:var(--dsw-alias-label-tertiary,#9ca3af);padding:0 6px}.Oo1fpq_historyTime{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;margin:2px 0;font-size:11px}.Oo1fpq_formSection{letter-spacing:.04em;color:var(--dsw-alias-label-tertiary,#9ca3af);border-bottom:1px solid var(--dsw-alias-border-l1,#e5e7eb);margin:10px 0 2px;padding-bottom:4px;font-size:11px;font-weight:700}.Oo1fpq_formFields{grid-template-columns:1fr 1fr;align-items:end;gap:10px;display:grid}.Oo1fpq_fieldCell{min-width:0}.Oo1fpq_fieldFull{grid-column:1/-1}.Oo1fpq_modeIcon{margin-right:4px;font-size:13px}.Oo1fpq_modeButton[data-active=true]{border-color:var(--dsw-alias-interactive-bg-hover-accent,#26314824);background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);color:var(--dsw-alias-label-primary,#1f2328);font-weight:600}.Oo1fpq_taskBar{background:var(--dsw-alias-border-l1,#e5e7eb);border-radius:999px;flex:1;min-width:60px;height:4px;display:block;overflow:hidden}.Oo1fpq_taskBar i{background:var(--dsw-alias-interactive-bg-hover-accent,#26314859);border-radius:999px;height:100%;transition:width .3s;display:block}.Oo1fpq_historyIcon{width:26px;height:26px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.Oo1fpq_historyIcon:hover{background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);color:var(--dsw-alias-label-primary,#1f2328)}.Oo1fpq_historyIcon[title^=删除]:hover{color:var(--dsw-alias-state-error-primary,#dc2626)}.Oo1fpq_historyPrompt{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.Oo1fpq_input:focus-visible,.Oo1fpq_select:focus-visible,.Oo1fpq_textarea:focus-visible,.Oo1fpq_modeButton:focus-visible,.Oo1fpq_ghostButton:focus-visible,.Oo1fpq_historyAction:focus-visible,.Oo1fpq_historyIcon:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent,#26314859);outline-offset:1px}.Oo1fpq_generate:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent,#26314859);outline-offset:2px}@media (width<=1100px){.Oo1fpq_studio{flex-wrap:wrap}.Oo1fpq_historyCol{width:100%;min-width:0;max-width:none}}@media (width<=720px){.Oo1fpq_formCol{width:100%;min-width:0;max-width:none}.Oo1fpq_resultCol{min-height:320px}}.Oo1fpq_formSectionRow{justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.Oo1fpq_formSectionRow .Oo1fpq_formSection{flex:1}.Oo1fpq_enhanceCard{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#fafafa);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.Oo1fpq_enhanceCardHead{color:var(--dsw-alias-label-secondary,#6b7280);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.Oo1fpq_enhanceActions{gap:6px;display:flex}";
1177
+ const css$4 = ".Oo1fpq_panel{background:var(--dsw-alias-bg-base,#f7f7f8);min-width:0;height:100%;min-height:0;color:var(--dsw-alias-label-primary,#1f2328);font-family:var(--dsw-font-family,system-ui, sans-serif);flex-direction:column;gap:12px;padding:14px 16px 16px;display:flex;position:relative}.Oo1fpq_panel,.Oo1fpq_panel *,.Oo1fpq_panel :before,.Oo1fpq_panel :after{box-sizing:border-box}.Oo1fpq_header{flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.Oo1fpq_title{color:var(--dsw-alias-label-primary,#1f2328);white-space:nowrap;margin:0;font-size:16px;font-weight:700}.Oo1fpq_tabs{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:10px;align-items:center;gap:2px;padding:3px;display:inline-flex}.Oo1fpq_tab{min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12.5px;transition:color .12s,background .12s;display:inline-flex}.Oo1fpq_tab:hover{color:var(--dsw-alias-label-primary,#1f2328)}.Oo1fpq_tab[data-active=true]{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-1,#fff);font-weight:600;box-shadow:0 1px 3px #0000001a}.Oo1fpq_studio{flex:1;gap:14px;min-width:0;min-height:0;display:flex}.Oo1fpq_formCol{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:none;gap:11px;width:380px;min-width:320px;max-width:440px;min-height:0;padding:2px;display:flex;overflow-y:auto}.Oo1fpq_formCol::-webkit-scrollbar{width:8px}.Oo1fpq_formCol::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Oo1fpq_modeRow{flex-wrap:wrap;gap:6px;display:flex}.Oo1fpq_modeButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);min-width:0;min-height:34px;color:var(--dsw-alias-label-secondary,#6b7280);white-space:nowrap;cursor:pointer;border-radius:9px;flex:auto;justify-content:center;align-items:center;padding:6px 10px;font-family:inherit;font-size:11.5px;transition:border-color .12s,color .12s,background .12s;display:flex}.Oo1fpq_modeButton:hover{border-color:var(--dsw-alias-label-dimmed,#9ca3af);color:var(--dsw-alias-label-primary,#1f2328)}.Oo1fpq_modeButton[data-active=true]{border-color:var(--dsw-alias-brand-primary,#2563eb);color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 8%, transparent);font-weight:600}.Oo1fpq_label{color:var(--dsw-alias-label-secondary,#6b7280);flex-direction:column;gap:5px;font-size:12px;font-weight:600;display:flex}.Oo1fpq_input,.Oo1fpq_textarea{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-2,#fff);width:100%;min-height:36px;color:var(--dsw-alias-label-primary,#1f2328);border-radius:9px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px;transition:border-color .12s,box-shadow .12s}.Oo1fpq_input:focus,.Oo1fpq_textarea:focus{border-color:var(--dsw-alias-brand-primary,#2563eb);box-shadow:0 0 0 3px color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 14%, transparent)}.Oo1fpq_textarea{resize:vertical;min-height:96px}.Oo1fpq_checkbox{color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;align-items:center;gap:7px;font-size:12px;font-weight:600;display:flex}.Oo1fpq_checkbox input{accent-color:var(--dsw-alias-brand-primary,#2563eb);margin:0}.Oo1fpq_hint{color:var(--dsw-alias-label-tertiary,#9ca3af);margin:0;font-size:11.5px;line-height:1.55}.Oo1fpq_row{align-items:flex-end;gap:8px;display:flex}.Oo1fpq_row .Oo1fpq_label{flex:1;min-width:0}.Oo1fpq_advanced{border:1px dashed var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:10px;flex-direction:column;gap:9px;padding:9px 11px;display:flex}.Oo1fpq_advanced summary{cursor:pointer;color:var(--dsw-alias-label-secondary,#6b7280);font-size:12px;font-weight:600}.Oo1fpq_generate{background:var(--dsw-alias-label-primary,#1f2328);color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:10px;padding:10px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:opacity .12s,transform 80ms}.Oo1fpq_generate:hover:not(:disabled){opacity:.92}.Oo1fpq_generate:active:not(:disabled){transform:translateY(1px)}.Oo1fpq_generate:disabled{opacity:.5;cursor:default}.Oo1fpq_resultCol{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;border-radius:12px;flex-direction:column;flex:1;gap:10px;min-width:0;max-width:760px;padding:14px;display:flex;overflow-y:auto}.Oo1fpq_resultCol::-webkit-scrollbar{width:8px}.Oo1fpq_resultCol::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Oo1fpq_resultEmpty{text-align:center;color:var(--dsw-alias-label-secondary,#6b7280);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex}.Oo1fpq_resultEmptyIcon{background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:4px;font-size:24px;display:inline-flex}.Oo1fpq_resultEmptyHint{color:var(--dsw-alias-label-tertiary,#9ca3af);margin:0;font-size:11.5px}.Oo1fpq_error{border:1px solid var(--dsw-alias-label-error,#b91c1c);background:color-mix(in srgb, var(--dsw-alias-label-error,#b91c1c) 6%, transparent);color:var(--dsw-alias-label-error,#b91c1c);border-radius:9px;flex:none;margin:0;padding:9px 12px;font-size:12.5px;line-height:1.55}.Oo1fpq_resultMeta{color:var(--dsw-alias-label-tertiary,#9ca3af);flex:none;align-items:center;gap:8px;font-size:12px;display:flex}.Oo1fpq_resultModeChip{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:999px;padding:2px 9px;font-size:11px}.Oo1fpq_audioList{gap:10px;display:grid}.Oo1fpq_audioCard{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:12px;flex-direction:column;gap:8px;padding:12px;transition:border-color .12s;display:flex}.Oo1fpq_audioCard[data-saved=true]{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 42%, var(--dsw-alias-border-l1,#e5e7eb));background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 5%, var(--dsw-alias-bg-layer-2,#f7f7f8))}.Oo1fpq_audioCardHead{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.Oo1fpq_voiceIdChip{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);max-width:100%;color:var(--dsw-alias-label-secondary,#6b7280);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:2px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;overflow:hidden}.Oo1fpq_savedChip{background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 12%, transparent);color:var(--dsw-alias-brand-primary,#2563eb);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.Oo1fpq_audioCardIndex{color:var(--dsw-alias-label-tertiary,#9ca3af);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.Oo1fpq_audioCardActions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.Oo1fpq_ghostButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:5px;padding:3px 11px;font-family:inherit;font-size:12px;text-decoration:none;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.Oo1fpq_ghostButton:hover{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 8%, transparent)}.Oo1fpq_compareBox{border:1px dashed var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 4%, var(--dsw-alias-bg-layer-1,#fff));border-radius:10px;flex-direction:column;gap:7px;padding:9px 11px;display:flex}.Oo1fpq_compareChips{flex-wrap:wrap;gap:6px;display:flex}.Oo1fpq_compareChip{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;border-radius:999px;align-items:center;padding:0 11px;font-family:inherit;font-size:12px;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.Oo1fpq_compareChip:hover{color:var(--dsw-alias-label-primary,#1f2328);border-color:var(--dsw-alias-label-dimmed,#9ca3af)}.Oo1fpq_compareChip[data-active=true]{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 9%, transparent);font-weight:600}.Oo1fpq_compareBoard{flex-direction:column;gap:12px;display:flex}.Oo1fpq_compareGroup{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:12px;flex-direction:column;gap:8px;padding:11px;display:flex}.Oo1fpq_compareGroup[data-state=running]{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 45%, var(--dsw-alias-border-l1,#e5e7eb))}.Oo1fpq_compareGroup[data-state=done]{border-color:color-mix(in srgb, #10b981 45%, var(--dsw-alias-border-l1,#e5e7eb))}.Oo1fpq_compareGroup[data-state=error]{border-color:color-mix(in srgb, var(--dsw-alias-label-error,#b91c1c) 45%, var(--dsw-alias-border-l1,#e5e7eb))}.Oo1fpq_compareGroupHead{justify-content:space-between;align-items:center;gap:10px;display:flex}.Oo1fpq_compareModelName{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l1,#e5e7eb);color:var(--dsw-alias-label-primary,#1f2328);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;overflow:hidden}.Oo1fpq_compareState{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;align-items:center;gap:5px;font-size:11px;display:inline-flex}.Oo1fpq_compareGroup[data-state=running] .Oo1fpq_compareState{color:var(--dsw-alias-brand-primary,#2563eb)}.Oo1fpq_compareGroup[data-state=done] .Oo1fpq_compareState{color:#059669}.Oo1fpq_compareGroup[data-state=error] .Oo1fpq_compareState,.Oo1fpq_hint[data-error]{color:var(--dsw-alias-label-error,#b91c1c)}.Oo1fpq_historyCol{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:12px;flex-direction:column;flex:none;width:250px;min-width:210px;max-width:290px;min-height:0;display:flex;overflow:hidden}.Oo1fpq_historyHeader{border-bottom:1px solid var(--dsw-alias-border-l1,#e5e7eb);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.Oo1fpq_historyTitle{color:var(--dsw-alias-label-primary,#1f2328);font-size:13px;font-weight:700}.Oo1fpq_historyClear{border:1px solid var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border-radius:999px;padding:2px 9px;font-family:inherit;font-size:11px}.Oo1fpq_historyClear:hover{color:var(--dsw-alias-label-error,#b91c1c);border-color:var(--dsw-alias-label-error,#b91c1c)}.Oo1fpq_historyList{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:1;gap:8px;min-height:0;padding:9px;display:flex;overflow-y:auto}.Oo1fpq_historyList::-webkit-scrollbar{width:8px}.Oo1fpq_historyList::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Oo1fpq_historyEmpty{text-align:center;color:var(--dsw-alias-label-tertiary,#9ca3af);flex:1;justify-content:center;align-items:center;padding:18px;font-size:12px;display:flex}.Oo1fpq_historyItem{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:10px;flex-direction:column;gap:6px;padding:9px;display:flex}.Oo1fpq_historyPrompt{color:var(--dsw-alias-label-primary,#1f2328);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.Oo1fpq_historyMeta{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.Oo1fpq_historyActions{justify-content:flex-end;display:flex}.Oo1fpq_historyAction{border:1px solid var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;display:inline-flex}.Oo1fpq_historyAction:hover{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb)}.Oo1fpq_player{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:10px;align-items:center;gap:9px;padding:8px 10px;display:flex}.Oo1fpq_playerCompact{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:9px;align-items:center;gap:8px;padding:6px 8px;display:flex}.Oo1fpq_playButton{background:var(--dsw-alias-label-primary,#1f2328);width:30px;height:30px;color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:opacity .12s,transform 80ms;display:inline-flex}.Oo1fpq_playerCompact .Oo1fpq_playButton{width:26px;height:26px}.Oo1fpq_playButton:hover{opacity:.9}.Oo1fpq_playButton:active{transform:scale(.94)}.Oo1fpq_track{background:var(--dsw-alias-border-l2,#d1d5db);cursor:pointer;border-radius:999px;flex:1;min-width:0;height:4px;position:relative}.Oo1fpq_trackFill{background:var(--dsw-alias-brand-primary,#2563eb);border-radius:999px;position:absolute;inset:0 auto 0 0}.Oo1fpq_trackKnob{background:var(--dsw-alias-brand-primary,#2563eb);border-radius:50%;width:11px;height:11px;transition:transform .1s;position:absolute;top:50%;transform:translate(-50%,-50%)}.Oo1fpq_time{font-variant-numeric:tabular-nums;min-width:62px;color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;text-align:right;flex:none;font-size:10.5px}.Oo1fpq_playerCompact .Oo1fpq_time{min-width:56px;font-size:10px}.Oo1fpq_muteButton{width:24px;height:24px;color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.Oo1fpq_muteButton:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_modalMask{z-index:200;backdrop-filter:blur(3px);background:#0006;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.Oo1fpq_modal{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:14px;flex-direction:column;gap:12px;width:440px;max-width:100%;max-height:calc(100vh - 40px);padding:16px;display:flex;box-shadow:0 18px 50px #00000038}.Oo1fpq_modalHead{color:var(--dsw-alias-label-primary,#1f2328);justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}.Oo1fpq_modalBody{flex-direction:column;gap:11px;min-height:0;display:flex;overflow-y:auto}.Oo1fpq_formRow{grid-template-columns:1fr 1fr;gap:10px;display:grid}.Oo1fpq_modalFoot{justify-content:flex-end;align-items:center;gap:8px;display:flex}.Oo1fpq_primaryButton{background:var(--dsw-alias-label-primary,#1f2328);min-height:32px;color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex}.Oo1fpq_primaryButton:disabled{opacity:.5;cursor:default}.Oo1fpq_secondaryButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);min-height:32px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:8px;padding:0 14px;font-family:inherit;font-size:12.5px}.Oo1fpq_secondaryButton:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_iconButton{width:26px;height:26px;color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.Oo1fpq_iconButton:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_toast{z-index:150;border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-mask-1,#fff);color:var(--dsw-alias-label-primary,#1f2328);backdrop-filter:blur(6px);pointer-events:none;border-radius:999px;align-items:center;gap:7px;padding:7px 16px;font-size:12.5px;animation:.16s ease-out Oo1fpq_audiogenToastIn;display:inline-flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000038}@keyframes Oo1fpq_audiogenToastIn{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.Oo1fpq_toast{animation-duration:1ms}}.Oo1fpq_modelCheckList{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-3,#fff);border-radius:8px;flex-direction:column;gap:4px;max-height:180px;padding:8px;display:flex;overflow-y:auto}.Oo1fpq_resultGroups{flex-direction:column;gap:16px;display:flex}.Oo1fpq_resultGroup{flex-direction:column;gap:8px;display:flex}.Oo1fpq_resultGroupHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Oo1fpq_resultGroupChip{background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);border:1px solid var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-label-primary,#1f2328);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.Oo1fpq_resultGroupError{color:var(--dsw-alias-state-error-primary,#dc2626);font-size:12px}.Oo1fpq_resultGroupCount{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:11px}.Oo1fpq_overrideTable{flex-direction:column;gap:6px;display:flex}.Oo1fpq_overrideRow{align-items:center;gap:6px;display:flex}.Oo1fpq_overrideCell{min-width:0;color:var(--dsw-alias-label-secondary,#6b7280);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}.Oo1fpq_overrideCell .Oo1fpq_input{min-height:30px;padding:5px 8px}.Oo1fpq_overrideCellHead{color:var(--dsw-alias-label-primary,#1f2328);white-space:normal;font-weight:700}.Oo1fpq_taskList{flex-direction:column;gap:14px;display:flex}.Oo1fpq_taskCard{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-2,#fafafa);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.Oo1fpq_taskCard[data-state=failed]{border-color:var(--dsw-alias-state-error-primary,#dc2626)}.Oo1fpq_taskCard[data-state=cancelled]{opacity:.75}.Oo1fpq_taskHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Oo1fpq_taskLabel{color:var(--dsw-alias-label-primary,#1f2328);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:13px;font-weight:600;overflow:hidden}.Oo1fpq_taskStatus{color:var(--dsw-alias-label-secondary,#6b7280);font-size:12px}.Oo1fpq_taskStatus[data-state=done]{color:var(--dsw-alias-state-success-primary,#16a34a)}.Oo1fpq_taskStatus[data-state=failed]{color:var(--dsw-alias-state-error-primary,#dc2626)}.Oo1fpq_taskActions{gap:6px;margin-left:auto;display:flex}.Oo1fpq_historyTabs{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.Oo1fpq_historyTab{border:1px solid var(--dsw-alias-border-l2,#d1d5db);cursor:pointer;background:var(--dsw-alias-bg-layer-3,#fff);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:999px;padding:3px 10px;font-size:12px}.Oo1fpq_historyTab[data-active=true]{background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);color:var(--dsw-alias-label-primary,#1f2328);font-weight:600}.Oo1fpq_historyTabCount{color:var(--dsw-alias-label-tertiary,#9ca3af);margin-left:4px;font-size:11px}.Oo1fpq_historyCompareSummary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Oo1fpq_historyCompareBadge{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-3,#fff);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.Oo1fpq_historyModelRow{border-top:1px dashed var(--dsw-alias-border-l1,#e5e7eb);flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;display:flex}.Oo1fpq_overrideOnly{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:10px;font-weight:500}.Oo1fpq_overrideDash{color:var(--dsw-alias-label-tertiary,#9ca3af);padding:0 6px}.Oo1fpq_historyTime{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;margin:2px 0;font-size:11px}.Oo1fpq_formSection{letter-spacing:.04em;color:var(--dsw-alias-label-tertiary,#9ca3af);border-bottom:1px solid var(--dsw-alias-border-l1,#e5e7eb);margin:10px 0 2px;padding-bottom:4px;font-size:11px;font-weight:700}.Oo1fpq_formFields{grid-template-columns:1fr 1fr;align-items:end;gap:10px;display:grid}.Oo1fpq_fieldCell{min-width:0}.Oo1fpq_fieldFull{grid-column:1/-1}.Oo1fpq_modeIcon{margin-right:4px;font-size:13px}.Oo1fpq_modeButton[data-active=true]{border-color:var(--dsw-alias-interactive-bg-hover-accent,#26314824);background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);color:var(--dsw-alias-label-primary,#1f2328);font-weight:600}.Oo1fpq_taskBar{background:var(--dsw-alias-border-l1,#e5e7eb);border-radius:999px;flex:1;min-width:60px;height:4px;display:block;overflow:hidden}.Oo1fpq_taskBar i{background:var(--dsw-alias-interactive-bg-hover-accent,#26314859);border-radius:999px;height:100%;transition:width .3s;display:block}.Oo1fpq_historyIcon{width:26px;height:26px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.Oo1fpq_historyIcon:hover{background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);color:var(--dsw-alias-label-primary,#1f2328)}.Oo1fpq_historyIcon[title^=删除]:hover{color:var(--dsw-alias-state-error-primary,#dc2626)}.Oo1fpq_historyPrompt{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.Oo1fpq_input:focus-visible,.Oo1fpq_select:focus-visible,.Oo1fpq_textarea:focus-visible,.Oo1fpq_modeButton:focus-visible,.Oo1fpq_ghostButton:focus-visible,.Oo1fpq_historyAction:focus-visible,.Oo1fpq_historyIcon:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent,#26314859);outline-offset:1px}.Oo1fpq_generate:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent,#26314859);outline-offset:2px}@media (width<=1100px){.Oo1fpq_studio{flex-wrap:wrap}.Oo1fpq_historyCol{width:100%;min-width:0;max-width:none}}@media (width<=720px){.Oo1fpq_formCol{width:100%;min-width:0;max-width:none}.Oo1fpq_resultCol{min-height:320px}}.Oo1fpq_formSectionRow{justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.Oo1fpq_formSectionRow .Oo1fpq_formSection{flex:1}.Oo1fpq_enhanceCard{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#fafafa);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.Oo1fpq_enhanceCardHead{color:var(--dsw-alias-label-secondary,#6b7280);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.Oo1fpq_enhanceActions{gap:6px;display:flex}.Oo1fpq_enhanceActionsRow{justify-content:flex-end;margin-top:-4px;display:flex}";
1162
1178
  const tagId$4 = "dsh-audiogen/audio-panel.module.css";
1163
1179
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
1164
1180
  const tag = document.createElement("style");
@@ -1168,114 +1184,115 @@ window.__ModuleLoader__.load({
1168
1184
  document.head.appendChild(tag);
1169
1185
  }
1170
1186
  var audio_panel_module_css_default = {
1171
- "track": "Oo1fpq_track",
1172
- "trackFill": "Oo1fpq_trackFill",
1173
- "modalFoot": "Oo1fpq_modalFoot",
1174
- "error": "Oo1fpq_error",
1175
- "textarea": "Oo1fpq_textarea",
1176
- "historyItem": "Oo1fpq_historyItem",
1177
- "historyList": "Oo1fpq_historyList",
1178
- "panel": "Oo1fpq_panel",
1179
- "compareBoard": "Oo1fpq_compareBoard",
1180
- "resultGroupHead": "Oo1fpq_resultGroupHead",
1181
- "formRow": "Oo1fpq_formRow",
1182
- "resultGroups": "Oo1fpq_resultGroups",
1183
- "overrideCell": "Oo1fpq_overrideCell",
1184
- "historyTab": "Oo1fpq_historyTab",
1185
- "historyModelRow": "Oo1fpq_historyModelRow",
1186
- "compareChip": "Oo1fpq_compareChip",
1187
- "fieldCell": "Oo1fpq_fieldCell",
1188
- "select": "Oo1fpq_select",
1189
- "resultEmptyHint": "Oo1fpq_resultEmptyHint",
1190
- "historyMeta": "Oo1fpq_historyMeta",
1191
- "playButton": "Oo1fpq_playButton",
1192
- "enhanceActions": "Oo1fpq_enhanceActions",
1193
- "resultModeChip": "Oo1fpq_resultModeChip",
1194
- "audiogenToastIn": "Oo1fpq_audiogenToastIn",
1195
- "header": "Oo1fpq_header",
1196
- "taskHead": "Oo1fpq_taskHead",
1187
+ "modeRow": "Oo1fpq_modeRow",
1188
+ "trackKnob": "Oo1fpq_trackKnob",
1189
+ "enhanceActionsRow": "Oo1fpq_enhanceActionsRow",
1190
+ "player": "Oo1fpq_player",
1191
+ "historyTime": "Oo1fpq_historyTime",
1192
+ "primaryButton": "Oo1fpq_primaryButton",
1193
+ "resultEmpty": "Oo1fpq_resultEmpty",
1197
1194
  "taskList": "Oo1fpq_taskList",
1198
- "tabs": "Oo1fpq_tabs",
1195
+ "modelCheckList": "Oo1fpq_modelCheckList",
1196
+ "modeIcon": "Oo1fpq_modeIcon",
1197
+ "playButton": "Oo1fpq_playButton",
1198
+ "fieldFull": "Oo1fpq_fieldFull",
1199
+ "formSection": "Oo1fpq_formSection",
1200
+ "modeButton": "Oo1fpq_modeButton",
1199
1201
  "tab": "Oo1fpq_tab",
1200
- "generate": "Oo1fpq_generate",
1201
- "resultCol": "Oo1fpq_resultCol",
1202
+ "taskActions": "Oo1fpq_taskActions",
1203
+ "audioCardIndex": "Oo1fpq_audioCardIndex",
1204
+ "resultModeChip": "Oo1fpq_resultModeChip",
1205
+ "audioCard": "Oo1fpq_audioCard",
1206
+ "select": "Oo1fpq_select",
1207
+ "overrideCellHead": "Oo1fpq_overrideCellHead",
1208
+ "formSectionRow": "Oo1fpq_formSectionRow",
1209
+ "historyList": "Oo1fpq_historyList",
1210
+ "muteButton": "Oo1fpq_muteButton",
1202
1211
  "resultEmptyIcon": "Oo1fpq_resultEmptyIcon",
1203
- "historyEmpty": "Oo1fpq_historyEmpty",
1204
- "historyAction": "Oo1fpq_historyAction",
1205
- "hint": "Oo1fpq_hint",
1206
- "historyActions": "Oo1fpq_historyActions",
1207
- "primaryButton": "Oo1fpq_primaryButton",
1212
+ "resultGroups": "Oo1fpq_resultGroups",
1213
+ "resultGroupChip": "Oo1fpq_resultGroupChip",
1214
+ "taskCard": "Oo1fpq_taskCard",
1215
+ "compareChips": "Oo1fpq_compareChips",
1216
+ "ghostButton": "Oo1fpq_ghostButton",
1217
+ "historyHeader": "Oo1fpq_historyHeader",
1208
1218
  "iconButton": "Oo1fpq_iconButton",
1209
- "audioCardActions": "Oo1fpq_audioCardActions",
1219
+ "trackFill": "Oo1fpq_trackFill",
1220
+ "textarea": "Oo1fpq_textarea",
1221
+ "historyCol": "Oo1fpq_historyCol",
1222
+ "overrideCell": "Oo1fpq_overrideCell",
1223
+ "resultGroupError": "Oo1fpq_resultGroupError",
1210
1224
  "label": "Oo1fpq_label",
1211
- "overrideTable": "Oo1fpq_overrideTable",
1212
- "checkbox": "Oo1fpq_checkbox",
1213
- "muteButton": "Oo1fpq_muteButton",
1225
+ "historyAction": "Oo1fpq_historyAction",
1214
1226
  "historyPrompt": "Oo1fpq_historyPrompt",
1215
- "ghostButton": "Oo1fpq_ghostButton",
1216
- "taskCard": "Oo1fpq_taskCard",
1217
- "player": "Oo1fpq_player",
1227
+ "audioCardHead": "Oo1fpq_audioCardHead",
1228
+ "compareGroup": "Oo1fpq_compareGroup",
1229
+ "voiceIdChip": "Oo1fpq_voiceIdChip",
1230
+ "compareGroupHead": "Oo1fpq_compareGroupHead",
1231
+ "modalFoot": "Oo1fpq_modalFoot",
1232
+ "secondaryButton": "Oo1fpq_secondaryButton",
1233
+ "compareBox": "Oo1fpq_compareBox",
1234
+ "taskHead": "Oo1fpq_taskHead",
1218
1235
  "taskLabel": "Oo1fpq_taskLabel",
1219
- "studio": "Oo1fpq_studio",
1220
- "historyCompareBadge": "Oo1fpq_historyCompareBadge",
1221
- "trackKnob": "Oo1fpq_trackKnob",
1236
+ "header": "Oo1fpq_header",
1237
+ "modalHead": "Oo1fpq_modalHead",
1238
+ "audioCardActions": "Oo1fpq_audioCardActions",
1239
+ "historyCompareSummary": "Oo1fpq_historyCompareSummary",
1222
1240
  "overrideOnly": "Oo1fpq_overrideOnly",
1223
- "historyTitle": "Oo1fpq_historyTitle",
1224
- "taskActions": "Oo1fpq_taskActions",
1225
- "time": "Oo1fpq_time",
1226
- "taskStatus": "Oo1fpq_taskStatus",
1227
- "resultGroup": "Oo1fpq_resultGroup",
1228
- "historyTime": "Oo1fpq_historyTime",
1241
+ "overrideDash": "Oo1fpq_overrideDash",
1242
+ "enhanceCardHead": "Oo1fpq_enhanceCardHead",
1243
+ "panel": "Oo1fpq_panel",
1244
+ "compareState": "Oo1fpq_compareState",
1229
1245
  "formFields": "Oo1fpq_formFields",
1230
- "fieldFull": "Oo1fpq_fieldFull",
1231
- "enhanceCard": "Oo1fpq_enhanceCard",
1232
1246
  "savedChip": "Oo1fpq_savedChip",
1233
- "formCol": "Oo1fpq_formCol",
1234
- "historyIcon": "Oo1fpq_historyIcon",
1235
- "resultGroupCount": "Oo1fpq_resultGroupCount",
1236
- "historyTabs": "Oo1fpq_historyTabs",
1237
1247
  "taskBar": "Oo1fpq_taskBar",
1238
- "enhanceCardHead": "Oo1fpq_enhanceCardHead",
1239
- "modal": "Oo1fpq_modal",
1240
- "modeButton": "Oo1fpq_modeButton",
1241
- "audioCardHead": "Oo1fpq_audioCardHead",
1242
- "resultEmpty": "Oo1fpq_resultEmpty",
1243
- "resultMeta": "Oo1fpq_resultMeta",
1244
- "audioList": "Oo1fpq_audioList",
1245
- "modelCheckList": "Oo1fpq_modelCheckList",
1248
+ "studio": "Oo1fpq_studio",
1249
+ "advanced": "Oo1fpq_advanced",
1250
+ "checkbox": "Oo1fpq_checkbox",
1251
+ "historyClear": "Oo1fpq_historyClear",
1252
+ "modalMask": "Oo1fpq_modalMask",
1246
1253
  "overrideRow": "Oo1fpq_overrideRow",
1247
- "modalHead": "Oo1fpq_modalHead",
1248
- "title": "Oo1fpq_title",
1249
- "compareState": "Oo1fpq_compareState",
1250
- "resultGroupError": "Oo1fpq_resultGroupError",
1251
- "modeRow": "Oo1fpq_modeRow",
1254
+ "row": "Oo1fpq_row",
1255
+ "resultEmptyHint": "Oo1fpq_resultEmptyHint",
1252
1256
  "input": "Oo1fpq_input",
1257
+ "historyEmpty": "Oo1fpq_historyEmpty",
1258
+ "formRow": "Oo1fpq_formRow",
1259
+ "historyCompareBadge": "Oo1fpq_historyCompareBadge",
1253
1260
  "playerCompact": "Oo1fpq_playerCompact",
1254
- "row": "Oo1fpq_row",
1255
- "historyHeader": "Oo1fpq_historyHeader",
1256
- "audioCard": "Oo1fpq_audioCard",
1257
- "historyCompareSummary": "Oo1fpq_historyCompareSummary",
1258
- "compareGroup": "Oo1fpq_compareGroup",
1261
+ "hint": "Oo1fpq_hint",
1262
+ "compareModelName": "Oo1fpq_compareModelName",
1259
1263
  "historyTabCount": "Oo1fpq_historyTabCount",
1260
- "formSectionRow": "Oo1fpq_formSectionRow",
1261
- "voiceIdChip": "Oo1fpq_voiceIdChip",
1262
- "formSection": "Oo1fpq_formSection",
1263
- "historyCol": "Oo1fpq_historyCol",
1264
- "audioCardIndex": "Oo1fpq_audioCardIndex",
1265
- "compareBox": "Oo1fpq_compareBox",
1266
- "compareGroupHead": "Oo1fpq_compareGroupHead",
1267
- "modalMask": "Oo1fpq_modalMask",
1264
+ "historyIcon": "Oo1fpq_historyIcon",
1268
1265
  "modalBody": "Oo1fpq_modalBody",
1266
+ "modal": "Oo1fpq_modal",
1267
+ "tabs": "Oo1fpq_tabs",
1268
+ "resultGroup": "Oo1fpq_resultGroup",
1269
+ "taskStatus": "Oo1fpq_taskStatus",
1270
+ "historyActions": "Oo1fpq_historyActions",
1271
+ "generate": "Oo1fpq_generate",
1272
+ "compareBoard": "Oo1fpq_compareBoard",
1273
+ "error": "Oo1fpq_error",
1274
+ "historyTabs": "Oo1fpq_historyTabs",
1275
+ "formCol": "Oo1fpq_formCol",
1276
+ "historyItem": "Oo1fpq_historyItem",
1277
+ "historyTitle": "Oo1fpq_historyTitle",
1278
+ "historyTab": "Oo1fpq_historyTab",
1279
+ "overrideTable": "Oo1fpq_overrideTable",
1269
1280
  "toast": "Oo1fpq_toast",
1270
- "historyClear": "Oo1fpq_historyClear",
1271
- "secondaryButton": "Oo1fpq_secondaryButton",
1272
- "overrideCellHead": "Oo1fpq_overrideCellHead",
1273
- "compareChips": "Oo1fpq_compareChips",
1274
- "overrideDash": "Oo1fpq_overrideDash",
1275
- "advanced": "Oo1fpq_advanced",
1276
- "resultGroupChip": "Oo1fpq_resultGroupChip",
1277
- "modeIcon": "Oo1fpq_modeIcon",
1278
- "compareModelName": "Oo1fpq_compareModelName"
1281
+ "enhanceCard": "Oo1fpq_enhanceCard",
1282
+ "time": "Oo1fpq_time",
1283
+ "title": "Oo1fpq_title",
1284
+ "historyMeta": "Oo1fpq_historyMeta",
1285
+ "resultGroupHead": "Oo1fpq_resultGroupHead",
1286
+ "historyModelRow": "Oo1fpq_historyModelRow",
1287
+ "resultMeta": "Oo1fpq_resultMeta",
1288
+ "audioList": "Oo1fpq_audioList",
1289
+ "compareChip": "Oo1fpq_compareChip",
1290
+ "fieldCell": "Oo1fpq_fieldCell",
1291
+ "audiogenToastIn": "Oo1fpq_audiogenToastIn",
1292
+ "track": "Oo1fpq_track",
1293
+ "enhanceActions": "Oo1fpq_enhanceActions",
1294
+ "resultGroupCount": "Oo1fpq_resultGroupCount",
1295
+ "resultCol": "Oo1fpq_resultCol"
1279
1296
  };
1280
1297
  //#endregion
1281
1298
  //#region src/client/audio-player.tsx
@@ -1588,6 +1605,19 @@ window.__ModuleLoader__.load({
1588
1605
  * plus a model-comparison mode that runs the same prompt across several
1589
1606
  * models and shows one result group per model.
1590
1607
  */
1608
+ /**
1609
+ * 模型是否适用于当前模式。
1610
+ * - stable-audio-*(Stable Audio 系列):官方 text-to-audio 协议对音乐与音效是同一接口,
1611
+ * 因此同时适用于「音乐生成」与「音效生成」;官方不支持 TTS(语音合成),故不出现在 TTS。
1612
+ * - 其余模型:按设置中的分类(category)匹配,auto(未分类)适用于全部模式。
1613
+ */
1614
+ function modelSuitableForMode(entry, mode) {
1615
+ if (mode === "voice_design") return false;
1616
+ if (/^stable-audio-/i.test(entry.alias)) return mode === "music" || mode === "sfx";
1617
+ if (entry.category === void 0) return true;
1618
+ if (entry.category === mode) return true;
1619
+ return entry.category === "tts" && mode === "tts";
1620
+ }
1591
1621
  /** 每模型覆盖值 → 请求字段的数值/类型转换(空值跳过)。 */
1592
1622
  function overrideSpread(override) {
1593
1623
  const out = {};
@@ -1723,7 +1753,21 @@ window.__ModuleLoader__.load({
1723
1753
  return channel.apiUrl.trim() !== "" && keyHeld && (channel.models.length > 0 || channel.preset === "minimax");
1724
1754
  });
1725
1755
  const [mode, setMode] = (0, react.useState)("tts");
1726
- const [prompt, setPrompt] = (0, react.useState)("");
1756
+ /** 每个模式独立的输入内容(TTS 文本 / 音乐·音效提示词 / 音色描述),切模式互不干扰。 */
1757
+ const [promptByMode, setPromptByMode] = (0, react.useState)({
1758
+ tts: "",
1759
+ music: "",
1760
+ sfx: "",
1761
+ voice_design: ""
1762
+ });
1763
+ const prompt = promptByMode[mode] ?? "";
1764
+ const setPrompt = (next) => {
1765
+ const target = mode;
1766
+ setPromptByMode((current) => current[target] === next ? current : {
1767
+ ...current,
1768
+ [target]: next
1769
+ });
1770
+ };
1727
1771
  const [previewText, setPreviewText] = (0, react.useState)("");
1728
1772
  const [model, setModel] = (0, react.useState)("");
1729
1773
  const [voice, setVoice] = (0, react.useState)("");
@@ -1744,6 +1788,9 @@ window.__ModuleLoader__.load({
1744
1788
  const [subtitle, setSubtitle] = (0, react.useState)(false);
1745
1789
  const [enhancing, setEnhancing] = (0, react.useState)(false);
1746
1790
  const [enhancePreview, setEnhancePreview] = (0, react.useState)(null);
1791
+ (0, react.useEffect)(() => {
1792
+ setEnhancePreview(null);
1793
+ }, [mode]);
1747
1794
  const [seed, setSeed] = (0, react.useState)("");
1748
1795
  const [steps, setSteps] = (0, react.useState)("");
1749
1796
  const [cfgScale, setCfgScale] = (0, react.useState)("");
@@ -1777,7 +1824,7 @@ window.__ModuleLoader__.load({
1777
1824
  ]);
1778
1825
  const visibleModels = (0, react.useMemo)(() => {
1779
1826
  if (mode === "voice_design") return [];
1780
- return modelOptions.models.filter((entry) => entry.category === void 0 || entry.category === "tts" && mode === "tts" || entry.category === mode).map((entry) => entry.alias);
1827
+ return modelOptions.models.filter((entry) => modelSuitableForMode(entry, mode)).map((entry) => entry.alias);
1781
1828
  }, [modelOptions.models, mode]);
1782
1829
  const currentPreset = (0, react.useMemo)(() => {
1783
1830
  if (mode === "voice_design") return channels.find((candidate) => candidate.id === designChannelId)?.preset ?? "";
@@ -2072,6 +2119,11 @@ window.__ModuleLoader__.load({
2072
2119
  };
2073
2120
  const bool = (key) => typeof params[key] === "boolean" ? params[key] : void 0;
2074
2121
  setMode(modeValue);
2122
+ const promptValue = str("prompt");
2123
+ if (promptValue !== void 0) setPromptByMode((current) => current[modeValue] === promptValue ? current : {
2124
+ ...current,
2125
+ [modeValue]: promptValue
2126
+ });
2075
2127
  const modelValue = str("model") ?? singleModel;
2076
2128
  if (modelValue !== "") setModel(modelValue);
2077
2129
  if (compareModelsRestore !== void 0 && compareModelsRestore.length > 0) {
@@ -2131,11 +2183,11 @@ window.__ModuleLoader__.load({
2131
2183
  setError(null);
2132
2184
  try {
2133
2185
  const result = await api.enhancePrompt(prompt.trim(), mode);
2134
- if (result.ok !== true || result.enhanced === void 0) {
2186
+ if (result.ok !== true || result.enhanced === void 0 || result.enhanced.trim() === "") {
2135
2187
  setError(result.message ?? "增强失败,请稍后重试");
2136
2188
  return;
2137
2189
  }
2138
- setEnhancePreview(result.enhanced);
2190
+ setEnhancePreview(result.enhanced.trim());
2139
2191
  } catch (err) {
2140
2192
  setError(err instanceof Error ? err.message : String(err));
2141
2193
  } finally {
@@ -2522,6 +2574,8 @@ window.__ModuleLoader__.load({
2522
2574
  }, [entries]);
2523
2575
  const needModel = mode !== "voice_design";
2524
2576
  const runningCount = tasks.filter((task) => task.status === "running").length;
2577
+ /** 结果列只显示当前模式的任务(历史面板已按模式分组)。 */
2578
+ const visibleTasks = (0, react.useMemo)(() => tasks.filter((task) => task.mode === mode), [tasks, mode]);
2525
2579
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2526
2580
  className: audio_panel_module_css_default.studio,
2527
2581
  children: [
@@ -2546,18 +2600,9 @@ window.__ModuleLoader__.load({
2546
2600
  }), modeLabelOf(item)]
2547
2601
  }, item))
2548
2602
  }),
2549
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2550
- className: audio_panel_module_css_default.formSectionRow,
2551
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
2552
- className: audio_panel_module_css_default.formSection,
2553
- children: "输入"
2554
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
2555
- type: "button",
2556
- className: audio_panel_module_css_default.ghostButton,
2557
- disabled: enhancing,
2558
- onClick: () => void runEnhance(),
2559
- children: enhancing ? "增强中…" : "✨ 增强提示词"
2560
- })]
2603
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
2604
+ className: audio_panel_module_css_default.formSection,
2605
+ children: "输入"
2561
2606
  }),
2562
2607
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
2563
2608
  className: audio_panel_module_css_default.label,
@@ -2568,6 +2613,16 @@ window.__ModuleLoader__.load({
2568
2613
  placeholder: tt("prompt.placeholder")
2569
2614
  })]
2570
2615
  }),
2616
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2617
+ className: audio_panel_module_css_default.enhanceActionsRow,
2618
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
2619
+ type: "button",
2620
+ className: audio_panel_module_css_default.ghostButton,
2621
+ disabled: enhancing,
2622
+ onClick: () => void runEnhance(),
2623
+ children: enhancing ? "增强中…" : "✨ 增强提示词"
2624
+ })
2625
+ }),
2571
2626
  enhancePreview !== null ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2572
2627
  className: audio_panel_module_css_default.enhanceCard,
2573
2628
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -2762,7 +2817,7 @@ window.__ModuleLoader__.load({
2762
2817
  label: group.channelName,
2763
2818
  children: group.models.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
2764
2819
  value: item.alias,
2765
- children: item.alias
2820
+ children: /^stable-audio-/i.test(item.alias) ? `${item.alias} · 音乐/音效` : item.alias
2766
2821
  }, item.alias))
2767
2822
  }, group.channelId))]
2768
2823
  })]
@@ -2817,7 +2872,7 @@ window.__ModuleLoader__.load({
2817
2872
  children: [error !== null ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
2818
2873
  className: audio_panel_module_css_default.error,
2819
2874
  children: error
2820
- }) : null, tasks.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2875
+ }) : null, visibleTasks.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2821
2876
  className: audio_panel_module_css_default.resultEmpty,
2822
2877
  children: [
2823
2878
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
@@ -2845,7 +2900,7 @@ window.__ModuleLoader__.load({
2845
2900
  ]
2846
2901
  }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2847
2902
  className: audio_panel_module_css_default.taskList,
2848
- children: tasks.map((task) => {
2903
+ children: visibleTasks.map((task) => {
2849
2904
  const elapsed = task.finishedAt !== void 0 ? Math.round((task.finishedAt - task.startedAt) / 1e3) : Math.round((Date.now() - task.startedAt) / 1e3);
2850
2905
  const statusText = task.status === "running" ? `生成中 ${task.progress.done}/${task.progress.total}${task.progress.current !== "" ? ` · ${task.progress.current}` : ""} · ${elapsed}s` : task.status === "done" ? `完成 · ${task.groups.reduce((sum, group) => sum + group.outputs.length, 0)} 段 · ${elapsed}s` : task.status === "cancelled" ? "已取消" : "失败";
2851
2906
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -3117,62 +3172,62 @@ window.__ModuleLoader__.load({
3117
3172
  document.head.appendChild(tag);
3118
3173
  }
3119
3174
  var library_module_css_default = {
3120
- "empty": "vzUV2a_empty",
3121
- "drawerTitle": "vzUV2a_drawerTitle",
3122
- "drawerPlayer": "vzUV2a_drawerPlayer",
3123
- "dangerBtn": "vzUV2a_dangerBtn",
3124
- "emptyIcon": "vzUV2a_emptyIcon",
3125
- "drawerLabel": "vzUV2a_drawerLabel",
3126
- "drawerSplit": "vzUV2a_drawerSplit",
3127
- "listCount": "vzUV2a_listCount",
3128
- "input": "vzUV2a_input",
3129
- "primaryBtn": "vzUV2a_primaryBtn",
3130
- "card": "vzUV2a_card",
3131
- "typeBadge": "vzUV2a_typeBadge",
3132
- "cardFoot": "vzUV2a_cardFoot",
3133
- "iconBtn": "vzUV2a_iconBtn",
3134
- "code": "vzUV2a_code",
3135
- "typeChips": "vzUV2a_typeChips",
3136
- "chipCount": "vzUV2a_chipCount",
3137
- "cardTime": "vzUV2a_cardTime",
3175
+ "drawerPlayerName": "vzUV2a_drawerPlayerName",
3176
+ "stateNote": "vzUV2a_stateNote",
3138
3177
  "cardName": "vzUV2a_cardName",
3139
- "listHead": "vzUV2a_listHead",
3140
- "audiogenDrawerIn": "vzUV2a_audiogenDrawerIn",
3141
- "drawerBody": "vzUV2a_drawerBody",
3142
3178
  "filterLabel": "vzUV2a_filterLabel",
3143
- "stateNote": "vzUV2a_stateNote",
3144
- "drawerMask": "vzUV2a_drawerMask",
3145
- "paramsDetails": "vzUV2a_paramsDetails",
3179
+ "audiogenDrawerIn": "vzUV2a_audiogenDrawerIn",
3180
+ "cardTime": "vzUV2a_cardTime",
3146
3181
  "drawerSection": "vzUV2a_drawerSection",
3147
- "ghostBtn": "vzUV2a_ghostBtn",
3148
- "cardCheck": "vzUV2a_cardCheck",
3149
- "drawerPlayerName": "vzUV2a_drawerPlayerName",
3150
3182
  "textarea": "vzUV2a_textarea",
3151
- "metaChip": "vzUV2a_metaChip",
3152
- "provenance": "vzUV2a_provenance",
3153
- "library": "vzUV2a_library",
3154
- "searchBox": "vzUV2a_searchBox",
3155
- "chip": "vzUV2a_chip",
3156
- "provRow": "vzUV2a_provRow",
3157
- "provKey": "vzUV2a_provKey",
3158
3183
  "provValue": "vzUV2a_provValue",
3159
- "cardHead": "vzUV2a_cardHead",
3160
- "smallChip": "vzUV2a_smallChip",
3161
- "drawer": "vzUV2a_drawer",
3162
- "mono": "vzUV2a_mono",
3163
- "drawerField": "vzUV2a_drawerField",
3164
- "selCount": "vzUV2a_selCount",
3165
- "promptText": "vzUV2a_promptText",
3166
3184
  "drawerActions": "vzUV2a_drawerActions",
3167
- "drawerHead": "vzUV2a_drawerHead",
3185
+ "searchBox": "vzUV2a_searchBox",
3186
+ "chipCount": "vzUV2a_chipCount",
3187
+ "listHead": "vzUV2a_listHead",
3188
+ "listCount": "vzUV2a_listCount",
3168
3189
  "drawerPlayerList": "vzUV2a_drawerPlayerList",
3169
- "smallSelect": "vzUV2a_smallSelect",
3170
- "listActions": "vzUV2a_listActions",
3171
- "grid": "vzUV2a_grid",
3172
- "emptyHint": "vzUV2a_emptyHint",
3190
+ "drawerSplit": "vzUV2a_drawerSplit",
3191
+ "provKey": "vzUV2a_provKey",
3192
+ "drawerMask": "vzUV2a_drawerMask",
3193
+ "filterRow": "vzUV2a_filterRow",
3194
+ "cardHead": "vzUV2a_cardHead",
3195
+ "listActions": "vzUV2a_listActions",
3196
+ "emptyIcon": "vzUV2a_emptyIcon",
3197
+ "card": "vzUV2a_card",
3198
+ "chip": "vzUV2a_chip",
3199
+ "dangerBtn": "vzUV2a_dangerBtn",
3200
+ "drawerField": "vzUV2a_drawerField",
3201
+ "code": "vzUV2a_code",
3202
+ "cardFoot": "vzUV2a_cardFoot",
3203
+ "selCount": "vzUV2a_selCount",
3204
+ "smallChip": "vzUV2a_smallChip",
3205
+ "empty": "vzUV2a_empty",
3206
+ "typeChips": "vzUV2a_typeChips",
3207
+ "smallSelect": "vzUV2a_smallSelect",
3173
3208
  "searchInput": "vzUV2a_searchInput",
3209
+ "ghostBtn": "vzUV2a_ghostBtn",
3210
+ "cardCheck": "vzUV2a_cardCheck",
3211
+ "typeBadge": "vzUV2a_typeBadge",
3212
+ "mono": "vzUV2a_mono",
3213
+ "promptText": "vzUV2a_promptText",
3214
+ "grid": "vzUV2a_grid",
3215
+ "primaryBtn": "vzUV2a_primaryBtn",
3216
+ "iconBtn": "vzUV2a_iconBtn",
3174
3217
  "toolbar": "vzUV2a_toolbar",
3175
- "filterRow": "vzUV2a_filterRow"
3218
+ "input": "vzUV2a_input",
3219
+ "drawerPlayer": "vzUV2a_drawerPlayer",
3220
+ "emptyHint": "vzUV2a_emptyHint",
3221
+ "provenance": "vzUV2a_provenance",
3222
+ "drawer": "vzUV2a_drawer",
3223
+ "drawerHead": "vzUV2a_drawerHead",
3224
+ "metaChip": "vzUV2a_metaChip",
3225
+ "drawerTitle": "vzUV2a_drawerTitle",
3226
+ "drawerBody": "vzUV2a_drawerBody",
3227
+ "drawerLabel": "vzUV2a_drawerLabel",
3228
+ "provRow": "vzUV2a_provRow",
3229
+ "library": "vzUV2a_library",
3230
+ "paramsDetails": "vzUV2a_paramsDetails"
3176
3231
  };
3177
3232
  //#endregion
3178
3233
  //#region src/client/library-view.tsx
@@ -4045,167 +4100,167 @@ window.__ModuleLoader__.load({
4045
4100
  document.head.appendChild(tag);
4046
4101
  }
4047
4102
  var panel_module_css_default = {
4048
- "galleryCount": "rwa6qG_galleryCount",
4049
- "historyMain": "rwa6qG_historyMain",
4050
- "download": "rwa6qG_download",
4051
- "lightboxIndex": "rwa6qG_lightboxIndex",
4103
+ "entry": "rwa6qG_entry",
4104
+ "taskPrompt": "rwa6qG_taskPrompt",
4105
+ "galleryFilterHeading": "rwa6qG_galleryFilterHeading",
4106
+ "galleryRemove": "rwa6qG_galleryRemove",
4107
+ "zoomHint": "rwa6qG_zoomHint",
4108
+ "canvasError": "rwa6qG_canvasError",
4109
+ "configGuideBody": "rwa6qG_configGuideBody",
4110
+ "historyEmpty": "rwa6qG_historyEmpty",
4111
+ "historyAction": "rwa6qG_historyAction",
4112
+ "footer": "rwa6qG_footer",
4113
+ "galleryFilterDivider": "rwa6qG_galleryFilterDivider",
4114
+ "gallerySelectMode": "rwa6qG_gallerySelectMode",
4115
+ "galleryFilter": "rwa6qG_galleryFilter",
4052
4116
  "history": "rwa6qG_history",
4053
- "reference": "rwa6qG_reference",
4054
- "generateButton": "rwa6qG_generateButton",
4055
- "galleryTagFilterList": "rwa6qG_galleryTagFilterList",
4056
- "galleryCard": "rwa6qG_galleryCard",
4117
+ "lightboxMeta": "rwa6qG_lightboxMeta",
4118
+ "galleryImage": "rwa6qG_galleryImage",
4057
4119
  "galleryCardFooter": "rwa6qG_galleryCardFooter",
4058
- "hiddenFile": "rwa6qG_hiddenFile",
4059
- "galleryFilterHeading": "rwa6qG_galleryFilterHeading",
4060
- "galleryToolbarActions": "rwa6qG_galleryToolbarActions",
4061
- "historyThumbPlaceholder": "rwa6qG_historyThumbPlaceholder",
4120
+ "canvas": "rwa6qG_canvas",
4121
+ "imageCard": "rwa6qG_imageCard",
4122
+ "taskTrayToggle": "rwa6qG_taskTrayToggle",
4123
+ "lightbox": "rwa6qG_lightbox",
4124
+ "dshImageGenToastIn": "rwa6qG_dshImageGenToastIn",
4125
+ "comparisonGrid": "rwa6qG_comparisonGrid",
4126
+ "uploadBox": "rwa6qG_uploadBox",
4127
+ "modelMenu": "rwa6qG_modelMenu",
4128
+ "gallerySelect": "rwa6qG_gallerySelect",
4129
+ "taskTrayChevron": "rwa6qG_taskTrayChevron",
4130
+ "historyFilters": "rwa6qG_historyFilters",
4062
4131
  "modeRow": "rwa6qG_modeRow",
4063
- "galleryViewToggle": "rwa6qG_galleryViewToggle",
4064
- "configGuide": "rwa6qG_configGuide",
4065
- "uploadHint": "rwa6qG_uploadHint",
4066
- "galleryFilterDivider": "rwa6qG_galleryFilterDivider",
4067
- "taskTrayCount": "rwa6qG_taskTrayCount",
4132
+ "download": "rwa6qG_download",
4133
+ "lightboxClose": "rwa6qG_lightboxClose",
4134
+ "lightboxScaleFrame": "rwa6qG_lightboxScaleFrame",
4135
+ "galleryFilterCount": "rwa6qG_galleryFilterCount",
4136
+ "githubLink": "rwa6qG_githubLink",
4068
4137
  "lightboxTools": "rwa6qG_lightboxTools",
4069
- "taskStatus": "rwa6qG_taskStatus",
4070
- "lightboxStage": "rwa6qG_lightboxStage",
4071
- "comparisonGrid": "rwa6qG_comparisonGrid",
4072
- "taskTrayClose": "rwa6qG_taskTrayClose",
4073
- "comparisonImageButton": "rwa6qG_comparisonImageButton",
4074
- "galleryAvatar": "rwa6qG_galleryAvatar",
4075
- "zoomHint": "rwa6qG_zoomHint",
4076
- "galleryTags": "rwa6qG_galleryTags",
4077
- "lightboxZoomLevel": "rwa6qG_lightboxZoomLevel",
4078
4138
  "galleryRatioList": "rwa6qG_galleryRatioList",
4079
- "galleryHeading": "rwa6qG_galleryHeading",
4080
- "galleryMasonry": "rwa6qG_galleryMasonry",
4081
- "galleryFilterNote": "rwa6qG_galleryFilterNote",
4082
- "galleryCardInfo": "rwa6qG_galleryCardInfo",
4083
- "lightboxCaptionRow": "rwa6qG_lightboxCaptionRow",
4084
- "historyEmpty": "rwa6qG_historyEmpty",
4085
- "entryIcon": "rwa6qG_entryIcon",
4086
- "modelLabel": "rwa6qG_modelLabel",
4139
+ "studio": "rwa6qG_studio",
4140
+ "canvasState": "rwa6qG_canvasState",
4087
4141
  "optionGrid": "rwa6qG_optionGrid",
4088
- "compareControl": "rwa6qG_compareControl",
4089
- "paramLabel": "rwa6qG_paramLabel",
4090
- "galleryToast": "rwa6qG_galleryToast",
4091
- "canvas": "rwa6qG_canvas",
4092
- "lightboxDownload": "rwa6qG_lightboxDownload",
4093
- "uploadIcon": "rwa6qG_uploadIcon",
4142
+ "lightboxCopy": "rwa6qG_lightboxCopy",
4143
+ "lightboxActions": "rwa6qG_lightboxActions",
4094
4144
  "spinner": "rwa6qG_spinner",
4095
- "entryLabel": "rwa6qG_entryLabel",
4096
- "templatesButton": "rwa6qG_templatesButton",
4097
- "referenceActions": "rwa6qG_referenceActions",
4098
- "canvasEmptyIcon": "rwa6qG_canvasEmptyIcon",
4099
- "dshImageGenSpin": "rwa6qG_dshImageGenSpin",
4100
- "config": "rwa6qG_config",
4101
- "updateBanner": "rwa6qG_updateBanner",
4102
- "taskPrompt": "rwa6qG_taskPrompt",
4103
- "historyAction": "rwa6qG_historyAction",
4104
- "githubLink": "rwa6qG_githubLink",
4105
- "historyClear": "rwa6qG_historyClear",
4106
- "historyInfo": "rwa6qG_historyInfo",
4107
- "modelMenuItem": "rwa6qG_modelMenuItem",
4108
- "galleryTagFilter": "rwa6qG_galleryTagFilter",
4109
- "canvasStateHint": "rwa6qG_canvasStateHint",
4110
- "modelMenuList": "rwa6qG_modelMenuList",
4111
- "gallerySort": "rwa6qG_gallerySort",
4112
- "imageCaption": "rwa6qG_imageCaption",
4145
+ "historyThumb": "rwa6qG_historyThumb",
4146
+ "lightboxImage": "rwa6qG_lightboxImage",
4147
+ "grid": "rwa6qG_grid",
4148
+ "hiddenFile": "rwa6qG_hiddenFile",
4149
+ "paramHint": "rwa6qG_paramHint",
4150
+ "image": "rwa6qG_image",
4151
+ "galleryWorkspace": "rwa6qG_galleryWorkspace",
4152
+ "galleryAvatar": "rwa6qG_galleryAvatar",
4113
4153
  "taskRows": "rwa6qG_taskRows",
4114
- "lightboxCaption": "rwa6qG_lightboxCaption",
4115
- "dshImageGenToastIn": "rwa6qG_dshImageGenToastIn",
4116
- "taskRow": "rwa6qG_taskRow",
4117
- "galleryFilter": "rwa6qG_galleryFilter",
4154
+ "lightboxCaptionRow": "rwa6qG_lightboxCaptionRow",
4155
+ "lightboxZoomLevel": "rwa6qG_lightboxZoomLevel",
4156
+ "compareModelChoices": "rwa6qG_compareModelChoices",
4157
+ "compareToggle": "rwa6qG_compareToggle",
4158
+ "optionRow": "rwa6qG_optionRow",
4118
4159
  "gallerySelectionBar": "rwa6qG_gallerySelectionBar",
4119
- "lightboxScaleFrame": "rwa6qG_lightboxScaleFrame",
4120
- "image": "rwa6qG_image",
4160
+ "paramGroup": "rwa6qG_paramGroup",
4161
+ "galleryCard": "rwa6qG_galleryCard",
4162
+ "historyList": "rwa6qG_historyList",
4163
+ "historySearch": "rwa6qG_historySearch",
4121
4164
  "lightboxFigure": "rwa6qG_lightboxFigure",
4122
- "studio": "rwa6qG_studio",
4123
- "updateActions": "rwa6qG_updateActions",
4124
- "galleryTagEditor": "rwa6qG_galleryTagEditor",
4125
- "panelHeading": "rwa6qG_panelHeading",
4126
- "galleryToolbar": "rwa6qG_galleryToolbar",
4127
- "lightbox": "rwa6qG_lightbox",
4165
+ "galleryViewToggle": "rwa6qG_galleryViewToggle",
4166
+ "modelLabel": "rwa6qG_modelLabel",
4167
+ "panelHeader": "rwa6qG_panelHeader",
4128
4168
  "connectionStatus": "rwa6qG_connectionStatus",
4169
+ "uploadHint": "rwa6qG_uploadHint",
4170
+ "updateText": "rwa6qG_updateText",
4171
+ "configGuide": "rwa6qG_configGuide",
4172
+ "lightboxIndex": "rwa6qG_lightboxIndex",
4173
+ "lightboxEdit": "rwa6qG_lightboxEdit",
4174
+ "entryIcon": "rwa6qG_entryIcon",
4175
+ "galleryImageButton": "rwa6qG_galleryImageButton",
4176
+ "taskStatus": "rwa6qG_taskStatus",
4177
+ "galleryTagFilter": "rwa6qG_galleryTagFilter",
4178
+ "galleryHeading": "rwa6qG_galleryHeading",
4179
+ "historyTitle": "rwa6qG_historyTitle",
4180
+ "historyMain": "rwa6qG_historyMain",
4181
+ "modelMenuList": "rwa6qG_modelMenuList",
4182
+ "comparisonBoard": "rwa6qG_comparisonBoard",
4183
+ "canvasStateHint": "rwa6qG_canvasStateHint",
4184
+ "uploadIcon": "rwa6qG_uploadIcon",
4185
+ "connectionDot": "rwa6qG_connectionDot",
4186
+ "historyInfo": "rwa6qG_historyInfo",
4187
+ "panelTitle": "rwa6qG_panelTitle",
4188
+ "taskTrayClose": "rwa6qG_taskTrayClose",
4189
+ "modelWrap": "rwa6qG_modelWrap",
4190
+ "galleryAdd": "rwa6qG_galleryAdd",
4191
+ "lightboxStage": "rwa6qG_lightboxStage",
4192
+ "gallerySort": "rwa6qG_gallerySort",
4193
+ "galleryToolbarActions": "rwa6qG_galleryToolbarActions",
4194
+ "galleryClear": "rwa6qG_galleryClear",
4195
+ "compareControl": "rwa6qG_compareControl",
4196
+ "comparisonImageButton": "rwa6qG_comparisonImageButton",
4197
+ "paramLabel": "rwa6qG_paramLabel",
4198
+ "bigSpinner": "rwa6qG_bigSpinner",
4199
+ "historyItem": "rwa6qG_historyItem",
4200
+ "lightboxCaption": "rwa6qG_lightboxCaption",
4201
+ "configScroll": "rwa6qG_configScroll",
4202
+ "comparisonFullscreenGrid": "rwa6qG_comparisonFullscreenGrid",
4203
+ "galleryToast": "rwa6qG_galleryToast",
4204
+ "reference": "rwa6qG_reference",
4205
+ "galleryCount": "rwa6qG_galleryCount",
4206
+ "historyClear": "rwa6qG_historyClear",
4207
+ "historyMeta": "rwa6qG_historyMeta",
4208
+ "galleryTagFilterList": "rwa6qG_galleryTagFilterList",
4209
+ "taskTray": "rwa6qG_taskTray",
4210
+ "enhanceButton": "rwa6qG_enhanceButton",
4211
+ "galleryFilters": "rwa6qG_galleryFilters",
4129
4212
  "gallerySelectionClear": "rwa6qG_gallerySelectionClear",
4130
- "updateRelease": "rwa6qG_updateRelease",
4213
+ "galleryToolbar": "rwa6qG_galleryToolbar",
4214
+ "optionPill": "rwa6qG_optionPill",
4215
+ "galleryBadge": "rwa6qG_galleryBadge",
4216
+ "generateInner": "rwa6qG_generateInner",
4217
+ "galleryMasonry": "rwa6qG_galleryMasonry",
4218
+ "galleryTagInput": "rwa6qG_galleryTagInput",
4219
+ "galleryTags": "rwa6qG_galleryTags",
4220
+ "entryLabel": "rwa6qG_entryLabel",
4131
4221
  "panel": "rwa6qG_panel",
4222
+ "templatesButton": "rwa6qG_templatesButton",
4223
+ "referenceImage": "rwa6qG_referenceImage",
4224
+ "updateBanner": "rwa6qG_updateBanner",
4225
+ "taskTrayHeader": "rwa6qG_taskTrayHeader",
4132
4226
  "promptCount": "rwa6qG_promptCount",
4133
- "paramGroup": "rwa6qG_paramGroup",
4134
- "historyFilters": "rwa6qG_historyFilters",
4135
- "optionRow": "rwa6qG_optionRow",
4227
+ "canvasEmptyIcon": "rwa6qG_canvasEmptyIcon",
4136
4228
  "historyPrompt": "rwa6qG_historyPrompt",
4137
- "canvasHistoryTag": "rwa6qG_canvasHistoryTag",
4138
- "galleryAdd": "rwa6qG_galleryAdd",
4139
- "comparisonBoard": "rwa6qG_comparisonBoard",
4140
- "grid": "rwa6qG_grid",
4141
- "historyTitle": "rwa6qG_historyTitle",
4142
- "compareToggle": "rwa6qG_compareToggle",
4229
+ "galleryTagEdit": "rwa6qG_galleryTagEdit",
4230
+ "panelHeading": "rwa6qG_panelHeading",
4231
+ "view": "rwa6qG_view",
4232
+ "historyHeader": "rwa6qG_historyHeader",
4233
+ "taskTrayCount": "rwa6qG_taskTrayCount",
4234
+ "taskRow": "rwa6qG_taskRow",
4235
+ "galleryBulkButton": "rwa6qG_galleryBulkButton",
4236
+ "historyThumbPlaceholder": "rwa6qG_historyThumbPlaceholder",
4143
4237
  "lightboxNav": "rwa6qG_lightboxNav",
4144
- "paramHint": "rwa6qG_paramHint",
4145
- "card": "rwa6qG_card",
4146
4238
  "historyActions": "rwa6qG_historyActions",
4147
- "galleryBulkButton": "rwa6qG_galleryBulkButton",
4148
- "gallerySearch": "rwa6qG_gallerySearch",
4149
- "lightboxActions": "rwa6qG_lightboxActions",
4150
- "imageCard": "rwa6qG_imageCard",
4151
- "canvasMeta": "rwa6qG_canvasMeta",
4152
- "galleryRatio": "rwa6qG_galleryRatio",
4153
- "taskTrayHeader": "rwa6qG_taskTrayHeader",
4154
- "lightboxCopy": "rwa6qG_lightboxCopy",
4155
- "taskTrayChevron": "rwa6qG_taskTrayChevron",
4156
- "galleryImageButton": "rwa6qG_galleryImageButton",
4157
- "historyList": "rwa6qG_historyList",
4158
- "entry": "rwa6qG_entry",
4159
- "configScroll": "rwa6qG_configScroll",
4160
- "enhanceButton": "rwa6qG_enhanceButton",
4161
4239
  "canvasStateTitle": "rwa6qG_canvasStateTitle",
4162
- "historyThumb": "rwa6qG_historyThumb",
4163
- "canvasError": "rwa6qG_canvasError",
4164
- "lightboxImage": "rwa6qG_lightboxImage",
4165
- "galleryFilters": "rwa6qG_galleryFilters",
4166
- "historyHeader": "rwa6qG_historyHeader",
4167
- "galleryFilterCount": "rwa6qG_galleryFilterCount",
4168
- "galleryImage": "rwa6qG_galleryImage",
4169
- "historySearch": "rwa6qG_historySearch",
4170
- "configGuideBody": "rwa6qG_configGuideBody",
4240
+ "galleryTagEditor": "rwa6qG_galleryTagEditor",
4241
+ "modePill": "rwa6qG_modePill",
4242
+ "card": "rwa6qG_card",
4243
+ "updateRelease": "rwa6qG_updateRelease",
4171
4244
  "modelSelect": "rwa6qG_modelSelect",
4172
- "promptFooter": "rwa6qG_promptFooter",
4173
- "lightboxMeta": "rwa6qG_lightboxMeta",
4174
- "canvasState": "rwa6qG_canvasState",
4175
- "view": "rwa6qG_view",
4176
- "connectionDot": "rwa6qG_connectionDot",
4177
- "lightboxClose": "rwa6qG_lightboxClose",
4178
- "modelWrap": "rwa6qG_modelWrap",
4245
+ "canvasHistoryTag": "rwa6qG_canvasHistoryTag",
4246
+ "galleryFilterNote": "rwa6qG_galleryFilterNote",
4179
4247
  "lightboxTool": "rwa6qG_lightboxTool",
4180
- "lightboxEdit": "rwa6qG_lightboxEdit",
4181
- "compareModelChoices": "rwa6qG_compareModelChoices",
4182
- "gallerySelect": "rwa6qG_gallerySelect",
4183
- "galleryRemove": "rwa6qG_galleryRemove",
4184
- "optionPill": "rwa6qG_optionPill",
4185
- "galleryBadge": "rwa6qG_galleryBadge",
4186
- "footer": "rwa6qG_footer",
4187
- "galleryWorkspace": "rwa6qG_galleryWorkspace",
4188
- "galleryTagInput": "rwa6qG_galleryTagInput",
4189
- "galleryClear": "rwa6qG_galleryClear",
4248
+ "gallerySearch": "rwa6qG_gallerySearch",
4190
4249
  "comparisonFullscreen": "rwa6qG_comparisonFullscreen",
4191
- "updateText": "rwa6qG_updateText",
4192
- "referenceImage": "rwa6qG_referenceImage",
4193
- "gallerySelectMode": "rwa6qG_gallerySelectMode",
4250
+ "promptFooter": "rwa6qG_promptFooter",
4251
+ "imageCaption": "rwa6qG_imageCaption",
4252
+ "updateActions": "rwa6qG_updateActions",
4253
+ "generateButton": "rwa6qG_generateButton",
4254
+ "galleryRatio": "rwa6qG_galleryRatio",
4255
+ "config": "rwa6qG_config",
4194
4256
  "prompt": "rwa6qG_prompt",
4195
- "galleryTagEdit": "rwa6qG_galleryTagEdit",
4257
+ "modelMenuItem": "rwa6qG_modelMenuItem",
4258
+ "canvasMeta": "rwa6qG_canvasMeta",
4196
4259
  "canvasBody": "rwa6qG_canvasBody",
4197
- "comparisonFullscreenGrid": "rwa6qG_comparisonFullscreenGrid",
4198
- "taskTrayToggle": "rwa6qG_taskTrayToggle",
4199
- "uploadBox": "rwa6qG_uploadBox",
4200
- "modePill": "rwa6qG_modePill",
4201
- "panelTitle": "rwa6qG_panelTitle",
4202
- "modelMenu": "rwa6qG_modelMenu",
4203
- "historyItem": "rwa6qG_historyItem",
4204
- "taskTray": "rwa6qG_taskTray",
4205
- "generateInner": "rwa6qG_generateInner",
4206
- "historyMeta": "rwa6qG_historyMeta",
4207
- "bigSpinner": "rwa6qG_bigSpinner",
4208
- "panelHeader": "rwa6qG_panelHeader"
4260
+ "galleryCardInfo": "rwa6qG_galleryCardInfo",
4261
+ "dshImageGenSpin": "rwa6qG_dshImageGenSpin",
4262
+ "lightboxDownload": "rwa6qG_lightboxDownload",
4263
+ "referenceActions": "rwa6qG_referenceActions"
4209
4264
  };
4210
4265
  //#endregion
4211
4266
  //#region src/client/mount.tsx
@@ -4862,79 +4917,79 @@ window.__ModuleLoader__.load({
4862
4917
  document.head.appendChild(tag);
4863
4918
  }
4864
4919
  var settings_card_module_css_default = {
4865
- "sectionHeader": "zmjoSq_sectionHeader",
4866
- "modelCatalogTitle": "zmjoSq_modelCatalogTitle",
4867
- "save": "zmjoSq_save",
4868
- "readOnly": "zmjoSq_readOnly",
4869
- "channelBadge": "zmjoSq_channelBadge",
4870
- "channelDotWarn": "zmjoSq_channelDotWarn",
4871
- "deleteConfirmText": "zmjoSq_deleteConfirmText",
4920
+ "sectionHint": "zmjoSq_sectionHint",
4921
+ "channelAdd": "zmjoSq_channelAdd",
4922
+ "select": "zmjoSq_select",
4923
+ "linkButton": "zmjoSq_linkButton",
4924
+ "candidate": "zmjoSq_candidate",
4925
+ "editorHeader": "zmjoSq_editorHeader",
4926
+ "detectOk": "zmjoSq_detectOk",
4927
+ "chevron": "zmjoSq_chevron",
4872
4928
  "modelCatalog": "zmjoSq_modelCatalog",
4873
- "customSettings": "zmjoSq_customSettings",
4874
- "reset": "zmjoSq_reset",
4875
- "modelCatalogMeta": "zmjoSq_modelCatalogMeta",
4876
- "pending": "zmjoSq_pending",
4877
4929
  "label": "zmjoSq_label",
4878
- "input": "zmjoSq_input",
4879
- "name": "zmjoSq_name",
4880
- "candidateId": "zmjoSq_candidateId",
4881
- "channelDanger": "zmjoSq_channelDanger",
4930
+ "channelMeta": "zmjoSq_channelMeta",
4882
4931
  "modelRows": "zmjoSq_modelRows",
4883
- "modelArrow": "zmjoSq_modelArrow",
4884
- "candidateTitle": "zmjoSq_candidateTitle",
4885
- "body": "zmjoSq_body",
4886
- "channelSection": "zmjoSq_channelSection",
4887
- "description": "zmjoSq_description",
4888
- "modelEmpty": "zmjoSq_modelEmpty",
4889
- "addModel": "zmjoSq_addModel",
4890
- "channelDotReady": "zmjoSq_channelDotReady",
4891
- "modelBadge": "zmjoSq_modelBadge",
4932
+ "customSettingsBody": "zmjoSq_customSettingsBody",
4933
+ "channelList": "zmjoSq_channelList",
4934
+ "channelRow": "zmjoSq_channelRow",
4892
4935
  "footer": "zmjoSq_footer",
4893
- "editorTitle": "zmjoSq_editorTitle",
4894
- "candidateHead": "zmjoSq_candidateHead",
4895
- "discard": "zmjoSq_discard",
4896
- "modelCatalogHead": "zmjoSq_modelCatalogHead",
4897
- "candidateLabel": "zmjoSq_candidateLabel",
4898
- "chevronOpen": "zmjoSq_chevronOpen",
4899
- "channelEditor": "zmjoSq_channelEditor",
4900
- "card": "zmjoSq_card",
4901
- "sectionTitle": "zmjoSq_sectionTitle",
4936
+ "head": "zmjoSq_head",
4902
4937
  "link": "zmjoSq_link",
4903
- "channelName": "zmjoSq_channelName",
4904
- "modelInput": "zmjoSq_modelInput",
4938
+ "modelCatalogMeta": "zmjoSq_modelCatalogMeta",
4905
4939
  "editorTag": "zmjoSq_editorTag",
4906
- "customSettingsSummary": "zmjoSq_customSettingsSummary",
4907
- "customSettingsBody": "zmjoSq_customSettingsBody",
4908
- "modelCategorySelect": "zmjoSq_modelCategorySelect",
4909
- "channelMeta": "zmjoSq_channelMeta",
4910
- "chevron": "zmjoSq_chevron",
4911
- "channelEmpty": "zmjoSq_channelEmpty",
4912
- "linkButton": "zmjoSq_linkButton",
4913
- "editorFooter": "zmjoSq_editorFooter",
4914
- "failed": "zmjoSq_failed",
4915
- "modelRowRemove": "zmjoSq_modelRowRemove",
4916
- "select": "zmjoSq_select",
4917
4940
  "field": "zmjoSq_field",
4941
+ "chevronOpen": "zmjoSq_chevronOpen",
4942
+ "channelAddRow": "zmjoSq_channelAddRow",
4918
4943
  "editorWrap": "zmjoSq_editorWrap",
4919
- "candidate": "zmjoSq_candidate",
4920
- "candidateActions": "zmjoSq_candidateActions",
4921
- "headText": "zmjoSq_headText",
4922
- "candidateList": "zmjoSq_candidateList",
4923
- "channelList": "zmjoSq_channelList",
4924
- "channelHost": "zmjoSq_channelHost",
4944
+ "channelSection": "zmjoSq_channelSection",
4945
+ "modelInput": "zmjoSq_modelInput",
4946
+ "save": "zmjoSq_save",
4947
+ "channelAction": "zmjoSq_channelAction",
4925
4948
  "modelRow": "zmjoSq_modelRow",
4926
- "editorHeader": "zmjoSq_editorHeader",
4949
+ "reset": "zmjoSq_reset",
4950
+ "modelRowRemove": "zmjoSq_modelRowRemove",
4927
4951
  "channelMain": "zmjoSq_channelMain",
4928
- "channelAdd": "zmjoSq_channelAdd",
4929
- "channelAction": "zmjoSq_channelAction",
4930
- "head": "zmjoSq_head",
4931
- "header": "zmjoSq_header",
4952
+ "candidateId": "zmjoSq_candidateId",
4953
+ "channelHost": "zmjoSq_channelHost",
4954
+ "deleteConfirmText": "zmjoSq_deleteConfirmText",
4955
+ "modelArrow": "zmjoSq_modelArrow",
4956
+ "pending": "zmjoSq_pending",
4957
+ "channelDanger": "zmjoSq_channelDanger",
4958
+ "customSettingsSummary": "zmjoSq_customSettingsSummary",
4932
4959
  "modelCatalogTools": "zmjoSq_modelCatalogTools",
4960
+ "headText": "zmjoSq_headText",
4961
+ "sectionHeader": "zmjoSq_sectionHeader",
4962
+ "channelEmpty": "zmjoSq_channelEmpty",
4963
+ "customSettings": "zmjoSq_customSettings",
4964
+ "sectionTitle": "zmjoSq_sectionTitle",
4965
+ "modelEmpty": "zmjoSq_modelEmpty",
4966
+ "candidateTitle": "zmjoSq_candidateTitle",
4967
+ "failed": "zmjoSq_failed",
4968
+ "header": "zmjoSq_header",
4969
+ "modelCatalogTitle": "zmjoSq_modelCatalogTitle",
4970
+ "channelName": "zmjoSq_channelName",
4971
+ "editorFooter": "zmjoSq_editorFooter",
4972
+ "editorTitle": "zmjoSq_editorTitle",
4973
+ "addModel": "zmjoSq_addModel",
4974
+ "candidateActions": "zmjoSq_candidateActions",
4975
+ "channelEditor": "zmjoSq_channelEditor",
4976
+ "name": "zmjoSq_name",
4977
+ "input": "zmjoSq_input",
4978
+ "readOnly": "zmjoSq_readOnly",
4979
+ "channelDotReady": "zmjoSq_channelDotReady",
4980
+ "card": "zmjoSq_card",
4981
+ "body": "zmjoSq_body",
4982
+ "channelDotWarn": "zmjoSq_channelDotWarn",
4983
+ "modelCategorySelect": "zmjoSq_modelCategorySelect",
4984
+ "modelBadge": "zmjoSq_modelBadge",
4933
4985
  "candidatePanel": "zmjoSq_candidatePanel",
4934
- "channelRow": "zmjoSq_channelRow",
4935
- "detectOk": "zmjoSq_detectOk",
4936
- "sectionHint": "zmjoSq_sectionHint",
4937
- "channelAddRow": "zmjoSq_channelAddRow"
4986
+ "candidateHead": "zmjoSq_candidateHead",
4987
+ "candidateList": "zmjoSq_candidateList",
4988
+ "candidateLabel": "zmjoSq_candidateLabel",
4989
+ "discard": "zmjoSq_discard",
4990
+ "channelBadge": "zmjoSq_channelBadge",
4991
+ "modelCatalogHead": "zmjoSq_modelCatalogHead",
4992
+ "description": "zmjoSq_description"
4938
4993
  };
4939
4994
  //#endregion
4940
4995
  //#region src/client/SettingsCard.tsx
@@ -4963,7 +5018,8 @@ window.__ModuleLoader__.load({
4963
5018
  booleanField("allowAgentAudioGeneration"),
4964
5019
  textField("defaultModel"),
4965
5020
  booleanField("autoSaveToLibrary"),
4966
- textField("maxConcurrentGenerations")
5021
+ textField("maxConcurrentGenerations"),
5022
+ textField("enhanceModel")
4967
5023
  ]);
4968
5024
  this.channelsForm = new ChannelsForm(scope);
4969
5025
  }
@@ -4978,7 +5034,8 @@ window.__ModuleLoader__.load({
4978
5034
  allowAgentAudioGeneration: this.form.field("allowAgentAudioGeneration"),
4979
5035
  defaultModel: this.form.field("defaultModel"),
4980
5036
  autoSaveToLibrary: this.form.field("autoSaveToLibrary"),
4981
- maxConcurrentGenerations: this.form.field("maxConcurrentGenerations")
5037
+ maxConcurrentGenerations: this.form.field("maxConcurrentGenerations"),
5038
+ enhanceModel: this.form.field("enhanceModel")
4982
5039
  };
4983
5040
  }
4984
5041
  inject() {
@@ -5322,6 +5379,10 @@ window.__ModuleLoader__.load({
5322
5379
  onAdopt: () => adoptCandidates(),
5323
5380
  onCloseCandidates: closeCandidates
5324
5381
  }),
5382
+ /stability/i.test(`${props.channel?.preset ?? invited?.id ?? presetId}|${url}`) ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
5383
+ className: settings_card_module_css_default.sectionHint,
5384
+ children: t("channel.stabilityHint")
5385
+ }) : null,
5325
5386
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
5326
5387
  className: settings_card_module_css_default.field,
5327
5388
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
@@ -5410,7 +5471,17 @@ window.__ModuleLoader__.load({
5410
5471
  disabled: !writable,
5411
5472
  onChange: (event) => props.onPatchModel(index, { id: event.target.value })
5412
5473
  }),
5413
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("select", {
5474
+ /^stable-audio-/i.test(model.id) ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("select", {
5475
+ className: `${settings_card_module_css_default.select} ${settings_card_module_css_default.modelCategorySelect}`,
5476
+ value: "__stable-dual__",
5477
+ "aria-label": `${t("channel.modelCategory")} ${index + 1}`,
5478
+ disabled: true,
5479
+ title: t("channel.category.stableDualHint"),
5480
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
5481
+ value: "__stable-dual__",
5482
+ children: t("channel.category.stableDual")
5483
+ })
5484
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("select", {
5414
5485
  className: `${settings_card_module_css_default.select} ${settings_card_module_css_default.modelCategorySelect}`,
5415
5486
  value: model.category ?? "",
5416
5487
  "aria-label": `${t("channel.modelCategory")} ${index + 1}`,
@@ -5521,6 +5592,8 @@ window.__ModuleLoader__.load({
5521
5592
  const [presetLoading, setPresetLoading] = (0, react.useState)(false);
5522
5593
  const [presetError, setPresetError] = (0, react.useState)(null);
5523
5594
  const [confirmDeleteId, setConfirmDeleteId] = (0, react.useState)(null);
5595
+ const [llmModels, setLlmModels] = (0, react.useState)(null);
5596
+ const [llmModelsError, setLlmModelsError] = (0, react.useState)(null);
5524
5597
  const channels = state.channels.channels;
5525
5598
  const editingChannel = editor !== null && editor.kind === "edit" ? channels.find((channel) => channel.id === editor.channelId) : void 0;
5526
5599
  (0, react.useEffect)(() => {
@@ -5539,6 +5612,18 @@ window.__ModuleLoader__.load({
5539
5612
  presetError,
5540
5613
  presetLoading
5541
5614
  ]);
5615
+ (0, react.useEffect)(() => {
5616
+ if (!open || llmModels !== null || llmModelsError !== null) return;
5617
+ fetch(LLM_MODELS_API, { method: "POST" }).then(async (response) => {
5618
+ const body = await response.json();
5619
+ if (!response.ok || body.ok !== true || body.providers === void 0) throw new Error(body.message ?? `HTTP ${response.status}`);
5620
+ setLlmModels(body.providers);
5621
+ }).catch((error) => setLlmModelsError(error instanceof Error ? error.message : String(error)));
5622
+ }, [
5623
+ open,
5624
+ llmModels,
5625
+ llmModelsError
5626
+ ]);
5542
5627
  if (!state.available) return null;
5543
5628
  const blocked = !state.dirty || state.invalid || state.saving || state.channels.saving;
5544
5629
  const closeEditor = () => {
@@ -5753,6 +5838,47 @@ window.__ModuleLoader__.load({
5753
5838
  }) : null
5754
5839
  ]
5755
5840
  }),
5841
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
5842
+ className: settings_card_module_css_default.field,
5843
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
5844
+ className: settings_card_module_css_default.label,
5845
+ children: [
5846
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t("settings.enhanceModel") }),
5847
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
5848
+ className: settings_card_module_css_default.select,
5849
+ value: state.enhanceModel.text,
5850
+ disabled: !state.writable,
5851
+ onChange: (event) => props.edit("enhanceModel", event.target.value),
5852
+ children: [
5853
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
5854
+ value: "",
5855
+ children: t("settings.enhanceModelDefault")
5856
+ }),
5857
+ llmModels !== null ? llmModels.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
5858
+ value: `${option.provider}|${option.id}`,
5859
+ children: `${option.providerName} — ${option.name}${option.name !== option.id ? `(${option.id})` : ""}`
5860
+ }, `${option.provider}|${option.id}`)) : null,
5861
+ llmModels !== null && state.enhanceModel.text !== "" && !llmModels.some((option) => `${option.provider}|${option.id}` === state.enhanceModel.text) ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
5862
+ value: state.enhanceModel.text,
5863
+ children: state.enhanceModel.text
5864
+ }) : null
5865
+ ]
5866
+ }),
5867
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
5868
+ className: settings_card_module_css_default.sectionHint,
5869
+ children: t("settings.enhanceModelHint")
5870
+ }),
5871
+ llmModelsError !== null ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
5872
+ className: settings_card_module_css_default.failed,
5873
+ children: [
5874
+ t("settings.enhanceModelFailed"),
5875
+ ":",
5876
+ llmModelsError
5877
+ ]
5878
+ }) : null
5879
+ ]
5880
+ })
5881
+ }),
5756
5882
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
5757
5883
  className: settings_card_module_css_default.field,
5758
5884
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
@@ -5879,17 +6005,17 @@ window.__ModuleLoader__.load({
5879
6005
  document.head.appendChild(tag);
5880
6006
  }
5881
6007
  var audio_toolview_module_css_default = {
5882
- "header": "_7K1QKa_header",
5883
- "error": "_7K1QKa_error",
5884
6008
  "status": "_7K1QKa_status",
5885
6009
  "message": "_7K1QKa_message",
5886
- "empty": "_7K1QKa_empty",
5887
- "download": "_7K1QKa_download",
5888
6010
  "root": "_7K1QKa_root",
6011
+ "audios": "_7K1QKa_audios",
6012
+ "header": "_7K1QKa_header",
5889
6013
  "icon": "_7K1QKa_icon",
6014
+ "error": "_7K1QKa_error",
6015
+ "empty": "_7K1QKa_empty",
6016
+ "audio": "_7K1QKa_audio",
5890
6017
  "audioRow": "_7K1QKa_audioRow",
5891
- "audios": "_7K1QKa_audios",
5892
- "audio": "_7K1QKa_audio"
6018
+ "download": "_7K1QKa_download"
5893
6019
  };
5894
6020
  //#endregion
5895
6021
  //#region src/client/audio-toolview.tsx