Nodes/ComfyUI-MiniMaxH3-Studio/H3 Context Compiler
ComfyUI Node

H3 Context Compiler

Where your plan finally becomes prompt text

By rookiestar28·Created 2 months ago·Updated a day ago· 79
H3 Context Compiler
  • plan
  • prompt
  • report
  • prompt_document

This is the node that ends the talking and produces the thing you actually feed a video model. If you've been following the pack's prompt pipeline - Request → Plan → Compiler → Validator → Preview - the Compiler is step three, and it's the one that matters if you want to know why your H3 prompt looks the way it does.

What it does

It takes a validated plan and renders it into prompt text following a fixed profile. Not a template in the mad-libs sense: the renderer walks the typed plan (subjects, actions, scenes, cameras, audio, timeline segments, exact text constraints) and emits guide-shaped sections in a fixed order. Deterministic means exactly that - same plan in, same bytes out. No sampling, no model call, no cleanup pass.

H3's prompts aren't 77-token CLIP soup; they're structured instructions read by a language model, and the 2026 habit that transferred is block-structured prompt text rather than token strings (prompt-engineering.md). The Compiler is what makes that structure mechanical instead of vibes.

The two profiles

The plan declares which profile it's rendering into, and the field sets differ:

h3_base - three fields: integrated_multimodal_description (the shot prose, block by block), overall_soundscape, and non_diegetic_music. This covers T2VA, I2VA, FL2VA and L2VA - basically everything that isn't a reference set.

h3_full_reference - the reference-set shape, with subject_definitions and retention_analysis added so identity and "keep this, change that" survive into the prompt, on top of summary, detailed_description and the same two audio fields.

One detail worth stealing for your mental model: overall_soundscape: N/A is only emitted when the plan carries explicit authority that the video is meant to be completely silent. An author who simply never mentioned sound gets an unspecified soundscape, visibly unspecified - because a machine writing "N/A" because it saw no data would be telling the model "silent" on the strength of your silence.

Inputs and outputs

One required input: plan, typed H3_CONTEXT_PLAN, which comes from H3 Context Plan (or from H3 Full-Reference Plan for the reference route). That's it. No widgets, no settings, nothing to tune. Which is the point - if you want to change the prompt, you change the plan upstream and the render changes with it.

Three outputs:

  • prompt (H3_PROMPT_STRING) - the raw text. This is what you hand to H3 Native MiniMax H3 Adapter to get wiring instructions, or paste straight into an H3 conditioning node.
  • report (H3_CONTEXT_REPORT) - render and provenance data: which profile rendered, what went in, what the plan claimed. Feed this to H3 Context Validator, H3 Context Preview, or H3 Context Audit Override.
  • prompt_document - the structured section-by-section form, for validation and fidelity checks without re-parsing your own text.

Install

The pack isn't in the Comfy Registry yet, so it's a clone:

cd ComfyUI/custom_nodes
git clone https://github.com/rookiestar28/ComfyUI-MiniMaxH3-Studio.git
# restart ComfyUI

No pip step: the package ships with an empty dependency list and a prebuilt browser extension. Python 3.10+. You need official MiniMax H3 weights installed to generate, but you can build, compile and read a prompt with zero weights on disk - useful when you're on a laptop and just want to see what the pipeline produces.

There's also examples/minimal_core_pipeline.py in the repo: a pure-Python script that runs this whole core pipeline with neither ComfyUI nor a provider involved. If you want to see the Compiler's output without clicking anything, that file is the fastest route.

When it goes wrong

The Compiler refuses rather than repairs, which is unusual enough to trip people up. Feed it a plan whose intent graph has blocking diagnostics and you get a render error, not a best-effort prompt with a warning attached. Same if the plan's graph duration doesn't match the normalized request duration, or if there are no timeline segments to describe - the error text names the mismatch.

So if a queue fails here, don't go hunting for a Compiler setting. There isn't one. Look upstream at H3 Context Plan and the request it normalized. The Compiler has no opinions of its own and nothing to configure; it's the place where a problem in your plan stops being abstract and becomes a stack trace.

Categoryh3_context/compiler

Inputs (1)

NameTypeDefaultDescription
planH3_CONTEXT_PLANValidated typed plan from H3 Context Plan.

Outputs (3)

NameTypeDescription
promptH3_PROMPT_STRING—
reportH3_CONTEXT_REPORT—
prompt_documentH3_PROMPT_DOCUMENT—