VoxCPM Batch Save Audio
Batch Save Audio — numbered WAVs from a TTS batch, no spreadsheet required
- audio_list
When VoxCPM Batch TTS hands you an audio_list, you've got a pile of clips and no files. VoxCPM Batch Save Audio turns that pile into a tidy set of numbered WAVs in one run - the companion node to the batch generator, and the thing you want when you need each line as its own file for editing, lip-sync, or assembly in another tool.
Three inputs, all simple:
- audio_list (AUDIO_LIST) - the batch from VoxCPM Batch TTS (or any other node that produces that type).
- filename_prefix - default
output. Every file gets named{prefix}_{number:04d}.wav. - start_index - where numbering begins, default 1. So with the defaults you get
output_0001.wav,output_0002.wav, and so on, in order. - output_dir (optional) - blank means ComfyUI's standard output folder; give a path to write elsewhere.
It's an output node with no outputs. It writes each clip, prints each saved path to the console, and reports the final count. Nothing gets returned to the graph - the files are the output.
Why the numbering matters
Four-digit padding and a start index might look like overkill until you hit a workflow that reruns batches. Want to append a second batch of lines without clobbering the first? Set start_index past where the last run stopped. It's the difference between output_0001… colliding every run and a folder where files keep stacking cleanly. Small thing, real convenience.
Installing it
Part of the ComfyUI-DN-VoxCPM pack:
cd ComfyUI/custom_nodes/
git clone https://github.com/DekaNear/ComfyUI-DN-VoxCPM.git
cd ComfyUI-DN-VoxCPM
pip install -r requirements.txt
Restart ComfyUI, or install "DN VoxCPM" from ComfyUI Manager.
Where people get burned
Not much to get wrong here, which is the point. The one thing to remember: it only saves to disk, it doesn't tell you which line became which file beyond the ordering. The batch's clips carry their source text, but the saved filenames don't reflect it - so if you need per-line correspondence later, keep the source script in the same order and rely on the numbering. For anything that needs named or reorganized output, you'll be doing that in a downstream step anyway.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| audio_list | AUDIO_LIST | — | |
| filename_prefix | STRING | output | — |
| start_index | INT | 10–10000 | — |
| output_diropt | STRING | — |
Outputs (0)
No outputs