Nodes/comfyui-vae-float32/ANDRO Load Audio
ComfyUI Node

ANDRO Load Audio

Stock LoadAudio will kill your whole graph for a file nobody asked for

By AndreiOrehov·Created 28 days ago·Updated about 18 hours ago· 4
ANDRO Load Audio
    • audio
    • report
    audio_file
    silence_seconds5.0
    sample_rate48000
    path_override
    resample_to_sample_ratefalse

    Here's a ComfyUI behaviour that has quietly wasted more people's evenings than it deserves: every node in a prompt is validated before any of it runs. Stock LoadAudio refuses a filename that isn't in the input folder - so a graph that merely contains an audio branch cannot run without that file, even when a switch downstream was never going to use it, and even when the input is marked lazy. One missing wav anywhere in the chain fails the whole prompt with Invalid audio file. ANDRO Load Audio owns its validation instead: an unknown file becomes silence_seconds of silence and a line in the report. Nothing fails, nothing needs muting.

    It's in this pack because LTX's audio branch is where the pain is sharpest - LTXVConcatAVLatent demands an audio latent, and a graph for a text-to-video run that doesn't need audio at all still can't validate if the audio file isn't there. This node is the escape hatch. Same file picker, same decoder as stock (comfy_extras.nodes_audio.load), plus a path_override for audio outside the input folder.

    Inputs and outputs

    • audio_file - a file from the input folder (the dropdown lists (none - silence) plus your audio/video files). A name that doesn't exist - because the graph came from another machine, say - yields silence and a note, not an error.
    • silence_seconds (5 default) - how long the substituted silence is. Match it to the clip you're generating: some audio-conditioned models size their latent from the audio, so silence that's too short can shorten the result.
    • sample_rate (48000 default) - applies to the generated silence only. A real file always keeps its own rate, whatever this says, and the report states which rate actually loaded. Set it to what the downstream audio encoder expects (48000 for LTX).
    • resample_to_sample_rate (off) - resample a loaded file to that rate. Off by default because resampling is never free, but when the encoder wants one rate and the file has another, the mismatch otherwise surfaces as a confusing failure much further down. 44100→48000 Hz turns 220500 samples into 240000 with duration unchanged.
    • path_override - an absolute path for audio that lives outside the input folder. Wins over audio_file when set.

    Outputs are the audio and a report that always states which file loaded and its length/rate/channels - or why silence was substituted. Nothing is ever swapped for silence quietly. Duration matters because audio length frequently decides clip length, and that's otherwise learned only after the run.

    What it looks like working

    loaded 'your_take.wav': 5.00s, 48000 Hz, 2ch
    'no_such_file.wav' not found - 5s of silence instead. Nothing failed; ...
    

    Install

    ANDRO Load Audio ships in the comfyui-vae-float32 pack. ComfyUI-Manager → search comfyui-vae-float32 → install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/AndreiOrehov/comfyui-vae-float32
    

    Restart and find it under the ANDRO category. Pair it with the pack's ANDRO Audio Switch and you have the whole audio story solved: the switch picks generated-versus-external, and this node makes sure the external branch can't break the run when the file isn't there - which is the branch that's missing on someone else's machine almost every single time you share a workflow.

    CategoryANDRO

    Inputs (5)

    NameTypeDefaultDescription
    audio_fileCOMBOA file from the input folder. A name that does not exist here - on another machine, say - yields silence and a note, not an error.
    silence_secondsFLOAT5.00.1–3600How long the substituted silence is when no file is selected or the file is missing. Match it to the clip you are generating - some audio-conditioned models size their latent from the audio, so silence that is too short can shorten the result.
    sample_rateINT480008000–192000Sample rate of the GENERATED SILENCE only - a real file always keeps its own rate, whatever this says, and the report states which rate was actually loaded. Set it to what the downstream audio encoder expects (48000 for LTX).
    path_overrideoptSTRINGAbsolute path, for audio that lives outside the input folder. Wins over audio_file when set.
    resample_to_sample_rateoptBOOLEANfalseResample a loaded file to the sample_rate above. Off by default because resampling is never free and most graphs do not need it - but when the downstream encoder wants one rate and the file has another, the mismatch otherwise surfaces as a confusing failure much further down the graph. The report always states both rates, whether or not this is on.

    Outputs (2)

    NameTypeDescription
    audioAUDIOThe loaded audio, or silence of the requested length if there was no file.
    reportSTRINGWhich file was loaded and its length / rate / channels - or why silence was substituted. Nothing is ever swapped for silence quietly.