Mpi Load Audio
Load audio by path — even pull a soundtrack out of a video file
- audio
ComfyUI's built-in Load Audio is picky about where files can live and how you point at them. Mpi Load Audio does the same job but takes a plain path string - and one thing the built-in won't do: it'll pull the audio track straight out of a video file. Hand it an .mp3, a .wav, or a .mp4 with sound in it, and you get a ComfyUI AUDIO object out the other end, ready to feed into a save-video node or anything else that eats audio.
The interface is two inputs. string is the file path (deliberately named to match the pack's MpiString and MpiAnyChecker outputs, so a path generated upstream wires in without adapters). block_if_empty is a boolean, default ON, with a specific meaning: if the path is empty, the file is missing, or the file has no audio at all, the node blocks downstream execution rather than letting a silent hole propagate. Flip it OFF and the node outputs silent audio instead - a zeroed waveform - so the graph just keeps running. That's a thoughtful distinction: in an automation context, "there's no sound here" is often a legitimate condition, not an error.
How it works is worth knowing because it explains the dependency story. The node shells out to ffmpeg - it looks for the VHS_FORCE_FFMPEG_PATH environment variable, then the ffmpeg bundled with imageio-ffmpeg (the same one Video Helper Suite uses), then PATH. Portable ComfyUI ships that bundle, so in practice you're covered out of the box. It decodes to a temp WAV and reads it back as a [1, channels, samples] waveform plus sample rate. No extra pip packages to install - the pack itself has zero Python dependencies.
Where people get burned: ffmpeg detection is the whole failure surface. If your engine genuinely has no ffmpeg anywhere, the node reports the path as "no audio" and returns the blocked/silent fallback - it degrades gracefully but silently, so a mysteriously mute output is your clue to check whether ffmpeg exists. And remember block_if_empty's default: if you're chaining this in a workflow where an empty path is a normal state (say, an optional music track on an otherwise silent clip), you want the boolean OFF, or the whole branch just stops.
Installing is the pack's standard no-drama deal: ComfyUI Manager → search "ComfyUi-MpiNodes" → install → restart, or
cd ComfyUI/custom_nodes
git clone https://github.com/MadPonyInteractive/ComfyUi-MpiNodes
No models to download, nothing heavy. It's one of the video-adjacent utilities in the Mad Pony Interactive pack (the engine under the Cubric Vision app), and it slots naturally into a video pipeline: load a clip with MpiLoadVideo, grab its soundtrack separately, and reattach audio to an edited render. If you've ever wanted to rip the audio out of a reference video to drive a soundtrack-matched generation, this is the node that does it in one step.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| string | STRING | Audio (or video) file path. Named 'string' so it matches MpiString / MpiAnyChecker outputs. | |
| block_if_empty | BOOLEAN | true | ON: empty/missing/audio-less path blocks downstream execution. OFF: outputs silent audio so the graph continues. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |