Nodes/Comfyui-bitdance/BitDance VAE Decode
ComfyUI Node

BitDance VAE Decode

The only node that can turn BitDance's token latent into pixels

By aistudynow·Created 6 months ago·Updated 6 months ago· 33
BitDance VAE Decode
  • vae
  • bitdance_latent
  • image

If you've used ComfyUI for any length of time, "VAE Decode" is a boring, familiar node. This one is a trap for exactly that reason: grab a normal VAE Decode off the shelf, feed it the sampler's output, and it will just break, because bitdance_latent isn't a latent at all - it's a sequence of binary tokens plus some geometry, and only BitDance VAE Decode understands that format. This is the node you wire between the sampler and your preview/save node, and it's the only thing standing between you and pixels.

It takes two inputs: bitdance_latent (from BitDance Sampler, or from BitDance VAE Encode if you're doing image-to-image work) and vae - and note that's the BITDANCE_VAE output from the loader, not any old VAE from your models folder. The output is a standard IMAGE, which then feeds PreviewImage, SaveImage, or anything else that wants a tensor.

How it works

The sampler produced a flat list of tokens, one per image patch. This node reshapes that sequence back into a 2D latent grid using the patch size it was packed with, then runs the BitDance VAE to reconstruct the image, clamps it, and converts to the 0–1 range ComfyUI images use. Nothing exotic in spirit - it's the standard VAE-decodes-latent story from the concepts doc - but the input format is BitDance-specific, so the machinery is custom.

The interesting bit is how it handles being too big for your card. On an OOM during the straightforward decode, it falls back to tiled decoding: it decodes the latent in 256px tiles with 32px of overlap and averages the seams, and if even that overflows, it keeps halving the tile size. That's the safety net that lets 1024px+ renders actually finish on 16–24 GB cards, which is exactly what the pack's Feb 2026 update was about. You don't have to configure any of it - the tiling kicks in automatically.

Where people get tripped up

The most common failure is wiring a standard VAE into this node - it needs the BITDANCE_VAE from BitDance Loader, full stop. Second is forgetting that decode is a separate memory phase: the pack force-unloads the text encoder and main model before decode runs, so if you're watching task manager and see the card go quiet, that's normal, not a crash. If you're on a small card and decode still OOMs after the tiled fallback, your best lever is a smaller resolution preset upstream - the token count (and therefore the latent grid) is proportional to pixels, so a 1024x1024 or 512-class render is dramatically easier to decode.

Install as part of the whole pack: ComfyUI Manager → search "Comfyui-bitdance", or git clone https://github.com/aistudynow/Comfyui-bitdance into custom_nodes, pip install -r requirements.txt, restart. One node, two inputs, one IMAGE out - it's the end of the line for every BitDance workflow.

Categorylatent/bitdance

Inputs (2)

NameTypeDefaultDescription
vaeBITDANCE_VAE
bitdance_latentBITDANCE_LATENT

Outputs (1)

NameTypeDescription
imageIMAGE