⭐ Star Audio Loader
Star Audio Loader turns a file into a tensor
- audio
- seconds
- seconds_str
- info
Audio is the silent stepchild of ComfyUI. Images get drag-and-drop loaders everywhere, but the moment you want a sound file in your graph you're digging through sampler packages that treat audio as an afterthought. ⭐ Star Audio Loader fixes that the way you'd want: point it at a file, get a standard AUDIO tensor plus the length and an info report - and it'll even cut the clip for you while it's at it.
It's part of StarNodes, the ~100-node swiss-army-knife pack from Starnodes2024 that bundles everything from PSD exporters to LTX-Video helpers under one ⭐StarNodes menu. The author keeps it genuinely maintained (release notes show up on r/StableDiffusion, and they've patched things like the copy-paste image loader after ComfyUI updates broke it). This node lives in the Video category, right next to Star Video Loader and the LTXV all-in-one nodes, and it's the obvious entry point whenever a workflow needs to hear something.
What it actually does
It loads a wav/flac/mp3/whatever from your ComfyUI input folder - or lets you upload one through the widget - and decodes it into the standard ComfyUI AUDIO format: a waveform tensor plus a sample_rate. That's the same format the LTXV and video nodes expect, so the output plugs straight into audio-aware pipelines like the Star LTXV 2.5 All-in-One or the Video Sound Enricher.
Under the hood it's ffmpeg doing the heavy lifting. The node pipes the decoded audio as raw WAV into memory, reads it back as 16-bit PCM, normalizes to float32, and reshapes it into channels × samples. Nothing gets written to disk as an intermediate file - it goes straight into the graph as a tensor. The ffmpeg binary itself is resolved in order: a bundled one if it shipped, then imageio-ffmpeg (which requirements.txt installs), then whatever's on your system PATH. So it works out of the box on a fresh install.
The inputs that matter
Only three, and two of them are the point:
audio- a file picker/upload widget. Drop your file in theinputfolder, pick it from the dropdown, or just drag it onto the node to upload.start_time- cut start in seconds (0 = beginning). There's a Load button on the node that probes the file over a little built-in API endpoint and sets the slider range, so you can find your cut point before you even run the workflow.end_time- cut end in seconds; 0 means "to the end", which trips people up at first. Set 12.5 and you get a 12.5-second clip, leave 0 and you get the whole file.
That's it. No hidden model downloads, no API keys, nothing to calibrate.
The outputs
audio- theAUDIOtensor. Wire this into anything that wants sound.seconds- the kept (post-cut) duration as an INT, useful for math or for syncing video length to audio.seconds_str- the same duration as a string with three decimals, handy for stamping into captions or metadata.info- a one-line-ish report: filename, codec, cut range, channels, sample rate, full duration, and the resolved path. Great for a "Show Everything"-style debug output.
Installing it
ComfyUI Manager, search Starnodes, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Starnodes2024/ComfyUI_StarNodes
cd ComfyUI_StarNodes
pip install -r requirements.txt
Then restart ComfyUI. This node needs no model files - the only dependency that matters for it is imageio-ffmpeg for the ffmpeg binary, and that's handled by the requirements.
Gotchas
The usual trio: the file has to live in your input folder (or be uploaded through the widget) or you get a FileNotFoundError; if ComfyUI tells you a package is missing, only the affected node skips loading and the console tells you exactly what to pip install; and if you hand it a non-audio file it raises "could not probe an audio stream - is this really an audio file?" rather than silently failing. One slightly odd behavior worth knowing: if your start_time lands at or past end_time, it clamps the start to 10ms before the end instead of erroring - so garbage in gets a mostly-garbage clip out. Set your times sensibly and it's a boring, reliable little node, which is exactly what you want from a loader.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | COMBO | 0 options: | |
| start_time | FLOAT | 0.000–1000000 | Start of the cut in seconds. Click the Load button to probe the file and preview the cut point. |
| end_time | FLOAT | 0.000–1000000 | End of the cut in seconds (0 = to the end). Click the Load button to probe the file and preview the cut point. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| seconds | INT | — |
| seconds_str | STRING | — |
| info | STRING | — |