Save Audio FLAC 24-bit ⬇️
The stock save node gives you 16-bit. Here's why.
- audio
If you've ever saved a FLAC out of ComfyUI and quietly wondered why a 24-bit render came out as a 16-bit file, the answer is a one-line bug in the stock helper - and it's genuinely worth understanding, because it's the kind of thing you'd otherwise spend an evening blaming on your source audio.
The built-in node builds its audio frame as format="flt" and never sets a sample format on the FLAC stream. FFmpeg's flac encoder then falls back to its own default, which is s16. Sixteen bits. No error, no warning, no clue in the file until you inspect it.
Save Audio FLAC 24-bit ⬇️ exists to do it properly. FFmpeg's flac encoder only accepts s16 or s32, and with s32 it writes bits_per_raw_sample = 24 - the samples get shifted right by eight internally, and you get honest 24-bit FLAC. There is no 32-bit path, so don't go looking for one.
Inputs
Three, and they're all obvious:
- audio - any
AUDIO. - filename_prefix - defaults to
audio/ComfyUI, subfolders supported, written under ComfyUI's output directory like every other save node. - bit_depth -
24or16. The scale factors are chosen to match how loaders normalise PCM to float (int / 2**(bits-1)), so an integer source round-trips bit-exactly rather than through an extra rounding step. There's a clip that catches the single value (+1.0) which would otherwise overflow by one LSB.
No outputs - it's a terminal destination node. Nothing downstream to wire.
Why FLAC and not MP3
The pack takes a position on this and it's one I agree with. The measurement nodes in this pack - the player's loudness badge, its saturation metric - are reading the actual samples. Lossy encoding smooths exactly the flat-tops and transients those metrics detect, so a 320k MP3 in a measurement pipeline produces numbers that don't fail loudly, they just stop meaning anything. FLAC is lossless, compresses to roughly half, and tags properly. It's the delivery format for anything you might master, re-master or archive.
If your target genuinely needs an MP3, take the FLAC or WAV and do the transcode at the end, once, outside the pipeline.
Install
ComfyUI Manager → search Nova Audio Player → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/NovaFemme/ComfyUI-NovaAudioPlayer.git
Restart, then find it under ▶️ Nova Audio → 📦 Delivery & Metadata. It uses PyAV (av), which ships with ComfyUI - this is not a pack that asks you to install ffmpeg, or anything else, for its save nodes.
Worth knowing if you're auditing your install: the pack's declared dependencies are only mutagen (Tag Writer / Tag Reader) and pymysql (Nova SQL Dump). Everything else it imports at load time already exists in a working ComfyUI. If you cloned the repo straight into custom_nodes instead of installing through Manager, nothing ran pip for you - so install mutagen yourself if you plan to tag files:
<venv>/bin/python -m pip install mutagen
Where it fits
Nova Audio Master 🧾 ── master ──▶ Save Audio FLAC 24-bit ⬇️
│ report_json
▼
Nova Master Identity 🪪 ──▶ Nova Final Master Validator
The pairing that matters: save the file, then validate it. Writing 24-bit and getting 24-bit are different statements, and the only way to know which one happened is to read the saved file back. Save Audio WAV has a switch for exactly that (reload_after_save); if you're delivering a master, that round trip is the check worth running rather than trusting the bit-depth dropdown on faith.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| filename_prefix | STRING | audio/ComfyUI | — |
| bit_depth | COMBO | 24 | 2 options: 24, 16 |
Outputs (0)
No outputs