Nodes/AudioSR/AudioSR
ComfyUI Node

AudioSR

The node that makes AI-generated audio stop sounding like it was recorded in a tin can

By Saganaki22·Created 8 months ago·Updated 7 months ago· 101
AudioSR
  • audio
  • audio
  • spectrogram
ddim_steps50
guidance_scale3.5
seed0
modelbasic (download required)
chunk_size15.00
overlap0.0
unload_modelfalse
show_spectrogramtrue
attention_backendsdpa
dtypefp32
use_torch_compilefalse

If your video generator's audio sounds muffled and hollow - which it almost certainly does, because AI video models top out around 24–32kHz and skimp on high frequencies - AudioSR is the closest thing audio has to a SeedVR2. It's a latent diffusion model that takes whatever you feed it and regenerates it at 48kHz with plausible high-frequency content. It won't fix the weird diffusion aliasing in AI video audio completely, but it reliably makes the difference between "this clip is unusable" and "nobody will notice."

This is the ComfyUI wrapper around AudioSR (Versatile Audio Super Resolution), the 2023 paper by Haohe Liu et al. (arXiv 2309.07314). It's genuinely the community's go-to for one real job: feeding the audio track out of a video generation workflow back into the graph and giving it a fuller, cleaner sound. The same trick works on old recordings, low-bitrate MP3s, or any audio that lost its top end somewhere.

How it works

AudioSR is a latent diffusion model trained on audio - the same denoising family as Stable Diffusion, just applied to a log-mel spectrogram instead of pixels. Your input audio gets resampled to 48kHz (it accepts anything from 8–48kHz), encoded into a latent, then denoised over ddim_steps passes while being conditioned on the original signal. That conditioning is what keeps it a super-resolution model rather than a synthesizer: it adds the missing high frequencies, it doesn't rewrite your content. In practice the model works in 5.12-second blocks, so anything longer gets split into chunk_size chunks (default 15s), each chunk runs full diffusion, and the results get crossfaded back together with overlap-add.

One thing to internalize before you queue: this is slow, and it's slow by design. The source spells it out - 60 seconds of stereo audio is roughly 4 chunks × 2 channels × 50 steps = 400 neural network passes. Keep clips short, or walk away while it churns.

Inputs that matter

The defaults are sane, so you'll mostly touch these four:

  • ddim_steps (50): denoising steps. 50 is the sweet spot; 100+ for critical audio, 10–30 for quick previews. Too high can start to sound artificial.
  • guidance_scale (3.5): how faithfully the output follows the input. Lower = more creative/looser, higher = more faithful. If output sounds warbly or artificial, drop toward 2.5–3.0.
  • seed (0): random by default; fix it when you want reproducible results.
  • model: checkpoint, chosen from what's in ComfyUI/models/AudioSR/. Two variants exist - basic (general audio) and speech (voice). Community consensus, echoed in the LTX-2 audio PSA thread, is that basic often sounds better even for speech, so don't overthink this one.

Worth knowing if you want speed: overlap (0 default, 2.0–3.0 recommended for long audio) smooths chunk seams at a speed cost, dtype lets you run fp16/bf16, attention_backend can use sageattn for a real speedup on RTX 30/40 cards (requires fp16/bf16 + pip install sageattention), and use_torch_compile gives ~20–30% after a one-time warmup - but only with fp32 models, so skip it for a single clip. unload_model frees VRAM between runs at the cost of a slower next run.

Outputs: audio (AUDIO at 48kHz - wire it to Preview Audio or Save Audio) and spectrogram (IMAGE, a before/after comparison that makes the improvement oddly satisfying to watch).

Installation

Install via ComfyUI Manager (search "AudioSR") or:

cd ComfyUI/custom_nodes
git clone https://github.com/Saganaki22/ComfyUI-AudioSR
cd ComfyUI-AudioSR
pip install -r requirements.txt

The one step everyone misses: the models do not come with the node. Grab audiosr_basic_fp32.safetensors (and optionally audiosr_speech_fp32.safetensors) from HuggingFace and put them in ComfyUI/models/AudioSR/, then restart. Dependencies are heavy (librosa, torchlibrosa, transformers, phonemizer…) but auto-installed; budget ~6GB VRAM minimum, 12GB RAM recommended.

Troubleshooting

  • "Model not found": models must live in ComfyUI/models/AudioSR/ with a restart after. The dropdown lists whatever it finds there.
  • CUDA out of memory: enable unload_model, shrink chunk_size (2.56s minimum), or shorten the clip.
  • Seam glitches on long audio: the model pads internally to 5.12s multiples, which used to cause volume drops at chunk boundaries - fixed in v1.0.6, so update if you're older, and use overlap: 2.0–3.0.
  • SageAttention silently ignored: it needs fp16/bf16 and an SM80+ GPU (RTX 30-series or newer); it falls back to sdpa otherwise.

And a reality check the README gives you straight: the model can't create what was never there. Extremely damaged input still comes out sounding artificial - this is enhancement, not magic.

Categoryaudio

Inputs (12)

NameTypeDefaultDescription
audioAUDIO
ddim_stepsINT5010–500Number of denoising steps (higher = better quality, slower)
guidance_scaleFLOAT3.51–20Classifier-free guidance scale (higher = more faithful to input)
seedINT00–4294967295Random seed (0 = random)
modeloptCOMBObasic (download required)Model checkpoint file (place in ComfyUI/models/AudioSR/)
chunk_sizeoptFLOAT15.002.56–30Chunk duration in seconds for processing long audio (default: 15s from main repo)
overlapoptFLOAT0.00–5Overlap duration in seconds between chunks. Helps smooth transitions between audio chunks. Higher values = smoother but slower processing. (0.0 = no overlap, 2.0-3.0 recommended for long audio)
unload_modeloptBOOLEANfalseUnload model from memory after generation (frees VRAM, but slower next run)
show_spectrogramoptBOOLEANtrueGenerate before/after spectrogram comparison image
attention_backendoptCOMBOsdpaAttention backend: sdpa (PyTorch native), sageattn (fastest, requires fp16/bf16 dtype), eager (most compatible)
dtypeoptCOMBOfp32Compute dtype: fp32 (default, most compatible), fp16 (faster, less VRAM), bf16 (best on RTX 30/40 series). SageAttention requires fp16/bf16.
use_torch_compileoptBOOLEANfalseUse torch.compile() to optimize model for faster inference (FP32 only - experimental)

Outputs (2)

NameTypeDescription
audioAUDIO
spectrogramIMAGE