Nodes/ComfyUI_StarNodes/⭐ Star Audio Loader
ComfyUI Node

⭐ Star Audio Loader

Star Audio Loader turns a file into a tensor

By Starnodes2024·Created 2 years ago·Updated a day ago· 102
⭐ Star Audio Loader
    • audio
    • seconds
    • seconds_str
    • info
    audio
    start_time0.00
    end_time0.00

    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 the input folder, 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 - the AUDIO tensor. 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.

    Category⭐StarNodes/Video

    Inputs (3)

    NameTypeDefaultDescription
    audioCOMBO0 options:
    start_timeFLOAT0.000–1000000Start of the cut in seconds. Click the Load button to probe the file and preview the cut point.
    end_timeFLOAT0.000–1000000End of the cut in seconds (0 = to the end). Click the Load button to probe the file and preview the cut point.

    Outputs (4)

    NameTypeDescription
    audioAUDIO
    secondsINT
    seconds_strSTRING
    infoSTRING