Anomalous_TTS no longer takes a folder or file path on this computer from
a request (ComfyUI-Manager review of the node): the storage place, other
character folders and pretrained sources are set only in its settings
file, and imported files are always uploaded.
- GPT-SoVITS settings shows the storage place, other places and package
sources without change, move or remove buttons, and names the node's
settings file (status.settings_file) with a copy button and how to edit it.
- The import window drops "from this computer": no server path picker
(ui_tts_path_picker.js is gone), no local folder scan or local clip
preview; a very large upload is confirmed instead.
- tts_setup_api.js loses the removed routes; formatSize moves there.
- The storage-change activity entry, unused locale keys and picker CSS go.
Verified: tools/check_structure.mjs; tts_setup_api in Node with fetch
stubbed; the settings card, batch hero, add menu, file sources and player
rendered with jsdom and stubbed ComfyUI scripts. Not run in ComfyUI.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018P2T2R7TFbJsc3C9maCD8B
- A folder holding one character's GPT + SoVITS weights and its clips is that
character, named after the folder: two characters whose weights are both
"model" no longer merge, pinyin weights in a Chinese-named folder take the
folder's name, version folders read "派蒙 v2". Package weight folders keep
the name-by-stem rule.
- Skip rules match the node (interface v9): Python environments and base
models always; GPT_SoVITS / logs / output / TEMP / tools only inside a
package; the chosen or dropped folder never. The drop walker and the folder
dialog apply them where the listing is known (the old re-check on each
file's path skipped a chosen folder called "output"), local scans prefix
the chosen folder so every source sorts alike, and the window names the
skipped and too-deep folders instead of losing files quietly. Drops only
open importable files and stop at 5000.
- Same-name files inside a character are renamed with their folder
(难过_01.wav, sent as the file's "name") instead of dropped; an unclaimed
.list goes to every character.
- Big adds open 20 characters (about 800 files) at a time; "next batch" opens
the rest, and it opens by itself once a batch is imported, replacing the
imported cards. Unassigned files upload only once put into a character.
- Every clip can be previewed while importing, local paths included (through
the node's preview route): one at a time, ▶ turns into stop, another clip
switches.
- Upload queue and preview player move to their own modules, the "add more"
menu to the screens module (ui_tts_import.js 647 → 652 lines with batches and renames added).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012RMuwbsWZHnx2eCWpxYqAB
- A folder per character: clips and line files follow the weights in their
nearest folder, so pinyin weights, Chinese folders and English clips still
land together (a real 34-character folder: 3065 unassigned files -> 0).
- Clips outside 3-10 s and their same-name line files are left out of the
import and folded under "left out" instead of one warning per clip.
- GPT-SoVITS program and training folders are skipped in drops (not even
walked) and picked folders; a very large upload (>1500 files or 2 GB)
first offers the local folder picker.
- Uploads run three at a time, status repaints are coalesced, a card shows
its first 60 clips, move menus are filled when opened, and the unassigned
card folds into one line per folder that can be assigned at once.
- New ui_tts_import_sources.js brings files in (dialogs, drops, local picker).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The import window now asks what the user has first: one character, many
characters or a package, or files for an existing character (picked from
a list, or opened straight from a card's "Add files"). Dropped files skip
the question.
Each character card leads with a checklist (GPT model, SoVITS model,
clips, main voice, name) that lights up the next step and offers its
button in that line; the chosen weights sit in their lines, and the
card header says how many steps are left. A main voice (3-10 s) is now
required for a new character, as GPT-SoVITS needs one.
A spotlight tour explains the first question and the card the first time
each is shown; "?" in the header replays it. ui_spotlight_tour.js takes
its steps and an onClose from the caller now; the browser tour is
unchanged. The fixed screens and tour steps live in
ui_tts_import_screens.js.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The two-column workbench was hard to read on first open. The window now
opens as one drop area that says what to bring (GPT model, SoVITS model,
3-10 s clips) with two buttons and a quiet "files on this PC" line, and
three steps at the top show where the user is.
With files, each character is a card: folded, one line with the name
(edited in place), a short status and what it holds; unfolded, two model
tiles, one line per clip (main-voice star, emotion, line) and the line
files and language at the bottom. One card is open at a time; files that
match no character get a card of their own at the top. "Add more" is a
single button with a menu, the owner picker on each clip only shows on
hover, and the footer says what still needs a look and where it saves.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The import form becomes a two-column workbench for one or many
characters. Files and whole folders can be dropped, or a folder on this
PC scanned (Anomalous_TTS browse?recursive=1, interface 6). Weights pair
up by name with the latest epoch kept; clips and line files follow their
folder or file-name prefix; anything unclear waits in an unassigned
tray. The left column lists the characters with a status dot, the right
shows the selected one with one compact line per clip and a picker (or
drag handle) to move files between characters. Ready characters are
imported one after another, each on its own, so a failure leaves the
others alone.
Grouping rules live in tts_import_groups.js, the draft pane in
ui_tts_import_draft.js and OS drop reading in ui_tts_file_drop.js.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>