JR MiniMax H3 Directed Video Conditioning
The node that turns a Director timeline into real H3 conditioning
- clip
- vae
- pipe
- audio_vae
- positive
- latent
If you've built the Director chain - Desk compiles the timeline, Optimizer formats the prompt, Review approves it - this is the node where all that work finally touches the model. JR_H3_DirectedVideoConditioning takes the approved JR_H3_DIRECTOR_PIPE, decodes the media it references, and hands you a ready-to-sample CONDITIONING plus the LATENT noise initialization. What makes it worth a whole node is that it doesn't reinvent MiniMax H3 conditioning; it delegates to ComfyUI's current native MiniMaxH3ImageToVideo / MiniMaxH3ReferenceToVideo implementations. You get the official code path with the Director structure pre-mapped onto it.
What you feed it
clipandvae(required) - your H3 text encoder and VAE, the same ones the stock workflow uses.audio_vaeis optional but you want it connected if the pipe carries audio, since H3 generates native stereo audio jointly.pipe(required) - theJR_H3_DIRECTOR_PIPEfrom Review/Optimizer.mode_override- Auto picks Reference-to-Video whenever any Reference Image/Video/Audio or Driving Audio exists, else Image-to-Video. Forcing Image-to-Video against Ref2V-only media raises an explicit conflict rather than silently dropping stuff.dimension_source- Prefer Pipe derives canvas from the first Picture/Video media and converts duration to frames at H3's fixed 24 fps (ceil(duration×24), then aligned to the model'sn % 17 == 5grid). Prefer Node useswidth/height/length. When the pipe has no media dimensions, it falls back to the node values anyway.
The outputs
positive(CONDITIONING) andlatent(LATENT) - both go straight into the standard H3 sampling chain (guider/sampler/sigmas). Thelatentis the AV NestedTensor, so the Temporal Chunk Sampler or Split AV Latent can pick it up directly.
A few honest limits, straight from the README, so you don't get surprised mid-render: the native Ref2V interface allows at most 9 reference images, 3 reference videos, and 3 reference audios, and first/last frames count toward the 9-picture budget in Ref2V mode (they become ordinary references - there's no I2V hard-anchor semantics there). Reference video must decode to 24 fps with at least 5 frames after cropping, max 15 seconds per clip, with a pixel budget protecting you. In Prefer Pipe mode a timeline over 150 seconds exceeds the node's 3600-frame input cap and is rejected outright - that's a node limit, not a statement about H3's ceiling.
Install
One install, all 16 nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/Goldlionren/ComfyUI_JR_MiniMaxH3Node
<your-comfyui-python> -m pip install -r ComfyUI_JR_MiniMaxH3Node/requirements.txt
or ComfyUI Manager → search ComfyUI_JR_MiniMaxH3Node. Use ComfyUI's own Python, restart, hard-refresh the browser. imageio-ffmpeg is the only required pip dependency (media decoding), and you still need the H3 weights in place under their own license - which excludes US, EU, UK and Korea for the open weights.
Troubleshooting
- "Ref2V-only media with Image to Video" error - you forced Image-to-Video but connected reference media. Set
mode_overrideback to Auto. - Wrong canvas size. If the pipe media and your node
width/heightdisagree,dimension_sourcedecides. Check which one you're on before assuming the node is broken. - Long timelines rejected. Over 150s in Prefer Pipe mode hits the frame cap. Shorten the timeline or go node-mode with a shorter
length.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| vae | VAE | — | |
| pipe | JR_H3_DIRECTOR_PIPE | — | |
| mode_override | COMBO | Auto | 3 options: Auto, Image to Video, Reference to Video |
| dimension_source | COMBO | Prefer Pipe | 2 options: Prefer Pipe, Prefer Node |
| width | INT | 134432–16384 | — |
| height | INT | 76832–16384 | — |
| length | INT | 1245–3600 | — |
| ref_image_size | COMBO | match | 2 options: match, max |
| audio_vaeopt | VAE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| latent | LATENT | — |