🔉 Audio Load (OreX)
Get sound into the graph, trimmed and ready
- audio_out
- file_path
- duration
ComfyUI's audio story is short: a handful of nodes deal with AUDIO tensors, and not many of them are about getting a file in cleanly. Audio Load (OreX) is the input side - it loads an audio file from disk, trims off the bits you don't want, and hands you a standard ComfyUI AUDIO object plus the file path and duration. If you're building a workflow where a video gets a new soundtrack (pair it with the pack's Advanced Video Load), or you need a specific slice of a track as conditioning for audio-to-video, this is the loader you'll reach for.
How it works
The audio input is a plain text field - paste a path, or use the frontend's drag-and-drop/chunked upload, which the pack's custom endpoint handles for big files. The loader then tries three backends in order: pydub (if installed), then soundfile (which the pack's requirements.txt installs), then torchaudio. It converts whatever it reads into a normalized float32 waveform tensor plus the sample rate, which is exactly the shape ComfyUI's AUDIO type expects.
Trimming is the feature. Two pairs of inputs control it:
trim_start_sec/trim_end_sec- a simple start point and an end cut from the tail, in seconds (both are sliders).trim_start/trim_end- the same idea but as free numeric fields.
The logic prefers the free-number fields when they're above zero, falling back to the sliders. The trimming is forgiving: if your start and end overlap, it just returns the whole file instead of crashing.
Outputs that matter
- audio_out - the AUDIO tensor (waveform + sample rate), ready to feed video muxing or audio-aware nodes.
- file_path - the resolved absolute path, useful for logging or naming.
- duration - the length of the trimmed audio in seconds, which is genuinely handy if you're syncing video to it.
Install and real dependencies
Same pack install (Manager, search "comfyui-OreX", or git clone https://github.com/orex2121/comfyui-OreX), restart. soundfile comes with the pack's requirements; pydub and torchaudio are optional extras the node will happily use if present. ffmpeg helps with more exotic formats - if a file won't load, the error message will explicitly suggest checking ffmpeg or re-encoding.
Where people get tripped up
The double trim-input design (sliders and free fields) confuses everyone once. If your trimmed output is unexpectedly the full file, you probably typed into a free field that's being ignored or set one of the sliders to something nonzero you forgot about. And remember duration reflects the trimmed result - sync work against that number, not the original track length. It's a small node with a single job, but for audio-touching workflows it quietly becomes load-bearing.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | STRING | — | |
| trim_start_sec | FLOAT | 0.000–100000 | — |
| trim_start | FLOAT | 0.000–100000 | — |
| trim_end_sec | FLOAT | 0.000–100000 | — |
| trim_end | FLOAT | 0.000–100000 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| audio_out | AUDIO | — |
| file_path | STRING | — |
| duration | FLOAT | — |