Egregora DeepFilterNet Denoise
The speech denoiser that doesn't turn your voice into mush
- audio
- AUDIO
DeepFilterNet is one of the best open-source speech denoisers around, full stop. It's the thing people route through for podcasts, voiceovers, and discord-tier recordings where the vocal track sounds like it was captured inside a running dishwasher. This node wraps DeepFilterNet 2 or 3 for ComfyUI, and unlike a lot of naive noise-reduction plugins it has the one property you actually want: it cleans the noise without making the voice sound like it was processed through a cheese grater.
Where does it sit in the Egregora pack? Right at the front of the recommended chain. The README's suggested workflow is denoise → dereverb → optional FlashSR → a light Fat Llama pass → verify with the eval/null-test nodes. This node is the "denoise" step. It's the step you run before super-resolution, because FlashSR will happily amplify noise along with signal - you want the cleanest possible input.
How it works
DeepFilterNet runs at 48 kHz natively (the node resamples to match). It's a two-stage DNN: one stage learns a spectral mask, a second harmonic-plus-noise stage cleans up the residual, and there's a post-filter that can be toggled. The dfn_model dropdown picks between DeepFilterNet2 (the default, lighter and very well-trodden) and DeepFilterNet3 (newer architecture, generally better on hard cases, a bit more demanding). The device setting is auto by default - it'll use your GPU if present, else CPU.
What makes this node nicer than a plain wrapper is the mix stage bolted on top. strength (default 0.65) does a wet/dry blend with an equal-power or linear crossfade, so you're not forced all-in on the denoiser. And adaptive_mode lets the amount of denoising ride on a voice-activity detector - more_on_noise pushes strength up when no one's talking, gate_on_noise switches hard between a noisy frame (heavy denoise) and a speech frame (light touch). The VAD source can be RMS-based, real RNNoise, or none.
The inputs that matter
There are a lot of knobs here, and you can ignore most of them. The ones to touch:
dfn_model- start withDeepFilterNet2. Move to 3 only if 2 leaves audible noise.strength- 0.65 default is a sane starting point; dial to ~0.85 for truly terrible recordings.stereo_mode-per_channelkeeps the stereo image;downmix_monois faster and fine for voice-over.post_gain_dbandceiling- post-processing trim and a peak limiter (defaults 0.5 dB and 0.98) so denoised audio doesn't clip.
Output is a single AUDIO buffer. Everything else - frame_ms, mix_curve, vad_threshold, adaptive_amount - is genuinely useful but tweak-once-and-forget material.
Install notes
This is one of the pack's heavier dependencies. deepfilternet gets installed via the pack's requirements.txt / install.py, and the installer deliberately tries --no-deps first so it doesn't drag in a CPU-only torch that fights your ComfyUI install. The install script also does a warmup pass that fetches the model weights on first run. If you skip install.py and only clone, you'll see "deepfilternet not installed" - run the installer.
The trap
The use_postfilter toggle defaults to false for a reason: the post-filter can over-process some sources and give voice a slightly "processed" sheen. Leave it off until you've listened to the straight output. And remember the pack's own framing - these nodes improve audio, they don't fix a garbage source. Feed it a clip with a reasonable vocal-to-noise ratio and DeepFilterNet shines; feed it a wall of white noise and it'll do its best but you'll still hear it straining.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| dfn_model | COMBO | DeepFilterNet2 | 2 options: DeepFilterNet2, DeepFilterNet3 |
| device | COMBO | auto | 3 options: auto, cuda:0, cpu |
| use_postfilter | BOOLEAN | false | — |
| limit_ceiling | BOOLEAN | true | — |
| stereo_mode | COMBO | per_channel | 2 options: per_channel, downmix_mono |
| frame_ms | INT | 205–60 | — |
| strength | FLOAT | 0.650–1 | — |
| mix_curve | COMBO | equal_power | 2 options: equal_power, linear |
| adaptive_vad_source | COMBO | rms | 3 options: rms, rnnoise, none |
| adaptive_mode | COMBO | more_on_noise | 4 options: off, more_on_noise, more_on_speech, gate_on_noise |
| adaptive_amount | FLOAT | 0.450–1 | — |
| vad_threshold | FLOAT | 0.900–1 | — |
| vad_smooth_ms | INT | 600–500 | — |
| post_gain_db | FLOAT | 0.5-24–24 | — |
| ceiling | FLOAT | 0.9800.1–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| AUDIO | AUDIO | — |