Nodes/ComfyUI-Koolook/Easy HDR VAE Decode (Koolook)
ComfyUI Node

Easy HDR VAE Decode (Koolook)

Easy HDR VAE Decode

By malkuthro·Created 11 months ago·Updated a day ago· 8
Easy HDR VAE Decode (Koolook)
  • samples
  • vae
  • image
  • debug_info
target_spaceLinear
exposure_adjust0.0
hdr_modeClip (SDR)
source_spaceLinear

The stock VAEDecode gives you a standard image. Easy HDR VAE Decode gives you one in whatever color space your downstream actually wants - Linear, ACEScg, ACES 2065-1, sRGB, ARRI LogC3, Sony S-Log3, DaVinci Intermediate, and half a dozen more.

If you're a VFX person, this is the node that keeps ComfyUI from being the weird kid who hands the compositor a slightly-wrong-sRGB image. If you're not a VFX person, the shorter version: this is a VAE decode with a color-management front-end, and it's the same trick that makes HDR video workflows round-trip without the gamma slowly going to hell.

It comes from the Radiance fork inside the Koolook pack. The original Radiance VAE4K nodes ran every input through a 4K cosine-blend tile engine that broke on Wan 2.2 video (a tensor shape error nobody wants to debug at 3am). This Koolook variant drops the tiler and routes straight into vae.decode(), letting the underlying VAE - image or video, SDXL, Flux, Wan, Hunyuan, CogVideoX, LTX - handle its own layout. Same color management, no tiler.

How it works

The pipeline is: decode → convert into your target_space. When hdr_mode is Compress (Log), a source_space input appears so the log expansion knows what it's coming from. There's also exposure_adjust, applied in stops in linear space after conversion, and a debug_info string output if you want to see what the node thinks it did.

The settings that matter

  • target_space - where you're going. Linear for compositing, ACEScg if you live in an ACES pipeline, ARRI LogC3 if you're delivering to a colorist. 12 choices, and they're all the real named spaces.
  • hdr_mode - Clip (SDR) hard-clips out-of-range values, Soft Clip rolls them off gracefully, Compress (Log) squeezes HDR into a log range, Passthrough does nothing fancy. Match this to the encode side. The node's own tooltip says it: match the encode HDR mode for roundtrips. Mismatch is how you get colors that look fine in the node graph and blown out in the file.
  • exposure_adjust - stops of exposure in linear space. Only relevant if you need to grade before you hand the image off.

Outputs: image (the decoded, converted result) and debug_info (a string, mostly for the author's own debugging, but useful if you're chasing a color issue).

Install

It's part of the ComfyUI-Koolook pack. Via Manager:

https://github.com/malkuthro/ComfyUI-Koolook.git

Or:

cd ComfyUI/custom_nodes
git clone https://github.com/malkuthro/ComfyUI-Koolook.git

Restart and look under Koolook/VAE. No model downloads, and the color math runs on tensors you already have. Just remember the pack's one-install rule - Manager puts it at custom_nodes/koolook/, so don't also clone a second copy or the two installs fight over the workflow store on every boot.

Common issues

  • Colors don't match the encode - you picked a different hdr_mode or target_space than you encoded with. This is the #1 mistake and the tooltip literally warns you.
  • Wan video errors - that's the bug this fork was built to avoid, and it's fixed here; if you're coming from the original Radiance nodes, use these instead.
  • Image looks flat or washed out - decoding to Linear or a log space and expecting sRGB-looking output. Linear is the source of truth for compositing; it is supposed to look flat until you grade it.
CategoryKoolook/VAE

Inputs (6)

NameTypeDefaultDescription
samplesLATENT
vaeVAE
target_spaceCOMBOLinearOutput color space for the decoded image.
exposure_adjustoptFLOAT0.0-10–10Exposure in stops, applied in linear space.
hdr_modeoptCOMBOClip (SDR)Match the encode HDR mode for roundtrips.
source_spaceoptCOMBOLinearFor Compress (Log), match the encoder source_space.

Outputs (2)

NameTypeDescription
imageIMAGE
debug_infoSTRING