Expand description
MiniMax-H3’s video VAE decoder: a ViT3D, not a conv stack.
36 transformer blocks over the latent grid, each latent cell one token, and a single linear that expands every token into a 4×16×16×3 block of pixels. The encoder half is a 3-D causal CNN and is not packed — text-to-video never runs it.
§Tiling is not an optimization here
The reference decodes in 256-pixel spatial tiles and 17-frame
temporal clips ALWAYS — tiling=True is the constructor default and
decode_tiled just forwards to decode. Because the decoder is
global attention, a tile sees a different context than the whole
frame would, so the tiling is part of the model’s output, not a
memory strategy layered on top of it. Both schedules are reproduced
exactly: split_tiles down to the last overlap unit, and the
clip/token-drop bookkeeping that makes a chunk emit 17 frames and
carry 5 over.
Structs§
- Video
Vae - Video
VaeEncoder - The encoder half:
[3, h, w]in [-1, 1] → normalized latents[24, h/16, w/16].