ComfyUI Node
Audio Post-Process (Resample/Fade/Norm)
The mastering chain that hides the seams
Audio Post-Process (Resample/Fade/Norm)
- audio
- splice_info
- audio
- splice_info
◄target_rate44100►
◄fade_length0.1►
◄normalizetrue►
◄resampling_algsinc_interp_hann►
◄lowpass_cutoff11000►
◄highpass_cutoff60►
This is the "mastering" node - the last thing in your audio chain before the file lands on disk, doing what a real mixing engineer does at the end of a session: resample, filter, fade, normalize. If you've been generating speech with CosyVoice or running voice conversion, you've probably noticed the audio doesn't sound bad, exactly, but it has a digital sheen and the occasional blip at cut points. That's precisely what this node exists to kill.
What it actually does
Four distinct jobs, all standard and all explainable:
- Resample - up-sample to 44.1kHz or 48kHz with a high-quality Sinc interpolation (
sinc_interp_hanndefault;sinc_interp_kaiseris the alternative). Output at 22–24kHz just sounds cheap; this fixes that. - LowPass filter - default 11000Hz, and it's the most interesting part. The README calls it a 6-stage cascade designed like a "brick wall" to smash the high-frequency aliasing artifacts that CosyVoice's resampling leaves behind. 0 disables it.
- HighPass filter - default 60Hz, a gentler single-stage roll-off that kills low rumble and DC offset without eating the bass warmth of a voice.
- Fade in/out + Normalize - small fades on the edges so joins and cuts don't pop, and a normalize-to-−1dB so the loudness is full but safe.
The inputs
- audio - whatever came out of your TTS/VC/enhance node.
- target_rate -
44100(default),48000,24000,22050, orOriginal. 44.1k is the standard call. - lowpass_cutoff (11000 default, 0=off) and highpass_cutoff (60 default, 0=off) - the two filters above. Leave the defaults unless you hear something specific; they were tuned for this pack's own output.
- fade_length - seconds of fade on each end, 0.1 default.
- normalize - on by default.
- resampling_alg - the interpolation kernel;
sinc_interp_hannis the default for good reason. - splice_info (optional) - the passthrough again, so this node can sit inside a voice-conversion pipeline without dropping the seam metadata. It comes back out the other side.
Outputs
audio (the finished track) and splice_info (passthrough).
Where it goes in a graph
The README is specific: put it after Voice Conversion. The full "sounds recorded, not generated" chain is:
TTS → Audio Enhance (Resemble) → Audio Post-Process → save
or for the long-conversion path:
source → Smart Chunker → Voice Conversion → Audio Post-Process
Gotchas
- It can't fix what's not there. Post-processing is cosmetic; if the conversion itself landed a seam mid-word, this won't repair it - that's what the Silence Splitter/Splice Analyzer pair is for, upstream.
- Don't stack resamples. If you set
target_ratebut your save/preview node also resamples, you're doing two Sinc passes for nothing. Pick one place. - The defaults are genuinely good for this pack's output. Tweak only on evidence - e.g. raise
lowpass_cutoffif you're feeding it a real instrument recording and it's getting dull.
CategoryAIIA/Audio
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| target_rate | COMBO | 44100 | 5 options: 44100, 48000, 24000, 22050, Original |
| fade_length | FLOAT | 0.10–5 | Fade in/out duration in seconds |
| normalize | BOOLEAN | true | Normalize to -1dB |
| resampling_alg | COMBO | sinc_interp_hann | 2 options: sinc_interp_hann, sinc_interp_kaiser |
| lowpass_cutoff | INT | 110000–24000 | Apply LowPass filter at this frequency (Hz) to remove aliasing noise. 0 to disable. |
| highpass_cutoff | INT | 600–2000 | Apply HighPass filter at this frequency (Hz) to remove low-end rumble/DC offset. 0 to disable. |
| splice_infoopt | SPLICE_INFO | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| splice_info | SPLICE_INFO | — |