Nodes/DreamX Creator T8/DreamX Audio VAE Decode
ComfyUI Node

DreamX Audio VAE Decode

Turning the Audio Half of Your Latent Into Actual Sound

By T8mars·Created 3 days ago·Updated 2 days ago· 5
DreamX Audio VAE Decode
  • audio_vae
  • audio_latent
  • audio

DreamX-Creator writes video and audio in the same denoising pass, which is the whole pitch of the model and also the reason your graph looks strange the first time you build one. You load a video VAE and an audio VAE, you sample one latent, and you decode it twice. DreamX Audio VAE Decode is the second half of that.

It takes the audio stream out of a sampled DreamX latent and hands you a normal ComfyUI AUDIO object - waveform plus sample rate, the thing Save Audio and Create Video already understand. It's the node that makes the "and audio" part of the feature real instead of theoretical, and it's the last stop before muxing.

What it does

The node has two inputs: the audio_vae handle from DreamX Audio VAE Loader (or the audio_vae output of DreamX Creator Complete Loader), and an audio_latent of type LATENT. One output, audio, of type AUDIO.

The mechanism is a DAC-style decode. The Creator audio VAE is a CreatorDACVAE checkpoint that turns a 128-channel latent stream into a 48 kHz waveform, with a hop length of 960 samples - 20 ms of audio per latent frame, 50 latent frames per second. So a 5-second clip's audio latent is 250 frames wide, and the node doesn't just decode it and call it a day: the latent carries a dreamx_audio_samples count written by DreamX First Frame AV Latent, and the decoder trims the waveform to exactly that many samples. That's why asked-for durations and delivered durations agree instead of drifting a few hundred milliseconds, and it's why you shouldn't hand-edit latents between generation and decode.

Wiring it up

You can't feed the sampler's raw output into this node. DreamX samples one packed NestedTensor with video and audio stacked, and the decode node wants the audio piece on its own. That's what DreamX Split AV Latent is for: pipe the sampler output through it, send audio_latent here and video_latent into a normal VAE Decode.

SamplerCustomAdvanced -> DreamX Split AV Latent
                          |-> video_latent -> VAEDecodeTiled -> Create Video
                          '-> audio_latent -> DreamX Audio VAE Decode -> (audio)

Then wire the decoded audio into Create Video alongside the decoded frames, or into Save Audio if you only want the track. The shipped examples/dreamx_creator_ui.json does exactly this and is worth dragging onto the canvas before you build your own - see COMFYUI.md in the pack for the full ordered graph.

Your decode options are fixed by the loader, not this node. Keep the audio VAE in float32, which is the loader's default and the precision the released decoder runs at.

Install

Same pack-wide steps. ComfyUI Manager, search DreamX Creator T8, or:

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-DreamX-Creator-T8.git
cd Comfyui-DreamX-Creator-T8
python -m pip install -r requirements.txt

Then get the weights - the Audio VAE lives inside the bundle and is not optional:

python -m pip install -U huggingface_hub
hf download t8star/DreamX-Creator-Comfy --local-dir ComfyUI/models/dreamx_creator

That's ~54 GB, of which the audio VAE is a small slice. Restart ComfyUI afterwards.

Common issues

"Expected a packed DreamX audio/video NestedTensor." You fed the raw sampler latent into something that wanted the split audio stream, or you split it twice. The split node is not optional.

Silence, or a click at the end of every clip. Check that dreamx_audio_samples survived the path - it rides along on the latent dict, so any node that strips latent metadata between the sampler and this decode will hand you untrimmed audio.

You asked for a line of dialogue and got mumbling. This is the model, not the node. Native speech in DreamX is stochastic; the README says straight out that a prompt can request exact wording but cannot guarantee the transcript. If you need specific words, generate the clip and post-dub it. The pack's own shipped example works this way, and it says so.

Decode takes forever on a long clip. The audio side is cheap next to the 48-channel video decode, but it still moves to the GPU as its own patcher. If you're also holding a 7B Creator or 5B Refiner resident, you're stacking offloads; run the refiner as a separate phase. audio-generation.md is blunt about this being the normal state of audio nodes in ComfyUI - real, useful, and bolted onto a video-first stack.

CategoryDreamX-Creator/audio

Inputs (2)

NameTypeDefaultDescription
audio_vaeDREAMX_AUDIO_VAE
audio_latentLATENT

Outputs (1)

NameTypeDescription
audioAUDIO