ComfyUI Node

Load Audio (Soze)

The node that actually gets sound into ComfyUI

By SozeInc·Created 2 years ago·Updated 5 days ago· 10
Load Audio (Soze)
    • Audio
    • Audio_Filename_Path
    • Audio_Filename
    • Audio_Filename_No_Ext
    • Audio_Changed
    • status
    audio

    Audio stopped being an afterthought in ComfyUI the moment LTX 2.3 shipped native sound and people started layering MMAudio onto Wan footage - add a soundtrack, do a lip-sync, score a music video. But before any of that, you have to get audio into the graph. Load Audio, the input node of the ComfyUI-SoundHub pack, is the unglamorous first step: it reads a file from your input folder and turns it into a waveform tensor plus its sample rate, with trimming, channel conversion, and volume all folded in.

    How it works

    The node scans ComfyUI/input/ for .wav, .mp3, .ogg, and .flac files and hands you a dropdown of what it finds - you can also upload a file straight from the widget. Pick one and it runs torchaudio.load(), converts to float32, and gives you a [channels × samples] tensor along with the sample rate.

    Two details make it nicer than it looks. First, IS_CHANGED hashes the actual file bytes, so if you drop a new version of the audio into your input folder, the node re-executes without you having to bump anything - genuinely handy when you're iterating on a clip. Second, the preview toggle (on by default) puts an audio player on the node pointing at the source file, so you can confirm you loaded the right thing before it goes anywhere.

    The inputs that matter

    You'll actually touch most of these, but three deserve a real explanation.

    • audio - the file dropdown. Only files sitting in input/ show up here; that's a common "where is my file" moment.
    • start_time / duration - this is the pair people get wrong. If duration > 0, it slices from start_time for that many seconds. If duration is 0 but start_time is set, it trims from start_time to the end of the file. So: want a 5-second section? Set both. Just want the intro gone? Set start_time and leave duration at 0.
    • channels - auto (leave as-is), mono (average the two channels together), or stereo (duplicate mono to both channels). Auto is right for most things; pick mono when you're feeding analysis or voice work.
    • volume - multiplies the waveform, 0 to 5, default 1. Crank it to 5 and you'll clip; it's an input trim, not a mastering tool.

    What comes out

    Two outputs: audio (the tensor) and sample_rate. Wire both into Save Audio or Preview Audio from the same pack and you're done. One honest caveat: this AUDIO type is a raw waveform - it is not LTX's audio-latent type, so don't expect it to plug straight into an LTX audio VAE encoder. If your downstream node wants a different audio type, it won't accept this, and that's a type mismatch, not a bug.

    Installing it

    It ships in the ComfyUI-SoundHub pack, same install for all three nodes:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Yuan-ManX/ComfyUI-SoundHub.git
    cd ComfyUI-SoundHub
    pip install -r requirements.txt
    

    Restart ComfyUI and you'll find the "SoundHub" category. ComfyUI Manager users can just search "ComfyUI-SoundHub". No model files to download. Note that requirements.txt lists librosa, which the code never imports - it's dead weight, and if it ever fails to install you can delete that line.

    Troubleshooting

    • File not in the dropdown - it has to live in input/, not output/. Drop it there and refresh.
    • Wrong section loaded - that's the start_time/duration interplay above; remember duration 0 + start_time set means "to the end."
    • Everything's too quiet or distorted - you pushed volume too far, or forced stereo/mono that didn't match the source.

    It's a plumbing node, but it's the pipe everything else flows through.

    Categoryaudio

    Inputs (1)

    NameTypeDefaultDescription
    audioCOMBO1 options:

    Outputs (6)

    NameTypeDescription
    AudioAUDIO
    Audio_Filename_PathSTRING
    Audio_FilenameSTRING
    Audio_Filename_No_ExtSTRING
    Audio_ChangedBOOL
    statusSTRING