◀ VAE Decode (Illustrious)
The last node before your image, with tiling and highlight control
- samples
- vae
- images
- decode_info
The mirror image of IllustriousVAEEncode - this is where your latent becomes pixels. It defaults to doing exactly what a plain VAE Decode does, plus tiling and a highlight-compression control you don't get in the vanilla node.
The one default worth knowing about
neutral_decode is on by default, and it means exactly what it says: no enhancement, just a plain decode, unless you explicitly flip on color_fix or preserve_details. That's a deliberate choice given the pack's own beta status - a node that quietly "improves" every image by default is harder to reason about when something looks off. Leave neutral_decode on unless you've got a specific, repeatable color problem you want color_fix to address (it applies gentle Illustrious-tuned color correction, aimed at the same oversaturation issue CFG tuning also fixes - try CFG first, since that's the root cause more often than the decode step).
Highlight Roll-Off
This is the field that doesn't exist on a stock VAE Decode. Clamped (default), Soft, and Filmic control how blown highlights compress instead of hard-clipping to white - a concept borrowed from photography and compositing workflows, where a hard clip loses detail abruptly and a rolled-off highlight loses it gradually. If you're generating anything with strong light sources, glare, or bright skies and seeing flat white patches with no gradation, Soft or Filmic is the field to try before touching your prompt or CFG.
Tiling, same as the encode side
enable_tiling (on by default), tile_size (512), and overlap (64) work exactly like their counterparts on IllustriousVAEEncode - large images get decoded in tiles instead of blowing your VRAM budget in one shot, and seamless_tiling feathers between tiles so the seams don't show. optimization_mode (auto/quality/speed/memory) picks a tiling strategy for you, and memory_efficient (on by default) lowers internal thresholds specifically to save VRAM - worth turning off if you've got headroom and want to rule it out as a variable while chasing quality.
The inputs and outputs that matter
samplesandvae- required.illustrious_version- same auto-detect-from-size behavior as the encode side; leave onautounless you have a specific reason to force it.Highlight Roll-Off- the field worth knowing exists.
Outputs: images (your actual result) and decode_info, a diagnostic string.
Installing it
ComfyUI Manager: search "EasyIllustrious," install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/regiellis/ComfyUI-EasyIllustrious
pip install -r ComfyUI-EasyIllustrious/requirements.txt
Nothing to download beyond the pack - it decodes through whatever VAE your checkpoint already carries, and every Illustrious-family checkpoint ships its own baked-in VAE, so don't attach an external one unless a specific model page tells you to.
Common issues
Out-of-memory errors on decode, not on sampling. That's specifically this node's job to prevent - confirm enable_tiling is on and try dropping tile_size before you drop your target resolution.
Colors look consistently off in one direction. Try color_fix before assuming it's a checkpoint problem, but check your CFG first - the KB's own read on this is that quality-tag prompts and CFG near the top of Illustrious's range are the more common root cause of a color cast than the decode step itself.
Bright scenes losing detail in highlights. Switch Highlight Roll-Off from Clamped to Soft or Filmic before you start fighting it with prompt or CFG changes - it's the more direct lever for exactly this symptom.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | Latent tensor to decode to images. | |
| vae | VAE | Variational Autoencoder used to decode latents. | |
| illustrious_versionopt | COMBO | auto | Auto-detect from latent size; choose specific for nudged settings. |
| optimization_modeopt | COMBO | auto | Adjusts tile size/overlap and enhancements. |
| enable_tilingopt | BOOLEAN | true | Enable when decoding very large images to avoid VRAM issues. |
| tile_sizeopt | INT | 512256–1024 | Decode tile size in image pixels. |
| overlapopt | INT | 6432–128 | Overlap between tiles to hide seams. |
| neutral_decodeopt | BOOLEAN | true | Decode only; no enhancements unless enabled below. |
| color_fixopt | BOOLEAN | false | Apply gentle Illustrious color correction when needed. |
| seamless_tilingopt | BOOLEAN | true | Blend tiles with feathering to avoid seams. |
| preserve_detailsopt | BOOLEAN | false | Apply subtle detail preservation in standard/tiled paths. |
| memory_efficientopt | BOOLEAN | true | Lower thresholds to reduce VRAM usage. |
| Highlight Roll-Offopt | COMBO | Clamped | Control highlight compression to avoid harsh clipping. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| decode_info | STRING | — |