Nodes/ComfyUI PyramidFlow Wrapper/PyramidFlow VAE Loader
ComfyUI Node

PyramidFlow VAE Loader

The quiet node your img2vid can't skip

By kijai·Created 2 years ago·Updated 2 years ago· 363
PyramidFlow VAE Loader
  • compile_args
  • pyramidflow_vae
vae
precisionbf16

PyramidFlow VAE Loader is the unglamorous foundation node of the pack: it loads the causal video VAE that both the encode and decode nodes need. No creative control lives here, no sampling happens, and you'll almost never touch it after your workflow is built. But without it, half the pack is inert - every render passes through a VAE on the way in and out.

The thing being loaded is not ComfyUI's stock VAE. It's CausalVideoVAE, a video autoencoder built to handle a temporal dimension, configured from the pack's own causal_video_vae_config.json and instantiated with the weights file you point it at. The loader constructs it from the config, loads the safetensors state dict, freezes it, and ships the ready object out. The weights are the pyramid_flow_vae_bf16.safetensors file from Kijai/pyramid-flow-comfy on HuggingFace, sitting in ComfyUI/models/vae.

The inputs

  • vae - a dropdown listing the files in your ComfyUI/models/vae folder (subfolders included, so the pack's examples use a pyramidflow subfolder). Pick the PyramidFlow VAE, not some SDXL VAE you have lying around - the wrapper will happily try to load whatever you select, but the wrong weights produce garbage or a crash, because the config is hardcoded to the causal architecture.
  • precision - fp16, bf16, or fp32, default bf16. Same story as the transformer loader: default to bf16. The VAE is comparatively cheap to run, so precision here is less of a make-or-break than on the DiT, but there's no reason to reach for fp16 unless you're testing something specific.
  • compile_args (optional) - the output of PyramidFlow Torch Compile Settings. If you feed it in, the VAE gets torch.compiled. For a VAE this is the least impactful place to spend compile time - you usually want that on the transformer first, or not at all.

The output

One output: pyramidflow_vae (PYRAMIDFLOWVAE), which wires into the vae input on both PyramidFlow VAE Encode and PyramidFlow VAE Decode. That's its entire job. If you're only doing text-to-video you technically still need this node on the graph - the sampler outputs latents, and the decode node needs a VAE object to render them. There's no way around it, and no reason to fight it.

Install and gotchas

Boring, in a good way: ComfyUI Manager → search "PyramidFlow Wrapper", or git clone https://github.com/kijai/ComfyUI-PyramidFlowWrapper into custom_nodes and restart. Requirements come from the pack (diffusers, accelerate, timm, numpy<=1.26.4, the usual).

The one real-world footgun is historical, and it's worth knowing because it'll look like your fault when it isn't: right after Kijai's Flux refactor shipped in late 2024, this exact node crashed for a bunch of people with module 'folder_paths' has no attribute 'get_full_path_or_raise'. The cause was an older ComfyUI, and updating ComfyUI (not the pack) fixed it. If a freshly installed loader throws that or anything in the folder_paths family, update ComfyUI first, then restart. Also worth repeating from the pack README: fp8 precision is flagged as quality-destroying for this model - if you're staring at the precision dropdown wondering, bf16 is the answer, on the VAE just as on the transformer.

CategoryPyramidFlowWrapper

Inputs (3)

NameTypeDefaultDescription
vaeCOMBOThe name of the checkpoint (model) to load.
precisionCOMBObf163 options: fp16, bf16, fp32
compile_argsoptPYRAMIDFLOW_COMPILEARGSOptional torch.compile arguments

Outputs (1)

NameTypeDescription
pyramidflow_vaePYRAMIDFLOWVAE