(SP) Convolution Reverb
Convolution reverb that doesn't need a DAW
- audio_input
- audio
This is the node that makes generated voices sound like they're in a room instead of on a microphone. (SP) Convolution Reverb takes an impulse response - a recording of how an actual physical space or piece of hardware responds to a burst of sound - and convolves it with your audio. That's the exact same trick every big-name reverb plugin uses, and it's the most "pro result for free" node in this pack.
It's also the one with real community legs. A popular lip-sync dubbing workflow for Latentsync 1.5 in r/StableDiffusion ships with this node baked in - the workflow author's notes literally link to this pack's repo and say "enable the Convolution Reverb node if you want reverb in the generated audio." That's the classic use case: TTS and voice-cloned audio comes out dry and sterile, and a plate reverb makes it sit in a scene.
Setup is the whole job
Unlike the other nodes, this one needs files before it'll do anything. The impulse_response dropdown only lists what it finds in the pack's audio/ir/ folder - which is gitignored, so it doesn't exist until you create it. The README points you at two great, well-licensed sources:
- Voxengo IRs:
https://oramics.github.io/sampled/IR/Voxengo/ - Greg Hopkins' EMT-140 plate reverb:
https://oramics.github.io/sampled/IR/EMT140-Plate/
Grab the WAVs and drop them in like this:
ComfyUI/custom_nodes/ComfyUI_SignalProcessing/audio/ir/Voxengo/
ComfyUI/custom_nodes/ComfyUI_SignalProcessing/audio/ir/EMT-140-Plate/
Any .wav, .mp3, .ogg, .m4a, .flac, or .mp4 in that folder tree shows up in the dropdown. Start with a small room IR or the plate - they're forgiving.
The inputs
- impulse_response - the IR file to convolve with.
- audio_input - what you're reverbing.
- wet_dry - the mix, 0.0 (all dry) to 1.0 (all wet), default 0.5. This is the knob you'll actually live on. Convolution reverb from an IR is powerful; 0.5 is a sensible first click, and most of my final mixes sit at 0.15–0.3.
One audio output feeds your chain. Under the hood it's a per-channel conv1d with the IR reversed and normalized, wet/dry blended, and - this pack's signature move - the output re-normalized to the input's LUFS so slapping on reverb doesn't suddenly double your perceived volume.
Where people get burned
- The IR dropdown is empty until you've created
audio/ir/and dropped files in. That's not a bug. - Mismatched sample rates are handled for you (the IR gets resampled to your audio's rate), so don't overthink it.
- If you feed it a mono track and a stereo IR it'll collapse the IR to mono; stereo in gets handled per channel. Fine either way, just don't expect a mono voice to come out with lush width - that's what Stereo Width is for.
Installing it
ComfyUI Manager → "Install Custom Nodes" → search ComfyUI Signal Processing, or:
cd ComfyUI/custom_nodes
git clone https://github.com/c0ffymachyne/ComfyUI_SignalProcessing
then restart ComfyUI. Dependencies from requirements.txt (scipy, pyfar, torchaudio, pyloudnorm, cupy-cuda11x, ...). The repo is a work in progress, and because it imports the CuPy-based Limiter at startup, a CUDA/cupy mismatch is the most common reason the pack - and this reverb - won't load. Worth knowing, because once it loads, this node is one of the few genuinely "just works" wins in ComfyUI audio.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| impulse_response | COMBO | 0 options: | |
| audio_input | AUDIO | — | |
| wet_dry | FLOAT | 0.500–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |