Audio Split Export
Audio Split Export — slice a track into files by its silence, automatically
- audio
- video
- files
Ever needed a podcast episode chopped into 12 clips, or a field recording split into one file per spoken line? That's this node's entire personality: it finds the quiet gaps in a track, cuts at them, and writes each slice out as its own file - then hands you a list of what it made. It's the export step of the audio suite, and it turns "a long WAV" into "a folder of usable assets" with one Run.
The behavior is driven by detect (default silence): it scans for gaps quieter than threshold_db (default −60 dB) and at least min_silence_s (default 0.5s) long, then treats those gaps as cuts, keeping any segment at least min_segment_s long. The fade_ms default of 1.45 is a tiny fade at each cut so slices don't click. Two knobs you'll actually touch: threshold_db - if you're getting too many or too few segments, this is the first thing to change (the node errors with "no segments found - lower the threshold" when it finds nothing) - and min_silence_s, which filters out short pauses so you don't split on every breath.
The second detect option is json: instead of auto-detecting, you paste segment boundaries directly into the segments field as [{"start":s,"end":s}] in seconds. That's the power-user path - compute your cuts elsewhere (or by hand), and the node just executes them.
naming and prefix control the filenames (num_and_prefix is the default, giving you things like segment_001.wav). The output is a single files payload (COMFYTV_TEXT) listing what was written - you'd wire that into a delivery step or read it as the manifest of your chopped assets. Input is audio or video.
Honest warning: this is the one AudioFX node that isn't just an effect - it writes to disk. Re-running it overwrites the previous export with the same names. If you're exporting for a client or a git repo, pick your prefix carefully before you hammer Run ten times.
Install is the pack-wide story: ComfyUI Manager search "ComfyTV", or git clone https://github.com/jtydhr88/ComfyTV into custom_nodes/ then a full backend restart. Desktop/macOS users with multiple ComfyUI installs should clone by absolute path into the running instance. Zero extra pip dependencies - the segmentation is numpy analysis plus WAV writing, no models, CPU-only.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| force_run_token | INT | 00–2147483647 | Internal — bumped on Run to invalidate ComfyUI's input cache. |
| project_id | STRING | Internal — populated by the projectStore on the frontend. | |
| parent_output_id | INT | 00–2147483647 | Internal — lineage parent set by spawn handlers on the frontend. |
| detect | COMBO | silence | 2 options: silence, json |
| threshold_db | FLOAT | -60-90–-20 | — |
| min_silence_s | FLOAT | 0.500.01–5 | — |
| min_segment_s | FLOAT | 0.100.01–10 | — |
| fade_ms | FLOAT | 1.450–500 | — |
| naming | COMBO | num_and_prefix | 3 options: num_and_prefix, num_and_name, name |
| prefix | STRING | segment | — |
| segments | STRING | JSON [{"start":s,"end":s}] for detect=json | |
| audioopt | COMFYTV_AUDIO | — | |
| videoopt | COMFYTV_VIDEO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| files | COMFYTV_TEXT | — |