Audio Repair
Audio Repair — the de-clicker, de-clipper, and hum-killer in one stage
- audio
- video
- audio
- fx_spec
Audio Repair is the restoration drawer of the ComfyTV audio suite: the tool you reach for when a recording has specific damage rather than general hiss. Where Noise Reduction is the broad-spectrum net, this stage is the specialist - pick a method and it targets that fault with the right FFmpeg filter. Five methods:
- declick (default) - zaps clicks and pops:
adeclickwith window, threshold, and burst settings. Great for vinyl rips and glitchy recordings. - declip - reconstructs peaks that got hard-clipped into flat tops:
adeclipwith threshold and a horizontal window size. The classic fix for "the loud part sounds crunchy." - denorm - kills digital silence/noise-floor normalization artifacts via
adenorm(thedn_leveldefault of −351 dB is basically "make it quiet, not silent"). - wavelet - wavelet-domain denoise (
afwtdn) with sigma, percent, and levels. Needswt_sigmaabove 0; the node errors out if you leave it at 0, so set it before you Run. - hum - removes mains hum (50/60 Hz and its harmonics) with a stack of notch filters at
hum_freq,hum_harmonics, andhum_q. Default 50 Hz - flip it to 60 if you're in North America.
Each method has its own dk_ / dc_ / dn_ / wt_ / hum_ parameter group, and only the group for the selected method applies - the rest are inert, same pattern as Audio Modulation. Input is audio or video (it repairs the video's audio), outputs are audio plus an fx_spec you can feed into an FX Chain to stack with other effects and render in a single pass.
The one worth calling out is hum - that 50/60 Hz notch is the difference between a dialogue clip that sounds like a bad radio and one that's clean, and it's the method beginners most often overlook because it lives here instead of in the EQ stage. Set hum_freq to your local mains frequency and let the harmonics ride; the notch stack handles up to 16 harmonics before it starts touching real content.
Honest limitations: these are surgical filters, and the difference between "declick fixed it" and "declick made it worse" is mostly the threshold being too aggressive. Start with the defaults and nudge one parameter at a time. And don't expect de-clipping to reconstruct a waveform that was slammed flat for an entire song - it fixes clipped events, not deliberately overdriven mixes. For those, the Saturate stage is the tool, ironically, because it's what you'd use to add the grit back deliberately.
Install is the pack-wide story: ComfyUI Manager search "ComfyTV", or clone into custom_nodes/ and restart the backend fully. On Desktop/macOS with multiple instances, clone by absolute path into the running one. ComfyTV declares zero extra pip dependencies - every method here is a stock PyAV/FFmpeg filter, no models, CPU-only.
Inputs (18)
| 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. |
| method | COMBO | declick | 5 options: declick, declip, denorm, wavelet, hum |
| dk_window | FLOAT | 55.0010–100 | — |
| dk_threshold | FLOAT | 2.001–100 | — |
| dk_burst | FLOAT | 2.000–10 | — |
| dc_threshold | FLOAT | 10.001–100 | — |
| dc_hsize | INT | 1000100–9999 | — |
| dn_level | INT | -351-451–-90 | — |
| wt_sigma | FLOAT | 0.0000–1 | — |
| wt_percent | FLOAT | 850–100 | — |
| wt_levels | INT | 101–12 | — |
| hum_freq | FLOAT | 5010–2000 | — |
| hum_harmonics | INT | 81–16 | — |
| hum_q | FLOAT | 8.001–100 | — |
| audioopt | COMFYTV_AUDIO | — | |
| videoopt | COMFYTV_VIDEO | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | COMFYTV_AUDIO | — |
| fx_spec | COMFYTV_FXSPEC | — |