Reference Audio
Voice and sound clips from anywhere on disk, tagged with @
- audio
Audio is the input everyone forgets until the model asks for it. The reference-to-video nodes take sound as well as pictures now - Seedance 2.5 takes up to ten audio references, MiniMax H3 three, HeyGen three - and the audio you want is never in ComfyUI/input. It's in the voice-actor folder, the sample library, the DAW's export directory.
ReferenceAudio is the pack's answer: a full path in, an AUDIO out, nothing copied. It's the current id for what older workflows call LibraryAudio.
What it is, in context
This pack's whole premise is that reference files should live where you keep them and be referred to by name in a prompt. You build named libraries of images, video and audio; you type @Line_04 in a Reference Prompt; the file gets wired into the model's next free audio input when you queue. This node is the manual path into that world - you point it at one specific file, give it a name, and now @Line_04 means that recording. It also works standalone as a plain "load audio from anywhere" node, which is how most people will first use it.
The pack ships it because ComfyUI's core Load Audio is confined to input. Everything else about audio in ComfyUI is pleasantly boring, and this node keeps it that way.
Inputs and outputs
path- "Full path to a audio file anywhere on disk." Absolute path. The node has aBrowse…button that opens a native dialog and fills it in.name- "Tag used as @name in the prompt. Empty = file name without extension." Blank is fine: the file stem becomes the tag, andBrowse…sets it for you. Characters that aren't letters, digits,_or-collapse to_.audio(AUDIO) - one output, the standard ComfyUI audio dict of{"waveform": …, "sample_rate": …}.
The implementation is deliberately thin: it calls ComfyUI's own comfy_extras audio loader and wraps the result. No resampling, no normalisation, no channel mixing, no trimming. A 48 kHz stereo file stays 48 kHz stereo, and if a downstream node wants 44.1 kHz mono that's a node you add, not something this one hides from you. For reference-driven models I think that's the correct default - you want to know exactly what got sent.
One tiny cosmetic thing worth knowing before you go hunting for a bug: audio assets have no thumbnail in the library and in the Reference Prompt's strip. The frontend draws a placeholder, because 128px WebP thumbnails of a waveform aren't useful. It's not a broken image.
IS_CHANGED fingerprints path, mtime and size, so replacing a take re-runs the loader and an untouched file keeps the graph cached.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/PixelMonkey77/comfyui-reference-library
Restart ComfyUI, or use ComfyUI Manager's Install via Git URL with the same URL. There is no requirements.txt and nothing to download - the pack declares an empty dependency list because it only uses what ships with ComfyUI.
The requirement that matters: Settings → Comfy → Nodes 2.0 → Modern Node Design (Nodes 2.0). The pack is written for ComfyUI's modern frontend and the classic canvas is unsupported. Some people have deliberately stayed on the legacy canvas since Nodes 2.0 broke a pile of packs in late 2025 - if you're one of them, this pack isn't an option, however much you like the sound of it.
Common issues
"Use a full path…" - relative paths are refused on purpose, and . won't be resolved against the pack's folder. Quote-wrapped paths pasted from Windows Explorer are handled; ~ expands; environment variables don't, deliberately.
A yellow note instead of a working path. The loaders only read folders the pack has already used: ones you picked a file in, ones holding library files, and ComfyUI's input/output. Click Browse… once and that folder is trusted. This guard matters more for audio than people expect - an audio-reference input to a paid model is exactly the kind of thing a hostile shared workflow would point at your voice notes.
The model rejects the clip. Check sample rate, channel count and length against what the node documents. Since nothing is converted here, you're seeing your file's real properties.
Library editing does nothing. Picking files and editing libraries only works from http://127.0.0.1 or http://localhost, not from another machine on a --listen server.
An older workflow shows LibraryAudio. Same node, old id - leave it alone.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| path | STRING | Full path to a audio file anywhere on disk. | |
| name | STRING | Tag used as @name in the prompt. Empty = file name without extension. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |