Nodes/ComfyUI-HQ-Audio/Save Audio (High Quality)
ComfyUI Node

Save Audio (High Quality)

24-bit WAV Out of ComfyUI

By yanivkarta·Created 3 months ago·Updated 3 months ago· 0
Save Audio (High Quality)
  • audio
    filename_prefixhq_audio
    formatWAV
    sample_rate192000
    bit_depth24-bit

    ComfyUI will happily generate you a song with ACE-Step, a foley track with MMAudio, or a voice with any of the TTS packs - and then hand you a file. The question nobody's default save node answers well is what kind of file. Comfy's built-in Save Audio takes an audio tensor and a filename and dumps a float WAV with no say in the encoding details. That's fine for previewing. It's not fine when the track is heading to a DAW for mastering, a video edit, or a client.

    HighQualityAudioSaver - displayed as "Save Audio (High Quality)" - is the version that lets you pick a real delivery format: WAV or AIFF, 16/24/32-bit float, and a sample rate up to 192kHz. It's the one you reach for when the audio leaving ComfyUI is a finished artifact, not a draft.

    How it works

    The pack is a single file (__init__.py) and a single node. It takes a standard ComfyUI AUDIO tensor - the same waveform + sample_rate dict every audio node emits, whether it came from a VAE Decode Audio or a TTS pack - and does three things:

    • Normalizes the tensor to [batch, channels, samples], so mono, stereo, and batched audio all write correctly.
    • Resamples if needed. If the incoming rate doesn't match your sample_rate choice, it interpolates the samples with PyTorch (torch.nn.functional.interpolate, linear mode). Upsampling is safe; this is not a proper studio resampler, so don't use it to downsample 192k material to 44.1k - do that in your DAW or it'll alias.
    • Writes to disk with libsndfile via the soundfile Python binding, mapping your bit-depth choice to real encoding subtypes (PCM_16, PCM_24, FLOAT).

    Files land in ComfyUI/output using the standard counter-suffixed naming, and the node is is_output_node: true, so the finished file also shows up as a playable preview in the UI. There's no output socket - it's a terminal node, not something you wire onward.

    The inputs that matter

    Only five inputs, and honestly three of them are the whole point:

    • audio - the AUDIO tensor from your generation node.
    • bit_depth - 16-bit, 24-bit (default), or 32-bit float. 24-bit is the mastering standard for delivery; 32-bit float is what DAWs internally use if you plan more processing.
    • sample_rate - Input Native, 44.1k, 48k, 88.2k, 96k, 192k. Pick Input Native unless you have a reason to convert - see the trap below.
    • format - WAV or AIFF. WAV unless some legacy workflow demands AIFF.
    • filename_prefix - default hq_audio, prepended to the counter suffix.

    Installing it

    The usual two paths:

    # ComfyUI Manager: search "ComfyUI-HQ-Audio" and hit Install, then restart
    # or:
    cd ComfyUI/custom_nodes
    git clone https://github.com/yanivkarta/ComfyUI-HQ-Audio
    # restart ComfyUI
    

    No model files to download - there's nothing to fetch. Its only dependency, soundfile, is already a core ComfyUI requirement, so on a normal install it just works.

    Where people get burned

    • The default is 192kHz. If you just drag the node in and hit go, everything gets resampled up to 192kHz - which multiplies file size with zero audible benefit for anything headed to an MP3, a video, or even most streaming. If you don't have a real reason to be at 192k, set sample_rate to Input Native. The README's talk of "192Khz or higher" and "DSP support" is more marketing than hardware requirement - the dropdown tops out at 192k and no special device is involved.
    • Downsampling aliases. Linear interpolation on the way down is a shortcut, not a resampler. Leave the rate alone in ComfyUI and downsample properly later.
    • Stripped Comfy installs. If you've pruned core requirements, soundfile might be missing - the pack has no requirements.txt of its own, so the fix is pip install soundfile.

    For a one-node pack with zero GSC traffic and no community chatter behind it, this is refreshingly unpretentious: it does one job, writes real files, and gets out of the way. If you deliver audio out of ComfyUI, it's the sane default.

    Categoryaudio

    Inputs (5)

    NameTypeDefaultDescription
    audioAUDIO
    filename_prefixSTRINGhq_audio
    formatCOMBOWAV2 options: WAV, AIFF
    sample_rateCOMBO1920006 options: Input Native, 44100, 48000, 88200, 96000, 192000
    bit_depthCOMBO24-bit3 options: 16-bit, 24-bit, 32-bit float

    Outputs (0)

    No outputs