ComfyUI Node

Egregora RNNoise Denoise

The free, tiny, speech-only denoiser that just works

By lucasgattas·Created 12 months ago·Updated 7 months ago· 60
Egregora RNNoise Denoise
  • audio
  • limit_ceiling
  • AUDIO
frame_ms20
stereo_modeper_channel
strength1.00
mix_curveequal_power
adaptive_modemore_on_noise
adaptive_amount0.50
vad_threshold0.90
vad_smooth_ms50
post_gain_db0.0
ceiling0.999

If the Egregora pack's DeepFilterNet node is the heavyweight denoiser, RNNoise is the free weight that's been hiding in plain sight for years. It's the speech denoiser from the Xiph.org folks - the same people behind Opus - and it's been embedded in real-time voice stacks since 2017 because it's tiny, fast, and needs no GPU and no model downloads. This node wraps it for ComfyUI via pyrnnoise.

The catch, and it's a real one: RNNoise is speech-only. It was trained on voice, in frames of 10 ms at 48 kHz, and if you feed it music you'll get a weird, watery, artifact-laden mess. It's the right tool when your source is a person talking - podcast audio, voiceover, a vocal track pulled out of a noisy recording - and the wrong tool for basically anything instrumental. Know that going in and you'll have a great time.

How it works

Under the hood it's straightforward: the node resamples to 48 kHz (RNNoise's native rate), runs each channel through the RNNoise network frame by frame, and gets back both the cleaned audio and a per-frame speech probability. That probability is the secret sauce here - the node uses it to drive the adaptive mixing.

  • strength (default 1.0) sets a base wet/dry mix with an equal-power or linear curve.
  • adaptive_mode (default more_on_noise) uses the VAD probabilities to push denoising harder in frames where nobody's talking, so the vocal parts stay natural. gate_on_noise is the more aggressive version - it basically hard-switches between "clean it" and "leave it alone."
  • stereo_mode handles stereo either per-channel or by downmixing to mono (faster, and fine for mono podcast sources).
  • post_gain_db and ceiling (default 0 dB and 0.999) do a final trim and peak-limit so the result doesn't clip.

So the practical difference from the DeepFilterNet node: RNNoise is CPU-cheap and instant to set up (no weights to fetch), but it has a narrower range. For a busy podcast track it's often all you need. DeepFilterNet handles harder noise and tolerates music-adjacent content better, at the cost of a heavier install.

The inputs that matter

  • audio - the AUDIO buffer.
  • strength - start at 1.0 (full RNNoise), back off toward 0.7 if you hear artifacts.
  • stereo_mode - downmix_mono for mono voice, per_channel for stereo.

Output is one AUDIO buffer. Everything else has sane defaults; adaptive_mode is the one you might actually flip if the default leaves background hiss during silences.

Install and gotchas

The pack pulls in pyrnnoise via its requirements.txt and install.py, and the installer runs a tiny warmup to verify the backend. Two things to know:

  1. The default strength is 1.0. RNNoise at full strength is quite aggressive - it's tuned for real-time voice calls, so it can sound a touch "swirly" on clean studio recordings. For decent source, 0.8–0.9 is often the sweeter spot.
  2. Don't run it on music. This is the most common "why does this sound terrible" report, and it's not a bug - it's the model. Keep it on speech and let FlashSR or Fat Llama handle the musical content.

If you're deciding between this and DeepFilterNet for a speech track: start here. Zero download friction, CPU-only, and if it's good enough you just saved yourself a dependency.

CategoryEgregora/Enhance

Inputs (12)

NameTypeDefaultDescription
audioAUDIO
frame_msINT205–60
stereo_modeCOMBOper_channel2 options: per_channel, downmix_mono
strengthFLOAT1.000–1
mix_curveCOMBOequal_power2 options: equal_power, linear
adaptive_modeCOMBOmore_on_noise4 options: off, more_on_noise, more_on_speech, gate_on_noise
adaptive_amountFLOAT0.500–1
vad_thresholdFLOAT0.900–1
vad_smooth_msINT500–500
post_gain_dbFLOAT0.0-24–24
limit_ceilingBOOLtrue
ceilingFLOAT0.9990.1–1

Outputs (1)

NameTypeDescription
AUDIOAUDIO