Nodes/ComfyUI_AceNodes/πŸ… Audio Load
ComfyUI Node

πŸ… Audio Load

Load a wav, mp3, or flac into your graph β€” as raw samples, not a decoded dict

By hay86Β·Created 2 years agoΒ·Updated about a year agoΒ· 96
πŸ… Audio Load
    • AUDIO
    • SAMPLE_RATE
    β—„audioβ–Ύβ–Ί

    If you've been living in pure image-land, welcome to the audio side: ComfyUI core has no audio loader, so every audio pipeline starts with a pack that adds one. ACE_AudioLoad is Ace Nodes' entry point - a dropdown of your audio files in the input folder, plus an upload button, that reads the file with soundfile and hands you the samples and the sample rate. It's the audio equivalent of Load Image, with one important difference you need to know about before you wire anything.

    It's part of πŸ… Ace Nodes (hay86/ComfyUI_AceNodes), the usual one-author grab-bag.

    How it works

    The dropdown lists wav, mp3, and flac files from ComfyUI/input, and the JS widget lets you upload a file straight into that folder from the node. When the graph runs, it reads the file via soundfile and returns:

    • AUDIO - the raw audio samples as a list of floats (interleaved, in the -1..1 range).
    • SAMPLE_RATE - an integer, e.g. 44100 or 48000.

    The samples are hashed for change detection and validated on input, so ComfyUI re-runs when the file changes. Both outputs are meant to feed this pack's ACE_AudioSave and ACE_AudioPlay, which expect the same "samples + sample rate" pair.

    The trap: this pack is inconsistent about audio format

    Here's the thing that will waste an evening. ACE_AudioLoad returns samples and a separate sample rate. But ACE_AudioCrop - the pack's own crop node - expects the standard ComfyUI audio dict, {"waveform": tensor, "sample_rate": int}, the format VideoHelperSuite and other audio packs use. So the natural Load β†’ Crop chain doesn't actually type-match: the crop node's audio["waveform"] lookup will fail on a raw list. AudioSave/AudioPlay are on the Load side of the split; AudioCrop is on the dict side. Plan your chain accordingly - if you want to crop what you load, you'll need a converter or another audio source.

    Installing

    ComfyUI Manager β†’ search ComfyUI_AceNodes, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/hay86/ComfyUI_AceNodes
    

    Then restart. This node needs soundfile from the pack's requirements.txt, and Manager installs the whole list anyway (transformers, rembg, insightface, openai, boto3, oss2, …). The heavy tax comes with the pack whether you use two nodes or twenty.

    Where you'll use it

    TTS pipelines (save the generated voice), music loops (play or slice them), or feeding audio alongside a video render. The upload-from-node button is genuinely convenient - it saves the file-explorer trip. Just keep the format caveat in mind, and if your workflow is mostly dict-based audio, weigh whether a VideoHelperSuite-style loader would be a smoother fit.

    CategoryAce Nodes

    Inputs (1)

    NameTypeDefaultDescription
    audioCOMBO0 options:

    Outputs (2)

    NameTypeDescription
    AUDIO*β€”
    SAMPLE_RATEINTβ€”