Tiny FLUX.2 VAE Decode (CRT)
Preview FLUX.2 latents without paying the full VAE tax
- samples
- tiny_vae
- IMAGE
This is the decode half of CRT's tiny-VAE story, and it exists for one reason: decoding FLUX.2 latents with the full VAE is slow enough that iterating on a workflow becomes a waiting game. TinyFlux2VAEDecode turns a LATENT into an IMAGE using the tiny autoencoder, so you get a look at what's in your latent without committing to the expensive full decode. For previews, progress checks, and fast experiment loops, it's the node you'd actually reach for.
The two inputs
samples- theLATENTfrom your sampler. Any FLUX.2-family latent that follows the 128-channel format feeds in here.tiny_vae- theTINY_FLUX2_VAEobject fromTiny FLUX.2 VAE Loader (CRT). The two nodes are a matched set; this input only accepts that custom type, so you can't accidentally wire in a normal VAE.
Output is a plain IMAGE, so it plugs into anything downstream - a preview node, a save node, a post-process chain.
The mechanism, briefly
The tiny autoencoder is fal/FLUX.2-Tiny-AutoEncoder: a diffusers AutoencoderTiny (32 channels, 8×) with an extra stride-2 convolution lifting it to 128 channels at 16× downscale - the exact latent format the full FLUX.2 (Klein) VAE uses. Because the latent layout matches, this decode can stand in for the full VAE's output shape-for-shape. The catch is fidelity: a tiny VAE is an approximation, so edges and fine texture will be softer than a full decode. It's a preview-grade image, not a deliverable-grade one.
How to use it without shooting yourself in the foot
The common pattern is a branch: decode with the tiny VAE for the preview/save while you're dialing in prompts and settings, then swap in VAE Decode with the real FLUX.2 VAE for the final pass. Two nodes, one easy swap, and you never waste a full decode on a checkpoint you're about to change anyway.
Gotchas
- Needs
diffusers. The whole tiny-VAE family depends on it - apip install -r requirements.txtfrom a fresh pack clone covers you. - The
tiny_vaesocket is the gate. If the loader shows[NOT FOUND]in itsmodel_filedropdown, you haven't placed the weights inmodels/vae_approx/FLUX.2-Tiny-AutoEncoder/yet - decode won't work until you do. - Don't finalize through it. It's a stand-in, not the real thing. If the full VAE is what your final image needs, use the full VAE for the final decode.
Install CRT-Nodes via ComfyUI Manager (CRT-Nodes) or git clone https://github.com/plugcrypt/CRT-Nodes.git into custom_nodes, then pip install -r requirements.txt, restart, and load the tiny-VAE weights from fal/FLUX.2-Tiny-AutoEncoder.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | — | |
| tiny_vae | TINY_FLUX2_VAE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |