ComfyUI Extension
Audio Duration
Returns the duration of an audio source, which can be provided either as a filesystem path or as raw audio data (samples and sample rate) from an upstream node. Duration calculation primarily uses ffprobe (from FFmpeg) for paths, or calculates the duration directly from samples/SR if no path is available.
scofano/comfy-audio-duration
Nodes2
On cloudLocal install
Categoryaudio/utils
Stars11
Updated4 months ago
Nodes (2)
Readme

Audio Utilities (ComfyUI Custom Nodes)
This custom node package currently includes two audio utility nodes:
- Audio Duration: returns the duration of an audio source, which can be provided either as a filesystem path or as raw audio data (samples and sample rate) from an upstream node.
- Audio Add Silence: receives an
AUDIOinput and outputs the same audio with optional silence prepended and/or appended in milliseconds.
Duration calculation primarily uses ffprobe (from FFmpeg) for paths, or calculates the duration directly from samples/SR if no path is available.
Install
- Ensure FFmpeg is installed and
ffprobeis on your PATH. - Copy this folder into
ComfyUI/custom_nodes/comfy-audio-duration/. - Install Python dependencies: This node requires
scipyto save raw audio data to a temporary file for duration probing.pip install -r requirements.txt # OR: pip install numpy scipy
4. Restart ComfyUI.
## Nodes
### Audio Duration
**Category:** `audio/utils`
**Name:** `Audio Duration`
### Inputs
The node will prioritize a connected `audio` object over the `audio_path` string.
- `audio_path` (STRING): Absolute or relative path to an audio file. If left empty, the node will use the `audio` input.
- `audio` (AUDIO, optional): An upstream audio object, which may contain a path, a pre-computed duration, or raw samples and sample rate.
### Outputs
1. `seconds_int` (INT)
2. `seconds_float` (FLOAT)
3. `minutes_int` (INT)
4. `minutes_float` (FLOAT)
### Audio Add Silence
**Category:** `audio/utils`
**Name:** `Audio Add Silence`
#### Inputs
- `audio` (AUDIO): Input audio object.
- `prepend_silence` (FLOAT): Silence to add before the audio, in milliseconds. Default: `100.0`.
- `append_silence` (FLOAT): Silence to add after the audio, in milliseconds. Default: `200.0`.
#### Output
1. `audio` (AUDIO)
#### Behavior
- The node adds zero-valued audio samples to the beginning and/or end of the input waveform.
- The silence length is calculated from the input audio sample rate and the selected millisecond values.
- If `prepend_silence` is `0`, no silence is added at the start.
- If `append_silence` is `0`, no silence is added at the end.
- If both values are `0`, the original audio is returned unchanged.
## Troubleshooting
- **`RuntimeError: Provide either a valid audio_path or connect an AUDIO input...`**:
* The node could not find a file path in `audio_path` or in the connected `audio` input.
* The connected `audio` object does not contain a file path and the node failed to extract valid audio samples and sample rate.
* **Fix:** Ensure the upstream audio node has successfully loaded an audio file, or manually provide a path in the `audio_path` field.
- **`ImportError: scipy not found. Please install it...`**:
* You are attempting to use the node with raw audio data (samples/sr) but the necessary `scipy` library is missing.
* **Fix:** Run `pip install scipy` in your ComfyUI environment.
- **"ffprobe not found"**: Install FFmpeg and make sure `ffprobe` is available in your shell (on Windows, either add `ffprobe.exe` to PATH or place it next to the ComfyUI executable).
- **Non-numeric duration**: The file may be corrupt; try remuxing.
- **IMPORT FAILED / 0.0 seconds** on Windows portable builds usually means Python couldn’t import the package (before your code even runs). Most common causes:
1) **Folder name has a hyphen** (e.g., `comfy-audio-duration`). Python packages can’t be imported with hyphens. **Rename the folder** to `AudioDurationNode` or `comfy_audio_duration`.
2) **Missing `__init__.py`** or wrong file casing.
3) **Syntax error** from copy/paste.