MiniMax H3 FLF Motion Carry-Over
Carry motion between FLF segments instead of cutting to black
- motion_context
- report
First-and-last-frame (FLF) video generation has a tell: it nails the two keyframes but invents entirely new motion between them, so consecutive shots that should flow together feel like separate takes. The Motion Context node is IAMCCS's continuity switch. It configures how motion from the preceding segment gets carried into the next one - a small config node whose output (IAMCCS_H3_MOTION_CONTEXT) tells the conditioning and generation backends how to hand off.
What the strategies mean
The continuity_strategy dropdown is the heart of it:
reference_motion_carry(default) - the stock MiniMax H3 approach: the tail frames of the previous render are fed back in as reference material so the model continues the existing motion rather than restarting it.hybrid_hard_anchor- blends the motion carry with a hard anchor on the planned shared keyframe, for when you need the previous motion and a fixed destination.native_av_context- the opt-in multi-frame audio-video tail handoff. This is the most ambitious mode: real decoded frames from the previous render get pinned as the opening context, with a special continuity prompt prepended telling H3 to continue camera direction, scale, and velocity "without re-establishing, resetting, or reversing that movement." It's the one with the strongest continuity - and the most moving parts.
The settings that matter
enabled- off by default. Without this, the node just emits an inactive config and everything downstream behaves like independent shots.motion_tail_frames- 22, 39, or 56 frames of the previous segment's tail to carry over. More frames = stronger continuity, higher cost.continue_audio+audio_tail_seconds- whether the audio tail rides along, and how long (0.5–15s, default 4s). For dialogue scenes this is what keeps the voice-over from hiccuping at a cut.- The two
unused_legacy_freeze_safe_*inputs are exactly what they say on the tin - dead widgets kept so old workflow JSONs don't break. They're ignored at runtime.
How it works
The node returns a config dict (schema iamccs.minimax_h3.motion_context) rather than doing anything dramatic itself. The motion_context output then flows into the FLF Conditioning backend, which either preps the native AV context or builds the reference carry, and into the Generation Backend V2, which trims the pinned context frames from the decoded output so you get exactly the export window. It's a handoff contract passed by wire, not a sampler.
Installing it
Standard pack install - ComfyUI Manager (search "IAMCCS") or git clone https://github.com/IAMCCS/IAMCCS-nodes.git into custom_nodes, restart. No extra dependencies.
Where people get burned
The native_av_context mode is the one that explodes: the code deliberately refuses to degrade silently, so if the context can't be prepared it raises a RuntimeError rather than quietly dropping to a one-frame bridge. That's a feature - a silent fake-bridge produced "reverse-zoom" artifacts in earlier versions, which is why the author made it fail loud. Also note the continuity handoff only kicks in for segment_index > 0; segment 0 has no predecessor, so don't panic when the first segment ignores the whole thing.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| enabled | BOOLEAN | false | — |
| motion_tail_frames | COMBO | 22 | 3 options: 22, 39, 56 |
| continue_audio | BOOLEAN | true | — |
| unused_legacy_freeze_safe_handover | BOOLEAN | true | — |
| unused_legacy_freeze_safety_margin | INT | 30–24 | — |
| audio_tail_seconds | FLOAT | 4.00.5–15 | — |
| continuity_strategy | COMBO | reference_motion_carry | 3 options: reference_motion_carry, hybrid_hard_anchor, native_av_context |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| motion_context | IAMCCS_H3_MOTION_CONTEXT | — |
| report | STRING | — |