Nova Batch Load Audio ๐ผ
Point it at a folder, get a batch
- files
- audio
- file_count
- filenames
- metadata
ComfyUI's audio story is one file at a time. That's fine until you're doing anything batch-shaped - tagging an album, building a training set, scanning a folder of takes - where the thing you need first is a list of files with their facts attached.
Nova Batch Load Audio ๐ผ is that list. It walks a folder, applies your filter, and hands back a NOVA_FILES batch. Everything downstream in this pack's authoring and training chains eats that type: Tag Writer, Tag Reader, and the ACE-Step dataset builder all start here.
The default that matters
Decoding is off by default. On, the node decodes every matched file into a batched AUDIO tensor - and that's memory you didn't need, because the tag nodes and the dataset builder only want paths and metadata. Leave decode_audio off unless you actually feed the audio output into something.
If you do turn it on, know the batching caveat, because it's a ComfyUI constraint rather than this node's choice: an AUDIO payload is a single [batch, channels, samples] tensor, so files must share a sample rate and get padded to the longest one. Any file whose rate differs from the first decoded file is left out of the tensor - it stays in the file list, and the exclusion is written into metadata. Mixed-rate folders are quietly lossy in the tensor; check the JSON before you trust the output.
Inputs
- folder_path - empty falls back to ComfyUI's input directory. Absolute paths are fine and are what you'll usually want.
- file_filter - comma-separated globs, e.g.
*.flac, *.wav. Defaults to*.flac; empty matches every known audio extension. - recursive, sort_by (
name,modified,size) and limit - sorting is for your convenience only, since tag rows are matched by file name, not position.limitis a dataset killer: 0 means no cap, and any non-zero value silently truncates. If your training set mysteriously has 50 tracks when the folder has 300, look here first.
Outputs: files (the batch), audio (only meaningful with decoding on), file_count, filenames (a real list output - one string per file, which is why Nova Console renders it as a numbered listing rather than exploding into a run per file), and metadata, a JSON blob with per-file facts, the scan settings and any warnings.
Install
ComfyUI Manager โ Nova Audio Player โ install โ restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/NovaFemme/ComfyUI-NovaAudioPlayer.git
Under โถ๏ธ Nova Audio โ ๐ ๏ธ Utility & IO. This node needs nothing you don't already have: it reuses the same decode stack as Nova Load Audio, which tries soundfile, then torchaudio, then PyAV - and PyAV ships with ComfyUI, so there's a working path on any install. Metadata and header probing are its own, so you get bit depth and tags without a decoder deciding whether it feels like reporting them.
Two workflows it enables
Tag an album from a database. Batch Load Audio โ Nova SQLite Reader โ Nova Tag Writer โ Nova Tag Reader to verify. The example workflows and a sample database ship with the pack, so you can run the shape end-to-end before pointing it at your own library.
Build a training set. Batch Load Audio โ Nova ACE Dataset Builder โ Review โ Preprocess โ Trainer. Here you want decode_audio off, recursive as needed, and limit at 0, because the dataset builder reads tags and paths, not waveforms.
One habit worth stealing from the image side of the hobby: when you're scanning a folder you don't fully trust, wire the metadata output into Nova Console once and read the warnings. Silent exclusions are the whole failure mode of batch nodes.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| folder_path | STRING | Folder to scan. Empty falls back to ComfyUI's input directory. | |
| file_filter | STRING | *.flac | Comma-separated glob patterns, e.g. *.flac, *.wav. Empty matches every known audio extension. |
| recursive | BOOLEAN | false | Include sub-folders. |
| sort_by | COMBO | name | Batch order. Tag rows are matched by file name, not by position, so this is for your convenience. |
| limit | INT | 00โ100000 | Stop after this many files. 0 = no limit. |
| decode_audio | BOOLEAN | false | Off: paths + metadata only (fast). On: also decode every file into the batched AUDIO output. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| files | NOVA_FILES | The batch of files, for Nova Tag Writer / Nova Tag Reader. |
| audio | AUDIO | Batched waveform [files, channels, samples] โ only meaningful with decode_audio on. |
| file_count | INT | How many files were matched. |
| filenames | STRING | File names, as a list output (one string per file). |
| metadata | STRING | JSON: per-file facts, the scan settings, and any warnings. |