Nodes/ComfyUI-MiniMax-H3-Guide/MiniMax H3 Shot (Legacy)
ComfyUI Node

MiniMax H3 Shot (Legacy)

Build H3's shot timeline without hand-typing timestamps

By ethanfel·Created 22 days ago·Updated 14 days ago· 207
MiniMax H3 Shot (Legacy)
  • previous_shots
  • shot_plan
  • shot_plan_preview
start_time0.000
end_time6.000
description
camera_direction
transitionDirect cut

Here's a sentence H3 understands: [Shot 2] At 00:02.500, close-up of the woman reading the note. Here's what happens when you type [Shot 2] at 2.5 sec... into a conditioning node: the model shrugs. H3's prompt format wants exact, millisecond-level cut times and strictly increasing shot order, and hand-writing that across five shots is exactly where people introduce typos that silently derail a render.

The Shot node turns one shot into one node: you set a float time range and describe what happens in it, then chain shots in playback order. The pack validates the chain - no gaps, no overlaps, no reversed ranges - and generates the [Shot N] At MM:SS.mmm markers for you.

How it works

Each Shot node holds four things you set and one chain input:

  • start_time - Shot 1 must be 0.000. Every later shot must start exactly where the previous connected shot ended; that boundary becomes its H3 cut timestamp.
  • end_time - greater than start, up to 15 s. The final node's end time becomes the requested duration.
  • description - what's visible and what changes during this range only: composition, subject action, setting, lighting, ending state.
  • camera_direction - optional per-shot camera behavior. State motion type, speed/amplitude, or "static camera." It overrides no other shot.
  • transition - how this shot begins when it follows another: Direct cut (the sane default), cross-dissolve, fade, or wipe. Shot 1 ignores it.

previous_shots takes the shot_plan from the preceding Shot node; leave it disconnected only for Shot 1. The chain builds left to right and the validation prevents gaps, overlaps, or reversed ranges - the "shot must start where the last one ended" rule is enforced, which is the thing people most often botch by hand.

Outputs

shot_plan connects to the next Shot's previous_shots, then - at the end of the chain - to Target Timing for a reference-context workflow, or directly to Prompt Guide's shot_plan input in the simple legacy path. shot_plan_preview is a readable list of the accumulated ranges and descriptions; wire it to a text viewer and check the whole chain before you queue.

Installing

cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMax-H3-Guide

Restart ComfyUI; this lands under MiniMax H3/Prompting. No Python dependencies. You just need a ComfyUI build with native MiniMax H3 support (the H3 Image to Video / Reference to Video nodes and the MiniMax tokenizer).

Where people get burned

Two habits cause most of the pain. First, treating the shot description like a prompt to the whole model - it's not; it only covers this time range, so the establishing details of Shot 1 should live in Shot 1. Second, forgetting that H3 rounds the whole timeline up to its native 17k+5 frame grid at 24 FPS. Your final shot says 6.0 s; the delivered clip is 158 frames, 6.58 s. That's fine - just don't schedule your last cut at 6.5 s expecting the video to end there. Keep every cut comfortably inside the requested duration and the extension is harmless.

One honest caveat: this is the legacy Shot node. The Plan v2 pipeline has its own Shot nodes with attachable keyframes and motion - if you're starting fresh, that's the newer route. But for the classic Guide workflow, this chain is still the cleanest way to a multi-shot timeline that H3 actually reads.

CategoryMiniMax H3/Prompting

Inputs (6)

NameTypeDefaultDescription
start_timeFLOAT0.0000–15Start time in seconds. Shot 1 must start at 0.000. Every later shot must start exactly when the previous connected shot ends; this becomes its H3 cut timestamp.
end_timeFLOAT6.0000.001–15End time in seconds; it must be greater than start_time. The final node's end_time becomes the requested duration when connected to Target Timing or directly to Prompt Guide; the resolved timeline may extend slightly to native H3's frame grid.
descriptionSTRINGDescribe what is visible and what changes during only this time range: composition, subject action, setting, lighting, and ending state.
camera_directionSTRINGOptional camera behavior for this shot. State motion type, meaningful speed/amplitude, or 'static camera'. It overrides no other shot.
transitionCOMBODirect cutHow this shot begins when it follows another shot. Shot 1 ignores this setting. A direct cut is the clearest default; use dissolves/fades/wipes only when intended.
previous_shotsoptMINIMAX_H3_SHOT_PLANConnect shot_plan from the preceding MiniMax H3 Shot. Leave disconnected only for Shot 1. Chains are validated to prevent gaps, overlaps, or reversed ranges.

Outputs (2)

NameTypeDescription
shot_planMINIMAX_H3_SHOT_PLANConnect to the next MiniMax H3 Shot.previous_shots input. For a role-aware reference workflow, connect the final shot to Target Timing.shot_plan; connect directly to Prompt Guide.shot_plan only in the simple legacy timing path.
shot_plan_previewSTRINGReadable list of the accumulated float ranges and descriptions. Connect to a text viewer to inspect the complete chain.