Nodes/Prism T8/Prism Wan Video VAE
ComfyUI Node

Prism Wan Video VAE

The file that turns latents into pixels (and eats your VRAM)

By T8mars·Created 21 days ago·Updated 20 days ago· 17
Prism Wan Video VAE
    • video_vae
    ◄model_name▾►

    What it is

    The video decoder - the last stage of a Prism run, where a latent video becomes actual frames. It's a BF16 VAE from the Wan lineage (hence the display name), and it's the component people underestimate: sampling gets all the attention, but decoding a 205-frame clip at 720p is where the memory spike usually shows up.

    You reach for it because Prism Native Pipeline needs the video_vae socket. There's no alternative decoder here; the pack is self-contained on purpose, which is also why you don't get a VAELoader-style menu of every VAE on your disk.

    What's actually on the node

    model_name - an enum of the files in your models/vae/ folders. The file is prism_alpha_video_vae_bf16.safetensors, from t8star/Prism-Comfy. One output, video_vae, into the pipeline.

    Everything interesting about this component happens elsewhere: the decode settings live on the sampler, not on the loader. That's vae_tiling, tile_size (default 256) and tile_stride (default 192) on Prism Native Video Audio Sampler - tiling decodes the video in overlapping tiles instead of all at once, trading a little time for a lot of headroom. In the 720p example workflow those are pre-set because the author measured them; the validation default has tiling off.

    The validation rules are worth memorising, because they're checked before the run rather than during it: stride must be positive and smaller than tile size, and both must be divisible by 8. Getting it wrong is a clear error message, not a mysterious crash:

    VAE tile stride must be positive and smaller than tile size
    

    At sampling time the VAE gets wrapped for CPU offload whenever offload is block or cpu, so on a tight card it can sit in system RAM and hop over for the decode. Block offload's cost is PCIe traffic, and the pack is honest that this is where a lot of the wall-clock time goes on small-VRAM machines.

    Unlike the transformer components, there's no quantisation here at all - this one is BF16 through and through, which is why it keeps its float precision while the DiTs are INT8 ConvRot.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/T8mars/Comfyui-Prism-T8.git
    cd Comfyui-Prism-T8
    python -m pip install -r requirements.txt
    

    ComfyUI Manager → Comfyui-Prism-T8 (registry t8star/prism-t8) does the same via the UI. Then drop the file in models/vae/, restart, and make sure you grabbed the video VAE - prism_alpha_audio_vae_bf16.safetensors belongs in the sibling loader and won't fit here.

    Where people get burned

    Swapping the two VAEs. Both are BF16 files starting with prism_alpha_, one is audio and one is video. The socket types keep you honest - Incorrect component in video_vae: audio_vae - but the names are close enough that people do it.

    OOM at the very end of a successful run. Annoying, and usually a decode problem rather than a sampling one. Turn vae_tiling on and drop tile_size before you start resizing the generation. Note that block offload reduces residency but the pack says plainly that INT8 does not reduce high-resolution activation memory - quantisation won't save you here.

    Mixed bundles. Same rule as the other six components: one bundle id across all of them, or the pipeline refuses with Components are from different Prism variants/conversion bundles.

    Blaming the VAE for softness. The pack's own INT8 validation notes mild composition drift and slightly soft fine texture. That's quantisation plus the model, not a broken decoder.

    CategoryPrism/loaders

    Inputs (1)

    NameTypeDefaultDescription
    model_nameCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    video_vaePRISM_VIDEO_VAE—