EGVAELoader
The one-widget VAE loader, and why your dropdown says pixel_space
- VAE
EGVAELoader is the pack's Load VAE. One dropdown, one output. If you've used ComfyUI for more than a week you already know what a VAE does; the interesting parts here are the dropdown itself and the reason this node exists in a pack about facial expressions.
What it's for
Split-file models - Flux, Z-Image, Qwen Image, Anima - don't come with a decoder. You supply one. The gallery needs the VAE in its graph because the last step before caching a preview is VAEDecode: latents become pixels, pixels get written to disk as the card you click on.
So for every split profile, the pack wires in this node, points it at the VAE you selected in the panel, and hands the output to VAEDecode. For checkpoint profiles it isn't used at all - the checkpoint carries its own.
How it works
Mechanically it's VAELoader from ComfyUI core, with IS_CHANGED overridden to return the file's identity (resolved path, size, nanosecond mtime and ctime) instead of just the chosen filename. Replace a VAE in place and the node re-runs instead of serving cached output from the old file. That's the entire delta, and it's the same trick all the pack's loaders use.
Then ComfyUI does the familiar thing: map the file into memory, attach the decoder, expose it as VAE.
The dropdown that only has one entry
The vae_name list is built from ComfyUI/models/vae plus ComfyUI's own built-in pseudo-entry, pixel_space. If your install has no VAE files in that folder, pixel_space is the only thing in the list - which is exactly the state the node's own option sample shows, and exactly what confuses people who've just installed the pack and expected a normal list.
pixel_space isn't a file. It's a pass-through codec: a latent that already holds pixel values gets treated as pixels, no learned decoder involved. It's there for pixel-space models, where generation genuinely has no VAE. For a Flux or Z-Image workflow it's not what you want - you want the ae.safetensors (or Flux VAE, or Qwen Image VAE) that the model card lists next to the weights.
The flip side is a genuine 2026 failure mode the KB keeps recording: these models ship the encoder and the VAE as separate downloads, so a workflow that errors on a missing VAE usually means someone grabbed the diffusion weights and stopped there.
Inputs and outputs
- vae_name - a file from
models/vae, orpixel_space. - VAE - out to
VAEDecode(and toVAEEncodeif you're doing img2img with a cached preview).
That's the whole node. No dtype widget, no tiling control. If you need tiled decoding for a huge upscale, this isn't the node for it.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/nikminer/ComfyUI-Emotional-Gallery.git comfyui_emotional_gallery
Restart, then Ctrl+F5. Zero Python dependencies, zero bundled models - put your VAEs in models/vae yourself. Available through ComfyUI Manager as "ComfyUI Emotional Gallery".
It's categorised Emotional Gallery/internal and hidden from the Add Node menu along with the rest of the pack's implementation nodes. Old workflows referencing it still execute fine.
Common issues
Only pixel_space in the dropdown. Nothing is in models/vae. This is the single most common confusion with this node. Drop the file in and restart - ComfyUI builds the list at startup.
Colours look washed out, or the image is a grey smear. A VAE mismatch or a latent that was never decoded properly. On modern models the symptom has actually inverted from the SD 1.5 era: the complaint now is over-smoothing rather than grey wash, because some decoders are trained that way on purpose. The right VAE is the one the model was trained against, not the one with the best reputation.
Wrong VAE, and nothing errors. That's the trap - a decoder from the wrong family often produces a plausible-looking but subtly wrong image rather than a crash. If previews feel off in colour or texture across a whole gallery, check this widget before you touch the sampler.
"pixel_space" selected and everything is noise. You're running a latent model through a pass-through. Pick the real VAE.
OOM right at the decode step. The decoder loads at full precision and holds on. On a tight card, decode at a smaller resolution first, or free the text encoders before decoding if your ComfyUI version supports it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| vae_name | COMBO | 1 options: pixel_space |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| VAE | VAE | — |