CineStack H3 Director Planner Conditioning
Same Conditioning, Plus One String That Tells You What It Decided
- clip
- vae
- audio_vae
- first_frame
- last_frame
- reference_image_0
- reference_image_1
- reference_image_2
- reference_image_3
- reference_image_4
- reference_image_5
- reference_image_6
- reference_image_7
- reference_image_8
- positive
- latent
- task_mode
There are two conditioning nodes in this pack and they differ by one output. Director Conditioning gives you positive and latent. Director Planner Conditioning gives you positive, latent, and a task_mode STRING. That's the entire delta.
Which raises the obvious question: why does it exist?
The one thing it adds
task_mode is a plain, human-readable report of the task the node decided to run - something like t2v - … (MiniMax H3), or an r2v line that also mentions how many reference images and reference videos it counted. The underlying conditioning call returns that hint; the plain Conditioning node throws it away, and this one surfaces it as a third output.
It's useful in exactly two situations. First, when you're debugging: you connect a reference image and aren't sure whether you landed on the reference path or the image-to-video path, and you'd rather read a string than infer it from the result. Second - the reason it's called "Planner" - when you're building graphs that branch on task type. A STRING output can drive a switch, a display node, a note, or a prompt-rewriting branch, so downstream nodes can behave differently for t2v vs r2v without you hand-wiring two graphs.
If neither of those is you, use the plain Conditioning node and save yourself a wire.
Inputs and outputs
The input schema is copied verbatim from Director Conditioning - clip, vae, prompt, width, height, length required; audio_vae, first_frame, last_frame, reference_image_0 … reference_image_8 and ref_image_size optional. Defaults are the same 864×480 / 124 frames, and the same 17-frame stepping on length because H3's grid is 17k+5. Reference images map to <Picture 1> through <Picture 9> in your prompt, left at native aspect until ref_image_size (match or max) decides what to encode.
Outputs: positive goes to your sampler's positive input, latent is the empty AV latent it starts from, and task_mode goes wherever you want a string. Nothing samples here.
Install
Same pack, same procedure - Git install, since 0.6.11 isn't on the Comfy Registry:
cd ComfyUI/custom_nodes
git clone https://github.com/guomenghao/ComfyUI-CineStack-H3.git
python -m pip install -r ComfyUI-CineStack-H3/requirements.txt
Restart ComfyUI, then find it under CineStack/H3. As with the rest of the pack you need the H3 CLIP (type minimax in CLIPLoader), the video VAE, and the audio VAE if you're doing anything reference-shaped. The pack ships no model weights.
Notes from using it
task_mode is a description, not an enum. It contains spaces, em-dashes and a parenthetical, and it changes wording depending on the task and the reference count. If you plan to branch on it, match with a "contains" check on the leading token rather than an equality test, or you'll be back here wondering why your r2v branch never fires.
And the same failure the plain node has: connect reference media and forget audio_vae, and the node raises an explicit error about the reference conditioning path needing an audio VAE. Not subtle, at least.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| vae | VAE | — | |
| prompt | STRING | — | |
| width | INT | 86432–8192 | — |
| height | INT | 48032–8192 | — |
| length | INT | 1245–3600 | — |
| audio_vaeopt | VAE | Required for r2v / v2v / rv2v / reference video+audio. | |
| first_frameopt | IMAGE | Optional first keyframe (i2v / fl2v). | |
| last_frameopt | IMAGE | Optional last keyframe (fl2v). | |
| reference_image_0opt | IMAGE | Reference image for <Picture 1> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time. | |
| reference_image_1opt | IMAGE | Reference image for <Picture 2> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time. | |
| reference_image_2opt | IMAGE | Reference image for <Picture 3> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time. | |
| reference_image_3opt | IMAGE | Reference image for <Picture 4> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time. | |
| reference_image_4opt | IMAGE | Reference image for <Picture 5> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time. | |
| reference_image_5opt | IMAGE | Reference image for <Picture 6> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time. | |
| reference_image_6opt | IMAGE | Reference image for <Picture 7> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time. | |
| reference_image_7opt | IMAGE | Reference image for <Picture 8> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time. | |
| reference_image_8opt | IMAGE | Reference image for <Picture 9> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time. | |
| ref_image_sizeopt | COMBO | match | Reference image sizing for MiniMaxH3ReferenceToVideo. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| latent | LATENT | — |
| task_mode | STRING | — |