Prism Wan Video VAE
The file that turns latents into pixels (and eats your VRAM)
- video_vae
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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 0 options: |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_vae | PRISM_VIDEO_VAE | — |