diff --git a/CHANGELOG.md b/CHANGELOG.md index 890f9d3..62f0e14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,9 @@ - **Where downloads (and now imports) go is a choice**: by base model (the new default), in Downloads then by base model, all in a Downloads folder, straight in the type's folder, or your own folder typed by hand; an example path shows the result. Without a saved setting, downloads now go by base model instead of into a Downloads folder. - The scanner's offline guess of a base model (for models Civitai does not know) now also recognizes LoRAs, Qwen-Image, Wan, Chroma and Hunyuan Video files. +### 🎙️ 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. + ### 🔗 Short share codes, one place to import (短分享码与统一导入) - **Share codes are 5–10 times shorter (AMB2)**: only what a workflow needs is kept — node types, values, links, positions, titles, groups and the models' fingerprints — and ComfyUI fills in the rest when it opens. A Chinese-character spelling ("汉字码") is the shortest; a letter spelling ("字母码") posts anywhere, for chats or comment sections whose word filters stop the characters. Before a code is given, it is opened once and compared with the canvas; a workflow it cannot hold exactly (subgraphs, for one) is shared whole. Nodes from node packs keep their links on a computer that has not installed the pack yet. AMB0 and AMB1 codes still open. - **Share and import in one place**: the Workflows page's ⇅ makes the code as soon as it opens (with the fingerprint and download-link notes), and takes anything in: a pasted share code or workflow JSON, or a dropped or chosen workflow file, an image with a workflow, or a backup .zip. diff --git a/web/modules/ui_tts_import.js b/web/modules/ui_tts_import.js index 86c82a5..98ce919 100644 --- a/web/modules/ui_tts_import.js +++ b/web/modules/ui_tts_import.js @@ -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();