Nodes/ComfyUI_AIIA/Audio AI Enhance (Resemble)
ComfyUI Node

Audio AI Enhance (Resemble)

Make CosyVoice audio sound like it wasn't generated

By havvk·Created about a year ago·Updated 6 months ago· 13
Audio AI Enhance (Resemble)
  • audio
  • splice_info
  • audio
  • splice_info
modeEnhance (Denoise + Bandwidth Ext)
solver
nfe32
tau0.50
denoise_strength0.50
chunk_seconds30
overlap_seconds1.0
high_pass_hz0
use_cudatrue

This is the node the AIIA author actually recommends you use, and the reason is specific: CosyVoice and other TTS engines output at 22–24kHz, and it shows. This node runs the resemble-enhance model - a Conditional Flow Matching network - that does two jobs at once: it removes noise and does bandwidth extension, rebuilding the upper frequencies so the output lands at 44.1kHz and sounds like a real recording instead of a codec's best guess. If you've ever rendered a CosyVoice line and thought "that's clearly a robot," this is the fix that's actually aimed at your problem.

How it works

resemble-enhance isn't an EQ; it's a generative enhancer. Its flow-matching model synthesizes the high-frequency detail from the audio's structure, which is why it can "invent" bandwidth that was never recorded. Because it's generative, every parameter here is about managing how creative it gets and where it gets it wrong. On first run the node auto-installs resemble-enhance (installed --no-deps to protect your environment - a thoughtful touch given how much ComfyUI dependency hell exists) and the model weights land in ComfyUI/models/resemble_enhance/.

Inputs that matter

  • mode - Enhance (Denoise + Bandwidth Ext) (default) vs Denoise Only. If your audio is already 44.1kHz and just noisy, Denoise Only is faster and safer.
  • nfe - the number of solver steps. 32 for a fast preview, 64 for real use, 128 when you want every artifact gone and have time to burn.
  • solver - Midpoint (default, best speed/quality balance), RK4 (higher quality, ~2× slower), Euler (fastest, can leave streaks).
  • tau - temperature, default 0.5. If the voice goes thin or "虚", drop it toward 0.3.
  • denoise_strength - 0.5 default, tooltip says it plainly: 0.0 keeps original noise, 1.0 full denoise. If you see horizontal hum stripes in the low end of a spectrogram, crank it to 0.8–1.0.
  • high_pass_hz - default 0 (off). When denoise_strength alone can't kill low-frequency hum because the model treats it as signal, set 50–80Hz and it's cut before enhancement. The author calls this the "stripes won't die" lever.
  • chunk_seconds / overlap_seconds - 30s / 1s is the 4090-class sweet spot; longer files get chunked so VRAM stays sane.

Plus use_cuda (on) and an optional splice_info passthrough for pipeline use. Outputs: audio and splice_info.

The gotchas, honestly

  • First run JIT-compiles the model and takes about a minute. One-time, but it looks hung. Wait it out.
  • It's slow relative to a filter. This is a generative model running per chunk; a long podcast takes real minutes.
  • Don't double-dip. The README explicitly steers you away from running VoiceFixer on top of this - VoiceFixer's reconstruction adds artifacts to already-clean audio. Pick one.

Wiring it in

Typical spot in a graph: TTS (CosyVoice/Qwen/VibeVoice) → Audio Enhance → Audio Post-Process → save. Feed the enhance output into the post-process node for the final resample/normalize, and you have a "generated speech → sounds recorded properly" chain in two nodes. That's the whole pitch, and it works.

CategoryAIIA/Audio

Inputs (11)

NameTypeDefaultDescription
audioAUDIO
modeCOMBOEnhance (Denoise + Bandwidth Ext)2 options: Enhance (Denoise + Bandwidth Ext), Denoise Only
solverCOMBO3 options: Midpoint, RK4, Euler
nfeINT321–128
tauFLOAT0.500–1
denoise_strengthFLOAT0.500–10.0 = Keep Original Noise, 1.0 = Full Denoise. Increase to remove artifacts/hum.
chunk_secondsFLOAT301–60
overlap_secondsFLOAT1.00–5
high_pass_hzINT00–1000Remove low frequency rumble/hum before enhancement. Try 50-80Hz if you see horizontal stripes.
use_cudaBOOLEANtrue
splice_infooptSPLICE_INFO

Outputs (2)

NameTypeDescription
audioAUDIO
splice_infoSPLICE_INFO