FL MiniMax H3 Shot Motion Context
H3 motion context without visible overlap
- shot_plan
- shot_plan
Here's the problem FL MiniMax H3 Shot Motion Context solves, and it's a real one: when you render a bunch of independent H3 shots and splice them together, each shot was generated in a vacuum. The camera, the lighting, the motion feel - everything drifts between cuts. A hard-cut music video looks like five different videos taped together instead of one film.
This node carries context from each completed render into the next one. It takes your shot_plan, adds a configurable authored tail of the previous render as hidden conditioning for the next render, and hands you back a motion-context shot_plan. The assembler later strips that hidden prefix back out, so the visible transition stays a hard cut - you get the coherence of a conditioned next shot without any overlap frames in the final video.
How to use it
It slots between the planner and the sampler:
FL MiniMax H3 Beat Shot Planner → FL MiniMax H3 Shot Motion Context
→ FL MiniMax H3 Beat KSampler → FL MiniMax H3 Shot Assembler
shot_plan- the plan from Beat Shot Planner.video_context_frames- prior authored video frames conditioned into each next render. Values are native H3 temporal windows:0,1,5,22, or39. Start with 5.audio_context_frames- prior authored audio measured on the 24 fps video timeline,0to240. The README's example workflow starts at 22.per_render_overrides- 1-based destination overrides, one per line, like3: 22, 39(render 3 gets 22 video + 39 audio context frames). The override format uses the render number first, then video, then audio.
Rules that will bite you if you ignore them: the first render has no previous context, and a requested context can't exceed the previous render's authored length. Also, when video context is nonzero, you must connect the H3 video VAE to the Beat KSampler's optional vae input.
The gotchas
The big one is length. Larger video context substantially increases the destination render's length on H3's temporal grid - that 17k+5 frame snapping isn't free, and a long context tail can push a render's token count up meaningfully. Start conservative: 5 video frames and 22 audio frames is what the example workflow ships with, and it's a sane baseline. Audio context guides joint generation but doesn't replace the final muxed soundtrack - the final video still uses the scheduler's original audio track.
Under the hood the Beat KSampler installs a marker-scoped H3 hook through ComfyUI's model patcher on a cloned model - it doesn't touch ComfyUI files or your connected model, and workflows without this node take the original H3 path. The hook runs before diffusion-model wrappers, so it plays nice with Spectrum H3 if you run that.
It's part of the shared pack, so install is the usual: ComfyUI Manager → FL MiniMax H3, or clone https://github.com/filliptm/ComfyUI-FL-MiniMaxH3.git into custom_nodes and restart. No extra Python deps, no model downloads. And the standing migration rule applies - update Fill Nodes past the version that still registers the MiniMax node IDs before loading old workflows.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| shot_plan | FL_H3_SHOT_PLAN | Shot plan from FL MiniMax H3 Beat Shot Planner. | |
| video_context_frames | COMBO | 5 | Prior authored video frames conditioned into each next render. Values match native H3 temporal windows. |
| audio_context_frames | INT | 220–240 | Prior authored audio duration measured on the 24 fps video timeline. |
| per_render_overrides | STRING | Optional 1-based destination overrides, one per line: 3: 22, 39. The first number is render, followed by video and audio context frames. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| shot_plan | FL_H3_SHOT_PLAN | Motion-context shot plan for the Beat KSampler and all upscale passes. |