Everything here is free and stays free — the format spec, the nodes, the workflows, the cartridges, the LoRAs. If it saved you a night of debugging (it contains several hundred of mine), tips keep the 5090 warm:
Laufzeitprofil
Quellenbeschreibung
Everything here is free and stays free — the format spec, the nodes, the workflows, the cartridges, the LoRAs. If it saved you a night of debugging (it contains several hundred of mine), tips keep the 5090 warm:
☕ Buy me a coffee on Ko-fi
💛 Sponsor on GitHub
🔁 Liberapay (recurring)
⚡ Or right here: the Civitai tip button on this page sends Buzz directly
The joins are gone. Two independent video-understanding models were shown a four-shot chain from this version, blind and with no context. Both described it as one continuous unedited take - no cuts, colour consistent, audio unbroken.
Quellen
1 QuelleQuellenauszüge
1 AuszugSource context: 10753 downloads · Type Workflows · Base model MiniMax H3
That is the whole point of 2.0. Everything below is either what made it possible or what got cleaned up on the way.
A second way to join shots
Chaining used to mean handing the next shot the previous shot's last frame. That still works, is still shipped, and is still what the CORE workflow uses. 2.0 adds continuity = context_pin , which is a different mechanism entirely.
The previous shot's last 22 frames ride into the next shot as raw latents - bit-identical, never decoded to pixels and re-encoded - placed at interior keyframe coordinates, with a timeline-placed audio reference alongside them. The regenerated head is trimmed on decode. Colour, motion and voice cross the boundary as data instead of as a description, which is why the join stops being a place where things can drift.
This mode needs the ComfyUI-H3-Motion-Context pack. Without it, set continuity to first_frame - the model's own trained hand-off, no extra install, and what the CORE workflow ships with.
Seam audio that stops eating words
The boundary audio cut used to land blindly at the start of the incoming shot, which shaved the attack off any word the model happened to place there - audible as a tiny blip at a join. It now lands in the quietest gap within the shot's first 0.75 seconds, then welds with the same 40 ms equal-power crossfade. A line that begins early survives intact.
Voice and identity anchors, on the chaining sampler
The memory-bank sampler now takes the same anchor inputs the single-shot sampler always had: reference_images , voice_ref , self_anchor_voice , reference_image_size , preview_first_shot , two_pass_upscale and its three dials, plus sampler_override / scheduler_override so one master panel can drive the sampler and scheduler by name.
The bank already carried voice - each slot is a video reference with the audio under it - but only from shot 2 onward, because shot 1 renders against an empty bank. self_anchor_voice closes that gap: shot 1's own rendered voice becomes for every later shot. Operator-supplied references are placed ahead of the bank slots , so and numbering stays fixed as the bank fills and a prompt's bindings cannot drift mid-chain.
Two-pass upscale cannot be combined with continuity = context_pin or latent_handoff , or with an audio spine. Those carry the previous shot's raw latents - or one locked denoise trajectory - across the join, and a two-pass render preserves neither. The node stops with an error naming the conflict rather than quietly producing a weaker join. Two-pass is available on cut , seamless , seamless_tail , first_frame and flf_chain .
A VRAM and speed panel
One panel, three lazily gated model patches - memory-efficient attention, chunked feed-forward, and a block cache - plus an activation-reserve control. Every switch off reproduces the shipped recipe exactly, and a gate that is off means the patch node never executes at all, so there is no cost to leaving them alone.
And a reserve that understands payload
Memory measurements are now keyed by shape and conditioning payload, so a bare first shot and a reference-laden later shot no longer share one estimate. Measured pools are no longer overridden by a fixed floor, an unseen payload variant estimates from a measured sibling, and a spill into system RAM is now detected and named in the console rather than presenting as an unexplained five-times slowdown with nothing in the log.
The writer knows the join rules now
The LLM prompt writer gained a join_style control. Set it to a chained style and the render-verified boundary rules are appended to its system prompt automatically - open each shot holding the previous shot's closing arrangement, land settled, never straddle a line across a boundary, repeat every description verbatim. Generated scripts obey them without you memorising anything. Hand-written scripts still need to follow them; they are documented in PROMPTING.md with a worked four-shot example.
Three workflows instead of five
H3_Seamless_Chain_v2 - everything, with the optional lanes gated off by default: master controls, LLM writer, VRAM panel, identity and voice anchors, an episode/batch prompt source, FFLF boundary plates, and an audio spine.
H3_Seamless_Chain_CORE - the same job with zero third-party packs . Type shots into the script box and queue. Start here.
H3_Keyframes - unchanged, and still its own thing: single clip, anchors at chosen frame positions, per-anchor condition strength.
H3_Multishot_AIO and H3_Multishot_MEMORY retire. Every lane they had is in v2 - the AIO's episode source, plate chain and audio spine were folded in, and MEMORY had nothing v2 lacks. Your existing copies keep working; there is just no longer a reason to open them.
Smaller things that were worth fixing
flf_chain selected with no boundary plates wired now stops with a clear error instead of quietly rendering an unanchored chain.
Interior keyframe anchoring and the Motion Context pack no longer fight over the same patch site. If that pack is installed it owns the site and this one stands down with a line in the log; if it is not, this one fills the gap. First and last anchors work either way.
GGUF vision sidecars can be named explicitly. ComfyUI-GGUF pairs the -mmproj file to a GGUF text encoder by filename, in the encoder's own folder only - rename either, or split them up, and it loads the encoder without its vision tower, which presents as the model ignoring your reference image. This pack's CLIP loader now raises instead of continuing blind, uses the only mmproj beside the encoder when there is exactly one, and takes an mmproj_name widget so you can point at the file directly - so the filename rule documented on the encoder listing stops being something you have to obey.
The pack now imports defensively - one module failing no longer takes every node in the pack down with it.
Shipped defaults
ref2va checkpoint, continuity = context_pin , voice self-anchor and the identity bank on, euler + beta57 , 14 steps, 362 frames per shot (~15.1s), 24 fps, every VRAM switch off.
Blind review ran on the lighter configuration - fl2va , no voice anchor - which is the same chaining mechanism with fewer reference rows. ref2va ships as the default because it makes voice and character identity explicit rather than emergent; switching to the reviewed path is two changes, documented in SETTINGS.md .
Honest limits
Audio dulls slightly per hop on very long chains - restart the chain on a scene cut, where a fresh start costs nothing.
Resolution cannot change mid-chain.
flf_chain has not been rendered against a fully colour-matched plate set.
Two-pass upscale is off by default and excluded from the raw-latent continuity modes (above), so the seamless chain has no built-in upscale path yet. Upscale after the fact, outside the graph.
Keep the mux at 24 fps. Other rates audibly shift voice accents; that is the model's audio lane, not the muxing.
Hardware and download-size estimates are not available yet.
Anforderungen
minimax_h3_audio_vae_fp32.safetensors
Datei ungeprüftVAE · SAFETENSORS · Unknown
minimax_h3_video_vae_fp16.safetensors
Datei ungeprüftVAE · SAFETENSORS · Unknown
MiniMax-H3-encoder-Q4_K_M.gguf
Nicht aufgelöstText encoder · Unknown
MiniMax-H3-fl2va-Q5_1.gguf
Nicht aufgelöstCheckpoint · Unknown