H3 Sequence Dexogen
Sampling a whole MiniMax H3 scene, chunk by chunk, with no seams
- model
- clip
- video_vae
- audio_vae
- sampler
- sigmas
- storyboard
- first_frame
- last_frame
- reference_images
- av_latent
- sequence_state
- report
MiniMax H3 is the model of the moment: 33B omni-modal weights, native stereo audio, up to ~15 seconds of 2K video per generation. Fifteen seconds is a great clip and a terrible scene. Get past it and you're stitching generations together - and naive stitching is where video projects go to die: seams, drift, audio that loses sync three chunks in.
H3 Sequence Dexogen is the pack's answer, and it's the one I'd call the flagship. You feed it a validated storyboard and it samples the whole thing sequentially as one paired H3 video/audio latent, chaining each chunk onto the last one's latent tail in latent space - no RGB decode/re-encode between chunks, which is where the visible seams come from.
How it works
The mechanism matters, so here's the short version. Each continuation renders a fresh unmasked window conditioned on the preceding synchronized video/audio latent tail as a native frame-zero H3 guide. The regenerated overlap (the part H3 replays to establish motion) is discarded, and only the new suffix gets appended. Because the overlap and the guide stay in the model's own latent space, you don't pay the decode/encode quality tax that most chaining schemes do.
Then there's the sync detail that separates this from a weekend-script approach: audio windows are aligned to absolute 24 fps / 40 Hz boundaries, so a long chain doesn't accumulate the one-token drift that turns quiet background audio into a lip-sync nightmare by chunk ten. Per-chunk safetensors caches support resume and explicit rerun-from behavior - if chunk 7 of 12 dies on a CUDA OOM, you fix it and resume rather than re-rendering the first six.
Inputs and outputs
Required inputs:
model,clip,video_vae,audio_vae- the native MiniMax H3 stack, with the video and audio VAEs separate.sampler,sigmas- deliberately external. The node keeps quality/acceleration recipes out of its own config so you can use whatever sampling workflow you already trust.storyboard- aDEXOGEN_STORYBOARDfrom the planner (or Storyboard Shot's patched output).width/height(default 1344×768, step 32),cfg(default 1.0 - H3 runs low CFG),seed.
Optional: first_frame, last_frame, and reference_images for image-guided scenes.
Outputs:
av_latent- one native H3 NestedTensor with the joined video and audio latents.sequence_state- canonical resumable sequence state.report- readable chunk, seed, timing, and cache summary.
One important note buried in the README: the MODEL input is intentionally post-LoRA. Apply your detail/anatomy LoRAs first, then at most one acceleration LoRA, then H3 sampling, and feed that into this node. The node never loads, reorders, or guesses LoRAs from filenames - that's your job upstream, on purpose.
Install
ComfyUI Manager → ComfyUI-Dexogen → restart, or
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/dexogen/ComfyUI-Dexogen.git
python -m pip install -r ComfyUI-Dexogen/requirements.txt
Node lives under 🧬 Dexogen → 🎬 Video (there's a companion H3 Sequence Assemble node in the same pack that decodes the joined latent with the video and audio VAEs at 24 fps and saves the file).
The requirement that bites
This needs a recent ComfyUI. The node relies on native arbitrary-frame MiniMax H3 video/audio guide support from Comfy-Org commit e01fb4c (or newer). On an older build it fails before sampling with a clear message - update ComfyUI first, and if you're on a distro that pins it, that's your problem, not the node's.
Gotchas
- VRAM is the real budget. H3 is ~42.5 GB of weights; the README's validation canvas is 1408×768 and it explicitly says on an RTX 3090 to start with the documented two-chunk smoke run before queuing the full scene. Chain greedily at your own risk.
- The H3 license geofences the West. MiniMax's Community License excludes the US, EU, UK, and South Korea from the applicable territory (separately gating commercial use). Local weights being downloadable doesn't mean licensed for everyone - worth remembering before you build a business on it.
- cfg default is 1.0. That's not a mistake; H3 wants low CFG. Crank it up because you're used to SD and you'll get over-saturated mush.
- Edited transitions are experimental.
cut,dissolve,fadein edited-sequence mode are in-chain prompted transitions, not composited shots - the README is honest that they need validation on real hardware before you trust them in a final render.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| video_vae | VAE | — | |
| audio_vae | VAE | — | |
| sampler | SAMPLER | — | |
| sigmas | SIGMAS | — | |
| storyboard | DEXOGEN_STORYBOARD | — | |
| width | INT | 134432–16384 | — |
| height | INT | 76832–16384 | — |
| cfg | FLOAT | 1.00–100 | — |
| seed | INT | 00–18446744073709550000 | — |
| first_frameopt | IMAGE | — | |
| last_frameopt | IMAGE | — | |
| reference_imagesopt | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| av_latent | LATENT | One native MiniMax H3 NestedTensor containing the joined video and audio latents. |
| sequence_state | DEXOGEN_H3_SEQUENCE | Canonical resumable H3 sequence state without filesystem paths or prompt graph data. |
| report | STRING | Readable chunk, seed, timing, and cache summary. |