Egregora DAC Decode
Turn neural codec latents back into sound
- codes
- audio
- log
This is the other half of the Egregora pack's DAC story, and it's about as simple as a node gets: give it the codes DICT that came out of Egregora_DAC_Encode, and it hands you back reconstructed audio. Encode + decode together form the codec round-trip that tells you exactly how much your neural codec degrades the signal - which is the whole point of including it in an audio quality pack.
The setup is intentionally symmetrical. Encode stores the model type, the original sample rate, the model's sample rate, and the latents in the codes DICT. Decode reads those back, loads the same DAC model, decodes the latents into a waveform at the model's native rate, then resamples back to your original sample rate so the output slots straight into your graph. The device input (auto / cpu / cuda) is the only knob, and auto behaves the way you'd hope - GPU if available, else CPU.
Outputs are audio (the reconstructed AUDIO buffer) and log (a STRING with the decode details - model type, batch, channels, and the sample-rate journey).
Why you'd actually use this
Outside of pure experimentation, the classic workflow is:
Load Audio → DAC Encode → DAC Decode → Metrics (LSD + SI-SDR) → compare against original
That's a legitimate quality gate: if your delivery path codecs audio somewhere downstream, this tells you what that costs before you commit. It's also just a tidy way to verify a codec round-trip inside ComfyUI without dropping to a Python script.
Install notes
Same story as the encode node: descript-audio-codec comes from the pack's requirements.txt / install.py, and the weights auto-download on first use (the installer even warms them up). Decode needs the same model_type the encode used, which is why the DICT carries it along - you don't have to remember. If you've separated the two nodes and changed nothing, it just works.
The honest caveat
Don't expect bit-perfect reconstruction. DAC is lossy, and the decode is only as good as the model you encoded with - a 16 kHz encode is a 16 kHz decode, and the resample back to your original rate doesn't put back what was never there. The pack's own framing applies here more than anywhere: use the metrics nodes to measure the round-trip rather than trusting your ears, because your ears will absolutely convince you the codec is fine until you see the SI-SDR number.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| codes | DICT | — | |
| device | COMBO | auto | 3 options: auto, cpu, cuda |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| log | STRING | — |