Nodes/ComfyUI-Kaola-Qwen-TTS/VibeVoice Save File
ComfyUI Node

VibeVoice Save File

Make the SRT Actually Land on Disk, Not Just on the Canvas

By kana112233·Created 8 months ago·Updated 7 months ago· 0
VibeVoice Save File
    • text_content
    text
    filename_prefixvibe_output
    extensionsrt

    Display name says "VibeVoice Save File," which is a borrowed name (Microsoft's VibeVoice was the long-form multi-speaker TTS this pack's whole vibe is modeled on), but the job is simpler than the name: take any text, write it to a file in ComfyUI's output folder. If you've ever generated subtitles in a node graph and then spent five minutes hunting for where they went, this is the node that ends the hunt.

    It belongs to ComfyUI-kaola-Qwen-TTS, the Qwen3-TTS wrapper pack, and it's the natural partner for the pack's Stage Manager node: Stage Manager emits srt_content as its last output, this node turns that into an actual .srt file you can drag into a video editor, a subtitle tool, or a Discord upload. It'll happily save any other string too - transcripts, batch prompts, JSON payloads for a downstream pipeline - which makes it a surprisingly useful generic text-dump node that happens to live in a TTS pack.

    How it works

    Nothing clever, which is the point. It grabs ComfyUI's output directory via the same path-finding folder_paths helper the core save nodes use, then writes your text as UTF-8. Filename collisions are handled by bumping a counter: vibe_output.srt, then vibe_output_1.srt, and so on - it never overwrites a file you already rendered. UTF-8 matters more here than in an image pack: Qwen3-TTS is genuinely multilingual and this author's own examples are Chinese, so your SRT will carry CJK characters, accents, and emoji without mojibake.

    The inputs

    • text (STRING, multiline) - whatever you want on disk. Paste in Stage Manager's srt_content, a transcript, a prompt dump, anything.
    • filename_prefix (STRING, default vibe_output) - the base name; the counter and extension get appended.
    • extension - enum of srt, txt, csv, json. srt is the default and the one you'll actually use.

    Output: text_content (STRING) - the same text passed straight through. That's the useful bit: this is not an output-only node, so you can drop it mid-chain to log a value and keep wiring the string onward.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/kana112233/ComfyUI-kaola-Qwen-TTS
    cd ComfyUI-kaola-Qwen-TTS
    pip install -r requirements.txt
    

    Restart ComfyUI, or find ComfyUI-kaola-Qwen-TTS in ComfyUI Manager. Requirements are light - the official qwen-tts package, soundfile, torchaudio, numpy - though qwen-tts pins a specific transformers version, so installing this pack can shuffle your environment even if you never run a single TTS node.

    Troubleshooting

    The file goes to ComfyUI's output folder (ComfyUI/output/), not next to your workflow file and not in the models folder - use the "Open output folder" button in the UI to find it. It writes what you give it: there's no validation that the content matches the extension, so a CSV-in-an-srt-file is on you, and it's happy to dump raw SRT text into a .txt if that's what your pipeline wants. One honest limitation: it saves text only. The actual audio tracks come out of the other nodes in the pack, and this node won't touch them - pair it with SaveAudio (or Stage Manager's built-in save_to_file toggle, which writes per-role WAVs to the same output folder).

    CategoryQwen3TTS

    Inputs (3)

    NameTypeDefaultDescription
    textSTRING
    filename_prefixSTRINGvibe_output
    extensionCOMBOsrt4 options: srt, txt, csv, json

    Outputs (1)

    NameTypeDescription
    text_contentSTRING