MiniMax Reference Director
Storyboard your whole H3 video in one node instead of a spreadsheet
- config
- guide_data
- segment_count
MiniMax H3 generates good clips one at a time, but a finished short film isn't one clip - it's six, with a story, cuts, and a character that has to survive every transition. That's the gap this node is built for. MiniMaxRefDirector is the timeline editor at the heart of the MiniMaxRefDirector-ComfyUI pack: you lay out your shots inside the node's UI like you would in an NLE, and it packages the whole storyboard into one guide_data bundle that a loop then renders segment by segment.
The name is doing heavy lifting. The node doesn't call MiniMax's API and needs no key - this pack is for the local H3 weights (33B, ~42.5 GB full precision, and note the H3 Community License excludes the US/EU/UK/Korea from running those weights locally). The "director" part is the real feature: an embedded timeline editor where each segment gets its own prompt, duration, camera language, and reference material, all stored as JSON in the node. You genuinely don't hand-edit that JSON - timeline_data, local_prompts, and segment_lengths are all auto-populated from the editor and the tooltips say so in so many words. Treat them as read-only.
The inputs you actually touch are the display ones. display_mode flips the ruler between frames and seconds (storage is always pixel-space frames), frame_rate just changes how seconds are shown, and outpu_resolution - yes, the typo is in the shipped schema - picks your aspect ratio from 1:1, 9:16, 16:9, and friends. million_pixels sets the pixel budget (1.0 ≈ 1024×1024), so resolution is calculated for you. Plug the config output of MiniMaxRefSubject in and the node also inherits your VLM settings and subject data, which is how the auto-written prompts know your characters by name.
Outputs are clean: guide_data (a GUIDE_DATA object that MiniMaxRefGuide consumes) and segment_count, which you feed to a loop as its total. There's a subtlety worth knowing: the author deliberately wires segment_count + 1 into the loop so the final iteration is a notify-only round that cleanly closes the loop instead of throwing.
Mechanically it's a pure function - same inputs, same output - so it caches aggressively to avoid recomputing prompt templates and LLM calls when a loop re-references it. That's invisible to you unless you're reading the console, where it logs cache hits.
Install the pack once and every MiniMaxRef* node arrives together: ComfyUI Manager (search "MiniMaxRefDirector-ComfyUI"), or
cd ComfyUI/custom_nodes
git clone https://github.com/eaglering/MiniMaxRefDirector-ComfyUI
cd MiniMaxRefDirector-ComfyUI
pip install -r requirements.txt
and restart. The only extra dependency is PyAV (av>=12.0.0) for audio; everything else ships with ComfyUI. There's also a Windows install.bat one-click installer if you prefer.
Gotchas, from the README and the code. The front-end is JS, so after updating the pack hit Ctrl+F5 or the timeline editor will be running stale code while the backend pretends nothing changed. The pack is built on ComfyUI's newer extension API (comfy_api.latest), so update ComfyUI before you blame the nodes for not registering. And this is a brand-new pack - v3, zero search impressions, no community trail to lean on when something's weird - so the README and the workflow/MinimaxH3 V3 example JSON are your documentation. If you want cross-segment motion context, pair it with ComfyUI-H3-Motion-Context; the Guide node reaches for it automatically.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| start_second | FLOAT | 0.000–1000 | Start time in seconds of the timeline generation. |
| end_second | FLOAT | 5.000–1000 | End time in seconds of the timeline generation. |
| duration_seconds | FLOAT | 5.000.1–1000 | Total timeline duration in seconds (computed/synced from frames). |
| start_frame | INT | 00–10000 | Start frame of the timeline generation. |
| end_frame | INT | 1201–10000 | End frame of the timeline generation. |
| duration_frames | INT | 1201–10000 | Total timeline length in pixel-space frames. Used by the editor for visual scale only. |
| timeline_data | STRING | JSON state of the timeline editor (auto-managed; do not edit by hand). | |
| local_prompts | STRING | Auto-populated from the timeline editor. | |
| segment_lengths | STRING | Auto-populated from the timeline editor (pixel-space frame counts). | |
| configopt | SUBJECT_CONFIG | Unified config from MiniMax Reference Subject (VLM opts + subject data). | |
| frame_rateopt | FLOAT | 241–240 | Frames per second — only affects how time is displayed in the timeline editor when time_units is set to 'seconds'. |
| display_modeopt | COMBO | seconds | Display the ruler, segment ranges, length input, and total in frames or seconds. Internal storage is always pixel-space frames. |
| outpu_resolutionopt | COMBO | 16:9横屏 | Target output aspect ratio. Width/height are calculated from million_pixels. |
| million_pixelsopt | FLOAT | 0.60.1–4 | Million pixels target. 1.0 MP ≈ 1024×1024. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| guide_data | GUIDE_DATA | — |
| segment_count | INT | — |