Nodes/Eric_Krea2/Eric Krea2 VAE Decode
ComfyUI Node

Eric Krea2 VAE Decode

Decode to pixels — and why you might swap the VAE first

By EricRollei·Created 2 months ago·Updated about a month ago· 11
Eric Krea2 VAE Decode
  • krea2_pipeline
  • latent
  • decode_vae
  • image

Every Krea 2 latent eventually has to become pixels, and that's this node's whole job: Eric Krea2 VAE Decode takes a KREA2_LATENT and runs it through the pipeline's VAE to produce an IMAGE. It's the plain 1× decode - no upscaling, no re-denoise, just the reconstruction step at the end of the chain. Boring, essential, and the first thing you wire to a Preview or Save node after Generate.

The interesting part: the alternate VAE

The one optional input, decode_vae, is where this node earns its keep. Krea 2's own VAE is the Qwen-Image one, and the KB's VAE panel is blunt about its trade: the decoder was retuned to render legible text, at the cost of fine texture - the source itself calls the default look "plastic skin" in community terms. Because Krea 2, Qwen-Image, and Wan 2.1 share an identical latent space (same latents_mean/std), you can decode Krea 2 latents with a base Wan 2.1 VAE instead. That swaps the grain and texture without touching any pixels upstream - a different reconstruction, not an upscale.

That's the A/B the pack's Decode VAE Loader feeds into: load a Wan-family VAE, plug it into decode_vae, and get the more natural film grain at the same resolution. It's a taste thing, and the tooltip says exactly that - "changes grain/texture without an upscale."

The required inputs are krea2_pipeline (the pipe that owns the default VAE) and latent. Output is image (IMAGE), ready for the usual Preview Image / Save Image nodes.

How it fits the wider flow

The pack keeps Krea 2 latents in a custom packed type (KREA2_LATENT) that stock ComfyUI VAE nodes can't read - that's why there's a dedicated decode node at all. If you do want to hand the latent to ComfyUI's native VAEDecode, there's a separate Latent → ComfyUI LATENT bridge node for that; this one stays in-pack and handles the packed type natively. And note the mode interplay from the Ultra node: when upscale_vae_mode does a VAE final decode, decode_vae is ignored outright for the final image but still governs the stage preview images - so you can run the upscale VAE for the final and a specific grain VAE for previews without them fighting.

Install

Same pack, same story:

cd ComfyUI/custom_nodes
git clone https://github.com/EricRollei/Krea2_ComfyUI_Advanced

Restart (or install via ComfyUI Manager, searching the pack title). The pack drives the genuine Hugging Face Krea2Pipeline - install that diffusers build from source with --force-reinstall per the README, and have Krea 2 weights in diffusers layout.

Gotchas

Don't reach for a random VAE here. An SD/SDXL/FLUX VAE will fail to load as AutoencoderKLWan - it has to be a Wan-2.1-family or Qwen-Image VAE to sit in the same latent space. And remember the round-trip rule from the VAE panel: every encode/decode cycle costs a little, so chained img2img passes grind an image down. Decode once, judge, then decide if you actually want to re-encode it.

CategoryEric/Krea2

Inputs (3)

NameTypeDefaultDescription
krea2_pipelineKREA2_PIPELINE
latentKREA2_LATENT
decode_vaeoptKREA2_DECODE_VAEOptional base Wan 2.1 (or other Wan-family) VAE to decode with instead of the pipeline's Qwen VAE - changes grain/texture without an upscale.

Outputs (1)

NameTypeDescription
imageIMAGE