Nodes/ComfyUI-Qwen3-TTS/Qwen3-TTS Prompt Manager 📁
ComfyUI Node

Qwen3-TTS Prompt Manager 📁

Stop re-finding reference audio

By wanaigc·Created 7 months ago·Updated 7 months ago· 113
Qwen3-TTS Prompt Manager 📁
  • voice_clone_prompt
  • voice_clone_prompt
mode
save_filenamemy_voice_01
load_file

Once you've cloned a voice you actually like - that's the hard part - losing it because the reference file moved would be maddening. This node is the pack's answer to "make the voice an asset": it saves a voice_clone_prompt to a file on disk and loads it back later, so next time you want that voice you don't dig up the original clip, re-transcribe it, and re-run the analysis. You just load the file.

The README calls this "声音资产化" - voice asset-ization - and that's a fair description of the job.

What it does

Qwen3TTSPromptManager has a mode toggle: Save or Load.

  • Save - takes a voice_clone_prompt input (from the Voice Clone Prompt node) and writes it to ComfyUI/output/qwen3tts/<save_filename>.qwen3tts using torch.save. If you don't give it a voice_clone_prompt, it raises a clear error - there's nothing to save, so don't wire it up empty.
  • Load - reads back one of those files and returns it as a voice_clone_prompt you can feed straight into a Voice Clone node, the Role Bank, or anywhere else a QWEN3_PROMPT is accepted.

The load_file dropdown auto-populates from whatever .qwen3tts files already exist in that folder, so loading is a pick-from-a-list rather than typing a path. save_filename defaults to my_voice_01.

Output in both modes is a single voice_clone_prompt (QWEN3_PROMPT).

How it works

It's intentionally dumb: a save/load pair around a torch.save / torch.load round-trip into a folder it creates under ComfyUI's output directory. No model, no audio analysis, no state kept in the graph - the entire "library" is just files sitting on disk. That's a feature: your saved voices are ordinary files you can back up, rename, and share with a teammate who has the same pack.

Fitting it into a workflow

Qwen3TTSLoader ─> Qwen3TTSVoiceClonePrompt ─> Qwen3TTSPromptManager (Save)   ─┐
                                                     ▲                          │
                                              (a voice you love)          output/qwen3tts/my_voice_01.qwen3tts
                                                                                │
   next session:                                                                 ▼
Qwen3TTSLoader ─> Qwen3TTSPromptManager (Load) ─> Qwen3TTSVoiceClone ─> audio

The classic shape: clone once, save it, and months later you can regenerate "that narrator voice" without the reference clip, the transcript, or the wait.

Gotchas

  • Files live in the output folder. Not models, not a dedicated assets dir - output/qwen3tts/. That means a "clear output" habit or a shared output folder can wipe your voice library. If a voice matters, copy the .qwen3tts file somewhere safe; it's just a file.
  • Load with nothing saved → "No history files found. Please save one first." That's the node telling you to do the save half first, not a bug.
  • The saved prompt is tied to the model family. A prompt built from a 1.7B Base model is meant for Base-model generation nodes. You can't meaningfully load a cloned prompt and run it on a CustomVoice preset model - the receiving node will reject it.
  • Install is the pack-wide one (git clone + pip install -r requirements.txt + restart); this node adds no dependencies of its own.
CategoryQwen3-TTS

Inputs (4)

NameTypeDefaultDescription
modeCOMBO2 options: Save, Load
save_filenameSTRINGmy_voice_01
load_fileoptCOMBO1 options: no_prompts_found
voice_clone_promptoptQWEN3_PROMPT

Outputs (1)

NameTypeDescription
voice_clone_promptQWEN3_PROMPT