Download
1 variant available
1650 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9
(9)
Aug 7, 2026
MiniMax H3
v1.1 adds clip chaining and an optional smaller text encoder, and corrects one claim from v1.0.
Chaining. Both workflows now carry a Motion Context block. Un-bypass Save Latent on a clip you may want to continue and it writes a small latent; to continue it, un-bypass three more nodes, set two clip indexes and queue. The continuation comes back exactly 22 frames shorter, which is the free proof it engaged. Nine links ran as one sequence, 39s of continuous scene. The 25s video in the gallery is the front of it, hard concatenated, no crossfades and no level matching.
Two rules that cost me renders. Write each beat to fill the whole clip: if the action finishes early, the model can fill the rest by cutting to an animated version of one of your reference images, and reseeding does not fix it. And clip 1's framing is inherited by everything after it, so lock it before you start.
Smaller text encoder. An optional swap replaces the 14.6 GB GGUF encoder with Qwen3-VL-8B fp8 plus a small projection matrix, roughly 4 GB lighter. That is what makes 5s clips fit on 48 GB. It buys length, not speed: same-seed reruns held identity, wardrobe and a spoken line at the same wall clock.
The correction. v1.0 said latent-space chaining was impossible. The measurement behind that stands, a causal VAE cannot have one latent sliced into a keyframe slot, but the conclusion was wrong: H3 pins a run of frames at their own time coordinates and re-injects them while sampling, which is a different mechanism.
Both workflows ship sampler euler rather than the stock templates' res_multistep, and both optional packs ship fully bypassed, so neither is needed to render. Both were rendered end to end from the shipped files before posting.
48 GB tested, ComfyUI 0.30.0, Spectrum pinned v0.2.3.
Show more

130 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9
180 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9
Two ComfyUI workflows that run MiniMax H3 locally on a Mac. Video and stereo audio come out of the same pass, so foley and dialogue are generated with the picture, not layered on after.
MacMax is the default: text to video, image to video and first/last frame in one graph. Foxydit port is the full rig, reference to video with four reference slots (credit and terms in NOTICE.md, redistributed with permission).
Measured on a 48 GB M5 Pro, ComfyUI 0.30.0. Full docs, every measurement: https://github.com/Bambushu/minimax-h3-mac
Render times
0.5 MP vertical, 20 steps, Spectrum on, chunked VAE, ClipProj encoder.
3s image to video ~14 min
5s text to video ~24 min
3s reference to video, with a spoken line ~29 min
5s reference to video, chained link ~39 minReferences cost more than duration: a 3s render with two references is slower than a 5s one with none. Budget by megapixels x seconds x references.
Sizing: about 22k tokens is comfortable on 48 GB. That is 0.6 MP at 5s, or 1.03 MP at 3s.
Chaining
Clips continue each other: motion carries across the cut, the scene holds, and so does the audio bed. Un-bypass Save Latent on a clip you may want to continue and it writes a small latent; to continue it, un-bypass three more nodes, set two clip indexes, queue.
The continuation comes back exactly 22 frames shorter, because those frames are the pinned context and they get trimmed so the files concatenate cleanly. If yours is not 22 frames shorter, chaining did not engage. That is the check worth doing.
Nine links ran as one sequence, 39s of continuous scene. The 25s video in the gallery is the front of it, hard concatenated, no crossfades and no level matching, so every join is visible as rendered.
Two rules that cost me renders:
Write each beat to fill the whole clip. If the action finishes early, the model can fill the rest by cutting to an animated version of one of your reference images. Reseeding does not fix it.
Clip 1's framing is inherited by everything after it. Lock it before you start.
Smaller text encoder
An optional swap replaces the 14.6 GB GGUF encoder with Qwen3-VL-8B fp8 plus a small projection matrix, roughly 4 GB lighter. That is what makes 5s clips fit on 48 GB. It buys length, not speed: same-seed reruns held identity, wardrobe and a spoken line at the same wall clock. Sampling dominates either way.
The projection is an approximation and proper nouns are where it shows. Same seed, same prompt, only the encoder changed: ClipProj gave "Apple, Andrian or your dakes top at home", GGUF gave "Apple, Android, or your desktop at home". Keep the shipped GGUF loader for anything with brand names or proper nouns, and swap to ClipProj when you need the length. GGUF is also lighter in practice than its size suggests, since ComfyUI frees it after encoding; ClipProj ships mode: resident, which pins its weights for the whole render.
Settings
Spectrum ships on, worth about a quarter of the clock, and faces hold. EasyCache is faster still but smears mouths, so it ships off; fine for faceless b-roll, never alongside Spectrum. 20 steps, sampler euler rather than the stock templates' res_multistep. On unified memory leave history_storage on system_ram.
Setup
Four model files, about 41 GB, all linked in the README. Use the GGUF text encoder, the stock one is CUDA only.
ComfyUI 0.30.0 in its own checkout, launched with:
ASFP8_INT8_EXT=1 python main.py --port 8288 --reserve-vram 10 --cache-none --disable-smart-memoryThree node packs are required and two more are optional, for chaining and the smaller encoder. ./install_node_packs.sh all clones the lot. Everything the optional packs add ships bypassed, so neither is needed to render.
48 GB is what this was measured on. 32 GB works too, reported by users rather than tested here; expect to stay at the shorter durations.
Limits
One machine, one config. Chaining is validated at 5s links; longer links are reported elsewhere to fall apart around 15s. Audio carried across ambience beds, not tested on a musical build. No metric here judges audio beyond whether Whisper recovered the words.
