Music - Audio Upscale
Sample-Rate Conversion Is Not Magic — Here's What It Actually Does
- audio
- AUDIO
The name "Audio Upscale" invites the wrong expectation. This is not a super-resolution model that conjures missing detail out of a low-quality recording. It's band-limited sample-rate conversion - 16 kHz up to 192 kHz - and the pack's own README leads with the disclaimer: "Sample-rate conversion does not recreate frequencies or detail missing from the source." If you remember nothing else, remember that, because it's the difference between this tool being useful and it disappointing you.
What it's actually for
Sample-rate conversion exists to make audio compatible, not better. Real uses inside a ComfyUI graph:
- Mixing tracks recorded at different rates. Your AI-generated instrumental came out at 44.1 kHz, your TTS vocal at 24 kHz, and you want to sum them. This node gets them on the same clock first. (Music - Audio Mixer does this conversion automatically, for what it's worth.)
- Matching a delivery spec. Video pipelines often want 48 kHz; broadcast wants 48 kHz; your DAW session might want 96 kHz.
- Preparing audio for a pipeline stage that needs a specific rate.
The mechanism is straightforward: band-limited resampling (anti-alias filtering + interpolation), preserving mono, stereo, and batch layouts. Since the pack stores the sample rate as metadata in the standard ComfyUI AUDIO dict, the node reads the source rate, resamples to target_sample_rate, and stamps the new rate on the output so downstream nodes know what they're dealing with.
The inputs
target_sample_rate(INT, 16000–192000, step 8000, default 48000) - where you're going. 48000 is the sensible default for most pipelines.restore_original_sr(BOOLEAN, default false) - this one's a bit odd. When true, the node upscales to the target, processes, then rescales back to the original sample rate. It exists for cases where you want the "upscaled and cleaned" audio but your downstream expects the original rate - for example, feeding an upscaled-then-processed track into a node chain that's pinned to 44.1 kHz. Leave it false unless you know you need it.
The honest take
Here's where people get burned: they upscale a 16 kHz phone recording to 192 kHz and expect it to sound like a studio master. It won't. All you've done is give the same information more samples per second - the frequencies that were never captured at 16 kHz are gone for good, no matter what rate you resample to. The audible result is usually "the same but slightly smoother," which is why the correct mental model is sample-rate conversion, not upscaling.
If you want the "make it sound better" pipeline, that's the job of the master node or Music Fix, which do EQ, dynamics, loudness and peak protection. This node is the plumbing.
Install
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/jeankassio/ComfyUI_MusicTools.git
cd ComfyUI_MusicTools
python -m pip install -r requirements.txt
Restart, look under music. Pure SciPy resampling, no model downloads, runs fine on CPU.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| target_sample_rate | INT | 4800016000–192000 | — |
| restore_original_sr | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| AUDIO | AUDIO | — |