JR MiniMax H3 Director PIPE Builder
Skip the fancy timeline — build a Director PIPE from plain nodes
- first_frame
- last_frame
- reference_images
- reference_video
- reference_audio
- driving_audio
- pip
The JR MiniMax H3 pack has a full Director Desk timeline editor - a node where you drag shots, assign roles, set start/end times, and build a rich multi-shot prompt. It's powerful, and it's also a lot. If you already have a plain prompt and standard ComfyUI media values, JR_H3_DirectorPipeBuilder is the on-ramp that gets you into the same PIPE pipeline without touching the timeline at all.
Why the PIPE exists
This pack threads one authoritative data bus through its whole Director chain: the JR_H3_DIRECTOR_PIPE custom type. It carries the prompt stages, duration/fps, media descriptors and registry JSON down one wire, so the downstream nodes (Prompt Optimizer → Review & Continue → Directed Video Conditioning) all read from the same source of truth. The Builder is the standard-media ingress: it takes a STRING prompt plus optional IMAGE/VIDEO/AUDIO inputs and assembles them into that one pipe.
This is the same "bundle a dozen values into one object that travels down one wire" pattern rgthree's Context and every other pipe pack use - the spaghetti-reduction play. The trade-off (stale contents inside a black box) is real, but here it's mostly handled by the pack's immutability rules: the Builder creates a single Shot spanning your duration, stores your prompt byte-for-byte as the optimized_prompt stage, and none of the downstream nodes mutate what upstream produced.
Inputs you'll actually set
prompt- your final text. Non-empty; this becomes the current optimized prompt.duration_seconds- the timeline duration (default 10s, up to 3600). H3 generation itself stays at 24 fps internally.fps- editing metadata, default 24.- Optional:
first_frame,last_frame(exactly one RGB image each),reference_images(an IMAGE batch - each member becomes its own Picture record),reference_video,reference_audio, anddriving_audio.
One number to keep in mind: the native H3 Ref2V limit is 9 total reference Pictures, and the Builder enforces that across first/last frame plus the reference batch. Push past it and you'll get a validation error, which beats finding out at conditioning time.
What makes it different from just wiring nodes directly
The whole point is that runtime media stays out of the workflow JSON. IMAGE tensors, VIDEO objects, AUDIO waveforms and absolute paths live only in the pipe's runtime media registry; what gets saved with your workflow is a lightweight descriptor. That means a saved workflow stays small, shareable, and doesn't leak filesystem paths. The output is a single pip socket of type JR_H3_DIRECTOR_PIPE, which you run straight into the Optimizer, Review, or Directed Video Conditioning:
JR_H3_DirectorPipeBuilder -> Prompt Optimizer -> Prompt Review & Continue -> Directed Video Conditioning -> sampler
If you just want a quick T2V/I2V/Ref2V run without authoring a timeline, this is the node. If you need per-item timing, direction notes, or source ranges, that's what Director Desk is for - the Builder deliberately doesn't try to be it.
Installing it
It ships in the JR MiniMax H3 pack (Goldlionren/ComfyUI_JR_MiniMaxH3Node). ComfyUI Manager → search "JR MiniMax H3", or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Goldlionren/ComfyUI_JR_MiniMaxH3Node.git
<ComfyUI-Python> -m pip install -r .\ComfyUI_JR_MiniMaxH3Node\requirements.txt
Use the same Python that runs ComfyUI - that's the classic install trap with this pack. The only real dependency beyond ComfyUI's own stack is imageio-ffmpeg>=0.5. Restart ComfyUI after installing, and remember the whole suite assumes a current ComfyUI with native MiniMax H3 support (day-zero in comfy_extras.nodes_minimax_h3). Nothing in this node touches the network or loads models at import time - it's pure plumbing, so if the rest of the pack is too heavy for you, this node by itself is harmless to install.
Troubleshooting
The most common snag is feeding it media the validator rejects: a first_frame that's not exactly one RGB image, a reference_images batch that pushes total Pictures past 9, or an empty prompt. All are clear ValueErrors, not silent truncations. And if you see an error downstream about PIPE mismatch, check that you're not mixing this pipe with a Director Desk pipe of a different timeline - each PIPE is immutable, so when in doubt, build a fresh one.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| duration_seconds | FLOAT | 10.00.1–3600 | — |
| fps | FLOAT | 24.001–240 | — |
| first_frameopt | IMAGE | — | |
| last_frameopt | IMAGE | — | |
| reference_imagesopt | IMAGE | — | |
| reference_videoopt | VIDEO | — | |
| reference_audioopt | AUDIO | — | |
| driving_audioopt | AUDIO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pip | JR_H3_DIRECTOR_PIPE | — |