MiniMax H3 Encode AV (Backported)
The quiet half of video continuation
- vae
- images
- audio_vae
- audio
- LATENT
The node nobody claps for, and why it exists
MiniMax H3 is that rare open-weight video model people are actually excited about - 33B, omni-modal, native stereo audio, lands on the ComfyUI menu with text-to-video, image-to-video, and reference-to-video support. What stock ComfyUI doesn't ship is video continuation (extend a prior clip instead of starting from scratch). That feature only exists on kat3ri/ComfyUI's fork. This pack backports it to your normal install, and this node is the input side of that trick.
MiniMaxH3EncodeAVPatched VAE-encodes video frames (plus optional audio) into the AV latent that MiniMaxH3VideoExtendPatched's context_latent input needs. Think of it as the "ingest my last clip" encoder: you load an existing shot with something like VHS_LoadVideo, run its frames through this node, and hand the result to the extend node as the thing to continue from. On its own it renders nothing - it's a pure encoder, the pair to the generation node.
It's a backport of a backport, which is worth knowing: the native MiniMaxH3EncodeAV isn't part of stock ComfyUI either, so the author vendored it here. Same mechanism, same output, just available on master-branch installs.
How it works
Mechanically it's short and honest. It runs your frames through the H3 video VAE (vae.encode), and if you supply audio, it runs that through the separate audio VAE too, resampling to the model's 32 kHz audio rate first. With audio present the two latents get wrapped into a NestedTensor pair - the "AV" in the name. Without audio you just get a plain video latent back.
One genuine design decision: it never does any positional math or sampling itself. Its whole job is producing the right-shaped latent, so the extend node can place those frames at negative RoPE-time positions counting backward from the new clip's frame 0. Clean separation, and it means this node also feeds the fork's native extend node if you're ever on kat3ri's ComfyUI - the pack injects it into the native namespace so ComfyUI-H3-Cast's H3CastToVideoExtend can find it transparently.
The inputs that matter
vae- the H3 video VAE (Load Video VAE). Required.images- your frames, at 24 fps (that's the author's own tooltip, and it matters: H3's frame math assumes it).VHS_LoadVideofeeding a prior clip is the intended source.audio_vae- only needed if you're encoding audio. It's not optional-and-optional: connectaudiowithout anaudio_vaeand you get a hardValueError. The H3 audio VAE is a separate file from the video VAE - don't reuse the same one for both.audio- the optional soundtrack for the context. Skip it if you only want visual continuation; it halves the fiddly wiring.
Output: a single LATENT - the AV latent. It wires into the context_latent socket of MiniMaxH3VideoExtendPatched (or the fork's native MiniMaxH3VideoExtend).
Install
Same as every node in this pack - it's one clone:
cd ComfyUI/custom_nodes
git clone https://github.com/kat3ri/ComfyUI-MiniMax-H3-Extend
# restart ComfyUI
Or search ComfyUI-MiniMax-H3-Extend in ComfyUI Manager. There are no extra pip dependencies - the pack monkey-patches ComfyUI's MiniMax H3 code in memory at import time and edits no core files. What you do need is a ComfyUI that already has H3 support (so MiniMaxAI/MiniMax-H3's ~42.5 GB of weights, the H3 video VAE, audio VAE and CLIP, plus a GPU that can actually hold them). This pack adds continuation, not the base model. One more thing, and it's not the pack's fault: the H3 Community License excludes the US, EU, UK and South Korea from running the local weights at all - worth a glance before you commit the disk space.
Common issues
- "audio_vae is required when audio is supplied" - the classic. Wire the audio VAE (a different file from the video VAE) or drop the audio connection.
- Nothing happens when you run it. Expected - this node only encodes. The output is invisible until it's the
context_latentof an extend node that's feeding a sampler. - Frames at the wrong fps. Load a 30 fps clip without resampling and the continuation timing drifts. VHS has you covered; just be deliberate about it.
- You're on a fork already. If your ComfyUI has native
MiniMaxH3VideoExtend, the pack detects it and skips its patches entirely - you don't need this node, use the native one.
Where people get burned on this node, it's almost always the audio path. It's the less glamorous half of continuation, but skip it and you can't feed a prior clip into an extend at all.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | VAE | — | |
| images | IMAGE | Video frames at 24 fps | |
| audio_vaeopt | VAE | — | |
| audioopt | AUDIO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |