Nodes/ComfyUI-VisionPromptAssistant/H3 Compact Director — Direction Controls
ComfyUI Node

H3 Compact Director — Direction Controls

Seven dropdowns that keep your H3 prompt on the rails

By elgalardi·Created about a month ago·Updated about 15 hours ago· 1
H3 Compact Director — Direction Controls
    • direction_context
    genre_1none
    genre_2none
    motion_style_1none
    motion_style_2none
    look_1none
    look_2none
    dialoguenone

    What this node actually is

    Despite the "Director" in the name, this node directs nothing. It has no LLM, no API key, no model - it is a lookup that turns seven dropdowns into a few lines of plain text. That text gets fed into the real director (H3CompactMultimodalEditDirector) through its direction_context input, and that node is where it changes anything.

    You reach for it when the compact director keeps guessing wrong. You write one sentence like "she walks through a rainy market at night" and the LLM invents its own genre, its own camera energy, its own palette. Two dropdowns here (say Horror and Noir) pin the tone without you having to relearn how to write prompts for MiniMax H3 - the 33B omni-modal video model whose prompt grammar this whole pack is built around.

    How it works

    The mechanism is refreshingly boring, which is a compliment. For each label - Genre, Motion style, Visual look, Dialogue - the node collects your picks, throws away anything set to none, de-duplicates while keeping your order, and joins the survivors with +. Then it writes one line per category and stops. Genre and motion and look get two slots each, dialogue gets one. So look_1: VHS / Analog Tape plus look_2: Bodycam becomes:

    Genre: Horror + Film Noir
    Motion style: Slow Motion
    Visual look: VHS / Analog Tape + Bodycam
    Dialogue: No dialogue
    

    The interesting part is on the receiving end. The director parses those lines, looks each selection up in its own tables, and pastes the full definition into its system prompt. SnorriCam / Body-Mounted Camera isn't treated as a magic phrase - it injects the paragraph saying the camera is rigidly mounted so the face holds still while the environment swings around it. Same for every entry in the look and motion lists (there are dozens: Super 8, MiniDV, Doorbell / Fixed Home Camera, Bullet Time Arc, Time Lapse, Speed Ramp, Seamless Loop Motion). Genre selections expand into a rule that the genre governs premise, performance, production design, lighting, pacing and sound through concrete choices, not just the label.

    Dialogue is the field with the real trap: none leaves dialogue alone, while No dialogue is an explicit instruction for silence - speakers shut up. The rest are languages (English, Spanish, Japanese and so on), which is how you get spoken lines in something other than English.

    Inputs and outputs

    Everything is a combo with a default of none, so a freshly dropped node is inert:

    • genre_1 / genre_2 - two slots so you can blend, e.g. Horror + Comedy.
    • motion_style_1 / motion_style_2 - pacing and camera language.
    • look_1 / look_2 - the visual format/lens/grade decision.
    • dialogue - silhouette or language, per the tooltip: "none leaves dialogue unchanged; No dialogue explicitly requests silence from speakers."

    The single output is direction_context (STRING). Wire it to the director's direction_context input. Don't wire it anywhere near a CLIP text encode - this is director instruction, not a prompt. Note that Auto is a real selection in the genre/motion/look lists (meaning "infer it"), which is a different thing from none (meaning "add nothing"). Selecting Auto puts text in the block; all-none produces an empty string.

    One genuinely fun trick, grounded in the director's code: in Elaborate and Continuous Elaborate modes you can leave the director's edit_request box empty and let the controls invent the concept. Set a genre, a motion style and a look, run it, and you get a fully written scene direction governed entirely by those selections.

    Install

    ComfyUI Manager → search Vision Prompt Assistant → install → restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/elgalardi/ComfyUI-VisionPromptAssistant
    # restart ComfyUI; update later with: git pull
    

    No pip dependencies and no model downloads - the pack's pyproject.toml declares none, and core ComfyUI supplies everything this node touches. It does need ComfyUI 0.30 or newer (the pack is written against the newer node API), so on an older build the whole pack fails to load, not just this node.

    Common issues

    The director acts like nothing is connected. Check your output: if all seven fields are none you get an empty string, and the director treats empty exactly like an unplugged cable. This is the number-one confusion with this node.

    Picks with no visible effect. Direction controls reinforce and constrain; they don't override an explicit instruction in edit_request. If your request says "slow, tranquil, one continuous take", setting Intense Dynamic Motion fights it rather than wins it.

    Warning text in the director's validation output. Things like explicit <Picture 1> absent from final prompt come from the director's source-tag checks, not from this node - your reference images weren't named in the request.

    Since this node makes no network calls and touches no GPU, it's also the safest thing in the pack to leave in a workflow you intend to share with someone else.

    Categorytext/minimax_h3

    Inputs (7)

    NameTypeDefaultDescription
    genre_1COMBOnone85 options: none, Auto, Cinematic Drama, Action, Thriller, Horror, +79
    genre_2COMBOnone85 options: none, Auto, Cinematic Drama, Action, Thriller, Horror, +79
    motion_style_1COMBOnone48 options: none, Auto, Normal Motion, Fast Motion, Slow Motion, Time Lapse, +42
    motion_style_2COMBOnone48 options: none, Auto, Normal Motion, Fast Motion, Slow Motion, Time Lapse, +42
    look_1COMBOnone69 options: none, Auto, Cinematic, Naturalistic, Raw / Unpolished, Amateur Home Video, +63
    look_2COMBOnone69 options: none, Auto, Cinematic, Naturalistic, Raw / Unpolished, Amateur Home Video, +63
    dialogueCOMBOnonenone leaves dialogue unchanged; No dialogue explicitly requests silence from speakers.

    Outputs (1)

    NameTypeDescription
    direction_contextSTRING