MiniMax H3 Tagged Motion Ref (Source Timeline)
File-backed, timeline-typed, and lazy by design
- source_timeline
- previous
- references
- reference_fingerprint
- status
- preview_source
The Contex Loop pack's 0.5 release reworked how source media enters the graph, and MiniMax H3 Tagged Motion Ref (Source Timeline) is the primary motion-reference node of that rewrite. Instead of taking a raw video, it takes one typed H3_SOURCE_TIMELINE wire from the pack's Source Timeline node - the thing that describes a master file once (video, audio, native FPS, skip origin) and lets every downstream consumer request just the window it needs. This node registers that timeline as a reusable @motion subject without ever decoding the full video or the full audio track. Tagged Ref2VA and the preview node decode only the active scene's window.
The pitch is simple: describe the source once, reference it everywhere, and never pay to decode the parts you don't render. On a long master clip - the kind you'd actually want for a multi-scene production - that's a workflow that stays snappy instead of choking on a 5-minute IMAGE tensor.
Inputs that matter
The motion guts are shared with the eager and path variants, but the entry point differs:
source_timeline- one wire from MiniMax H3 Source Timeline. That node is where you point at the file, set embedded/external audio, and define the frame origin (skip_first_frames). If you haven't built one, do that first; this node refuses to invent a timeline for you.tag(defaultmotion),target_subject(must be existing native labels like<Subject 1>),motion_description(transferable action evidence only - no identity, wardrobe, or setting talk) - the same motion fields as its siblings, same validation.reference_short_edge- scene-local decode size. Default 384 keeps coarse pose and drops appearance tokens;sourcepreserves original resolution. Source media stays file-backed at its full resolution either way.paired_audio-off(default) never sends paired reference audio;embeddedsends the Source Timeline audio window alongside the motion. Reference-local choice, so the final assembled track is unaffected.audio_tag- alias for the paired audio; blank derives@<motion_tag>_audio.timeline_mode-sequential(default) follows Plan timing;restart_each_scenestarts at source frame 0 each activation.previous- chain the registry, as always.
Outputs: the standard references / reference_fingerprint / status, plus preview_source, an H3_LAZY_MOTION_SOURCE descriptor so the scene preview can show the active window without materializing the source.
Which motion node should you use?
If you've already built a Source Timeline (which 0.5's own example workflows do), this is the one - it's the primary path, and the timeline is the connective tissue between Plan, Run Manager, previews, Loop Start, and Assemble. If you're on an older 0.4-style graph or just want a direct file/VIDEO route without standing up a timeline, the Path variant (Lazy VIDEO/Path) covers you. The eager IMAGE-batch version is the compatibility-minded fallback and the least RAM-friendly of the three. For masked AV continuation, both lazy variants use delivered-frame timing so the repeated prefix isn't replayed past the mask boundary.
Install
Part of the Contex Loop pack:
cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMaxH3-Contex-Loop.git
Restart ComfyUI (or Manager → "MiniMax H3 Contex Loop"). No models bundled - supply the H3 weights and video + audio VAEs, and a current ComfyUI build with native Add Guide for MiniMax H3 (PR #15439). ffmpeg on PATH is preferred for review/assembly; bundled PyAV is the fallback. The pack is GPL-3.0, but the H3 weights under it are territory-restricted (US/EU/UK/South Korea excluded, outputs included), so read that license before you commit a production to it.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| source_timeline | H3_SOURCE_TIMELINE | One Source Timeline wire. Only the active scene window is decoded. | |
| tag | STRING | motion | Stable @tag for this reusable motion subject. |
| target_subject | STRING | <Subject 1> | Existing H3 Subject that performs the referenced action. |
| motion_description | STRING | the supplied pose sequence, action, and motion timing | Transferable action evidence only; exclude source identity, wardrobe, and setting. |
| reference_short_edge | COMBO | 384 | Scene-local decode size. Source media remains file-backed at its original resolution. |
| paired_audio | COMBO | off | Reference-local choice. embedded sends the Source Timeline audio window beside motion; off never sends paired reference audio. |
| audio_tag | STRING | Alias for paired audio. Blank derives @<motion_tag>_audio. | |
| timeline_mode | COMBO | sequential | sequential follows Plan timing; restart_each_scene begins at source frame 0. |
| previousopt | H3_TAGGED_REFERENCES | Optional preceding Tagged Ref chain. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| references | H3_TAGGED_REFERENCES | Updated prompt-driven registry containing the lazy motion reference. |
| reference_fingerprint | STRING | Fingerprint of the complete ordered registry for checkpoint safety. |
| status | STRING | Motion tag, target Subject, timeline mode, paired-audio policy, and fingerprint summary. |
| preview_source | H3_LAZY_MOTION_SOURCE | Lazy motion descriptor for the scene preview node; it does not decode the full source. |