fix(tts): ask GPT-SoVITS again before refusing an import
The voices page keeps the node's status for a minute. On a fresh install the first status said the storage place (models/gpt_sovits) was missing, so "Import character" refused with "存放位置不能写入" until the cached answer expired, although the folder existed by then. Before refusing, the import asks for the status once more. (Anomalous_TTS now also creates the folder when it starts.) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
888e7c8dc4
commit
e4d351a44e
@@ -2,6 +2,9 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
### 🎙️ Importing a character right after installing (装好就能导入角色)
|
||||
- The first "Import character" on a fresh install no longer says the storage place cannot be written to: the voices page asks GPT-SoVITS again before refusing, instead of trusting what it heard up to a minute earlier.
|
||||
|
||||
### 🧭 New layout (新布局)
|
||||
- **Icon rail (左侧图标栏)**: every page now has one place on the left: Home, Models, Gallery, Workflows, Combos, Prompts, then Voices and Audio for the audio side, then scan, Model Check, Node Assistant and the toolbox, with settings at the bottom. It replaces the tabs at the top, the image/audio switch and the tool bar under the folder list.
|
||||
- **Folder list opens and closes per page (列表按页面收放)**: click the current page's icon again, or the button at the top left, to hide or show its list; each page remembers your choice. Pages without a list (Home, Gallery) give the space to the content. In a narrow or docked window the list starts closed and opens as a drawer against the rail, over a dimmed page; picking a folder or character, pressing the dimmed page or Esc closes it.
|
||||
|
||||
@@ -72,12 +72,10 @@ export async function openTtsImport({ files = [], target = null, onDone } = {})
|
||||
await anomalousAlert(t('ttsSetupRemote'));
|
||||
return;
|
||||
}
|
||||
// New characters always go to the storage place (changed in GPT-SoVITS settings).
|
||||
// New characters go to the storage place. The status is kept a minute (a fresh install's folder may be there by now): ask again before refusing.
|
||||
if (!target && !status.libraries.find(lib => lib.storage)?.writable) status = await loadGptSovitsStatus({ force: true }).catch(() => status) || status;
|
||||
const home = status.libraries.find(lib => lib.storage);
|
||||
if (!target && !home?.writable) {
|
||||
await anomalousAlert(t('ttsImportNoLibrary', { path: status.storage }));
|
||||
return;
|
||||
}
|
||||
if (!target && !home?.writable) return anomalousAlert(t('ttsImportNoLibrary', { path: status.storage }));
|
||||
|
||||
activeScope?.dispose();
|
||||
const scope = createViewScope();
|
||||
|
||||
Reference in New Issue
Block a user