MiniMax H3 Shot (Plan v2)
Building the H3 timeline one cut at a time
- h3_plan
- h3_plan
- shot_preview
- shot_handle
H3 is a single continuous clip - it doesn't render a montage of independent shots and splice them. So if you want a cut between two scenes, you tell the model where in the timeline that cut lands, and it figures out the transition itself. That's the job of MiniMax H3 Shot (Plan v2): one node per real cut, in playback order, and the compiler assembles the full timeline.
The mental model is simple. Shot 1 begins at zero. Every later Shot has exactly one cut_at timestamp, and the next cut - or the Project duration - closes its range. There's no such thing as an end time you type in; the chain of cuts defines the timeline, and the compiler rejects gaps, overlaps, reversed ranges, and a first shot that doesn't start at 0.000.
The inputs that matter
h3_plan- for Shot 1, connect the final reference/binding node. For later shots, connect the preceding Shot or Dialogue Event. The chain order is the playback order; it's not something you set elsewhere.cut_at- the shot's start, in seconds, up to 15. Shot 1 must be0.000. Every later value is the single H3 cut timestamp.description- the heart of it. Describe visible and audible events in chronological order. Two markers matter here: insert an upstream<Audio N>label directly in the sentence where its sound is heard, and insert[d]where the next attached Dialogue Event must appear (each[d]consumes the next event in chain order). Events without a[d]fall back to the legacy after-Shot placement.camera_direction- optional movement for this Shot only.transition- how the Shot begins: Direct cut, Cross-dissolve, Fade, or Wipe. Ignored for Shot 1.
Outputs
h3_plan- continue the chain to an attachment, Dialogue Event, the next Shot, or Prompt Merge.shot_preview- the complete timeline with each end computed from the next cut or Project duration. Verify this before you merge; it shows whether your cuts line up.shot_handle- the important one. This is a stable handle you feed to Attach Keyframe and Attach Motion so those media get bound to this exact shot without any manual shot numbers.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMax-H3-Guide
Restart ComfyUI, find the nodes under MiniMax H3 → Plan v2. No extra dependencies, no model files for this node itself - just the native-MiniMax-H3 ComfyUI build requirement the whole pack has.
Common issues
- "Shot 1 must be 0.000." The most common beginner error. Every new Shot defaults to
cut_at = 0, so if you add a second Shot without touching the value, you get an overlap and a loud complaint. - Timeline vs. duration mismatch. Your cuts are validated against the Project frame count. If the last cut plus its content runs past the Project duration, the compiler tells you. Fix it by lengthening the Project or moving the cut.
- Forgetting the shot handle. If you're doing per-shot keyframes or motion, keep the handle output wired through. It's how the pack avoids the "keyframe landed in the wrong shot" failure mode that plagues hand-written H3 prompts.
The design here is the pack's strongest idea: you never type a shot number or a <Shot N> marker. The compiler owns all of that, so reordering shots by rewiring the chain is safe, and you can't accidentally duplicate a label. If you've ever hand-written a 400-line H3 prompt with references, you'll appreciate how much of that bookkeeping just disappears.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| h3_plan | MINIMAX_H3_PLAN_V2 | Connect the final reference/binding node for Shot 1, then the preceding Shot or Dialogue Event for later Shots. | |
| cut_at | FLOAT | 0.0000–15 | Shot 1 must be 0.000. Later values are the single H3 cut timestamp; the next cut or Project duration supplies the end. |
| description | STRING | Describe visible and audible events in chronological order. Insert an upstream <Audio N> label directly in the sentence where its sound is heard. Insert [d] where the next Dialogue Event attached to this Shot must appear; multiple [d] placeholders consume events in chain order. Events without a [d] retain the legacy after-Shot placement. | |
| camera_direction | STRING | Optional camera movement for this Shot only. | |
| transition | COMBO | Direct cut | How this Shot begins. Shot 1 ignores this value. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| h3_plan | MINIMAX_H3_PLAN_V2 | Connect to a Shot attachment, Dialogue Event, the next Shot, or Prompt Merge. |
| shot_preview | STRING | Complete timeline with each end computed from the next cut or Project duration. |
| shot_handle | MINIMAX_H3_SHOT_HANDLE_V2 | Stable handle for attaching keyframes and motion references to this exact Shot. |