Audio Convolve (IR)
Feed it any audio as an impulse response
- audio
- ir
- video
- audio
Most "reverb" in lightweight tools is a fake - a handful of synthetic echoes tuned to sound plausible. Audio Convolve (IR) is the real thing: it convolves your audio with an impulse response, so the result genuinely sounds like it was played in whatever space that IR captured. Feed it a recording of a cathedral, a spring reverb tank, a guitar cabinet, or the sound of your own room, and your dry track gets placed in that space.
This is one of the pack's two impulse-response stages, and they're designed to work as a pair. Deconvolve captures a room's IR from a sine-sweep recording; Convolve is the stage that applies an IR you already have. If you have a collection of IR files - the internet is full of free ones from hardware reverbs and famous rooms - this stage is where they become usable inside ComfyUI. It's also the "aha" node for anyone who's ever wondered what convolution actually does in an audio tool: it's not magic, it's literally a fftconvolve over your samples with the IR as the kernel.
How it works
The ir input (COMFYTV_AUDIO) is the impulse response, and audio (COMFYTV_AUDIO) is the dry signal - or you can pass video and it'll use that clip's soundtrack. The source shows the math: both are decoded to sample arrays and convolved with scipy.signal.fftconvolve, one channel pair at a time. Then the three knobs shape the result:
wet(0–2, default 1) - how much of the convolved reverb is in the output.dry(0–2, default 0) - how much of the original signal is blended back in. A classic reverb send is wet ~1, dry ~0.2–0.5.normalize(default on) - rescales the result so the convolution doesn't blow your levels through the roof. Leave it on unless you know what you're doing.
Output is audio (COMFYTV_AUDIO), ready for the rest of the chain. Internal inputs (force_run_token, project_id, parent_output_id) are ComfyTV frontend plumbing - don't wire them.
Installing ComfyTV
cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV
Full backend restart, then ComfyTV → AudioFX; ComfyUI Manager finds "ComfyTV". Zero extra Python deps - the DSP is numpy + scipy's fftconvolve, both of which ComfyUI already installs. No models; you supply the IR file.
The usual install trap: on macOS / ComfyUI Desktop / multi-install machines, the relative cd can clone into the wrong instance (clone succeeds, nodes never appear). Find the running instance's path in the startup log, clone by absolute path into that instance's custom_nodes (quote paths with spaces/parentheses), verify ComfyTV/__init__.py is top-level, and restart the backend - not just the browser tab.
Common issues
- The output is quiet or swamped in mud. That's the
normalizeinterplay: a long, loud IR convolved with a busy track gets dense fast. Lowerwet, add somedry, and shorten the IR if you can. - It sounds like a flanger, not reverb. Your IR is too short - under ~0.1s an IR stops being "space" and starts being a comb filter. Use a longer IR, or capture one properly with the Deconvolve stage.
- Nothing comes out. The
irsocket is empty. Every convolve needs a real impulse response on that input. - The result is longer than the source. Expected - convolution output is
input + IR − 1samples. If that bothers you, trim the tail with the Audio Trim stage.
Convolution reverb is one of those things people assume needs a dedicated plugin. It doesn't anymore. This stage plus a decent IR library is a full reverb section.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| force_run_token | INT | 00–2147483647 | Internal — bumped on Run to invalidate ComfyUI's input cache. |
| project_id | STRING | Internal — populated by the projectStore on the frontend. | |
| parent_output_id | INT | 00–2147483647 | Internal — lineage parent set by spawn handlers on the frontend. |
| wet | FLOAT | 1.000–2 | — |
| dry | FLOAT | 0.000–2 | — |
| normalize | BOOLEAN | true | — |
| audioopt | COMFYTV_AUDIO | — | |
| iropt | COMFYTV_AUDIO | — | |
| videoopt | COMFYTV_VIDEO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | COMFYTV_AUDIO | — |