MiniMax H3 Still Latent
Pull one frame out of a sampled H3 latent — the trick that turns H3 into a stills generator
- samples
- LATENT
H3 is a video model. So how does the pack's PreStage make a still with it? The answer is MiniMax H3 Still Latent: it takes one temporal frame of a sampled H3 latent and hands it out as an ordinary single-image latent. That slice is what the experimental T=1 image VAE was trained on, so decoding it gives you a picture - the same weights, the same canvas, a keyframe made by the model that will render the shot it opens.
It's an MiniMax/internal node, written into the graph by the PreStage's H3 still branch (and it's also the obvious place to point a hand-built graph if you want one). You're most likely to meet it as the silent middle step between "generate an H3 still" and "save a PNG."
How it works
H3 samples a nested pair: a video latent of shape [B, 24, T, H/16, W/16] and an audio half. This node takes the video half, picks the frame at index, and returns it as a plain latent of length 1, .contiguous(), so nothing downstream holds the whole sampled clip alive to read one frame of it. The audio half is dropped here - the DiT sampled the pair together, a still just doesn't read one of them.
The frame index isn't arbitrary, and that's the interesting part: the H3 VAE is causal on its grid, so latent frame 0 is a function of pixel frame 0 alone - exactly what encoding a single image produces. That's why index defaults to 0 and why the tooltip calls it "the causal first frame - the slice the image VAE was trained on."
Inputs and output
samples- a sampled H3 latent. If it arrives as the nested (video, audio) pair the sampler returns, the node unbinds it; if it's already a plain video latent, it passes through. Either works.index- which latent frame becomes the picture. Default 0 (the causal first frame); negative counts from the end, so-1is the clip's last latent frame. Range is −4096 to 4096, and the node checks the frame actually exists: it raises if you ask for frame 40 of a clip that packs into 30.
Output is a single LATENT - length-1, ready for the video VAE decode or any image-VAE path.
Where it shows up
This is the mechanism behind "keyframe made by the weights that will render the shot," which is the PreStage's pitch for its H3 branch - no second model family loaded, and the still and the video agree on look by construction. The index isn't just a technical detail, either: pull frame 0 for a first frame, or a negative index for a last frame, and you've got your end-card from the same latent that made the shot. Install is the shared pack install: ComfyUI Manager → search "H3 Creator Palette", or git clone https://github.com/z3rofeels/ComfyUI-H3-Creator-Palette into custom_nodes/, restart, hard-refresh. ComfyUI 0.34.0+.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | — | |
| index | INT | 0-4096–4096 | Which latent frame becomes the picture. 0 is the causal first frame — the slice the image VAE was trained on. Negative counts from the end. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |