Nodes/ComfyUI-CineStack-H3/CineStack H3 Director Planner Conditioning
ComfyUI Node

CineStack H3 Director Planner Conditioning

Same Conditioning, Plus One String That Tells You What It Decided

By guomenghao·Created 6 days ago·Updated 2 days ago· 0
CineStack H3 Director Planner Conditioning
  • 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
◄prompt►
◄width864►
◄height480►
◄length124►
◄ref_image_sizematch►

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.

CategoryCineStack/H3

Inputs (19)

NameTypeDefaultDescription
clipCLIP—
vaeVAE—
promptSTRING—
widthINT86432–8192—
heightINT48032–8192—
lengthINT1245–3600—
audio_vaeoptVAERequired for r2v / v2v / rv2v / reference video+audio.
first_frameoptIMAGEOptional first keyframe (i2v / fl2v).
last_frameoptIMAGEOptional last keyframe (fl2v).
reference_image_0optIMAGEReference image for <Picture 1> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time.
reference_image_1optIMAGEReference image for <Picture 2> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time.
reference_image_2optIMAGEReference image for <Picture 3> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time.
reference_image_3optIMAGEReference image for <Picture 4> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time.
reference_image_4optIMAGEReference image for <Picture 5> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time.
reference_image_5optIMAGEReference image for <Picture 6> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time.
reference_image_6optIMAGEReference image for <Picture 7> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time.
reference_image_7optIMAGEReference image for <Picture 8> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time.
reference_image_8optIMAGEReference image for <Picture 9> in prompt (r2v). Native aspect; H3 ref_image_size applies at encode time.
ref_image_sizeoptCOMBOmatchReference image sizing for MiniMaxH3ReferenceToVideo.

Outputs (3)

NameTypeDescription
positiveCONDITIONING—
latentLATENT—
task_modeSTRING—