MiniMax-H3 Prompt Check
Check your MiniMax-H3 prompt before it costs you a render
- options
- references
- prompt
- integrated_multimodal_description
- subject_definitions
- summary
- retention_analysis
- detailed_description
- overall_soundscape
- non_diegetic_music
- findings
MiniMax-H3 is a fussy eater when it comes to text. Its prompt input isn't a sentence - it's a contract: numbered [Shot N] markers with At MM:SS.mmm cut times, <d>[Language]…</d> dialogue tags, an alignment line when reference frames are involved, and for Ref2VA a whole bookkeeping of subjects, pictures, videos and audio. Break any of it and the model quietly ignores it, and you don't find out until the render's done.
Every writer in this pack re-checks its own answer before handing it over. MiniMax-H3 Prompt Check is that check, with nothing attached - it reads a prompt that came from anywhere and tells you whether H3 will read it the way you meant.
No model is loaded. Nothing is generated. The whole run is regexes over text already in memory, and it costs a few milliseconds. It's the same checks module the pack's writers run their fresh answers through, exposed as a node so a prompt written by another pack, typed by hand, loaded from a file, or found online gets exactly the reading a rewrite from this pack gets. And it splits the prose into its fields on the way out, which is why it has all those string outputs.
The inputs that matter
prompt- the text to read. It's passed through untouched on the first output, so you can drop this node into the middle of a graph without changing what reaches the generator.task- which task the prompt was written for. This decides which fields are expected, how many references of each kind it may cite, and whether an alignment line belongs at the top. Getting it wrong makes the reading wrong rather than absent: a Ref2VA prompt read as T2VA is reported as missing three fields it never needed.duration- how long the target clip is. Cut times are read against it, and a shot that starts after the end is the one mistake a hand-written shot list produces that nothing else catches. The range runs to 600 s because prompts collected from elsewhere are often longer than this pack's own writers allow.
The two optional inputs are references (an autogrow socket that only counts kinds - nothing is decoded, no captioner runs) and options, from which only self_check is read: how much gets announced on screen rather than what gets looked at.
The outputs
prompt first (the pass-through), then the seven fields any H3 task can fill - integrated_multimodal_description, subject_definitions, summary, retention_analysis, detailed_description, overall_soundscape, non_diegetic_music - and findings last. That last one is the same block the node writes under itself: a heading with counts, then one line each, ! for a warning, - for a note, empty when there's nothing to say. Wire findings into a text viewer once, and you've got a permanent proofreader for any prompt that flows through your graph.
One reading you should expect
Most hand-written H3 prompts are prose: no field labels, no shot list, no tags. Read as T2VA, such a text comes back flagged for missing fields and a missing [Shot 1] - and that's a true reading, not a bug. A prose paragraph is an instruction to a rewriter, not a finished H3 answer. Run it through one of the pack's writer nodes first, then check what comes back. That's the workflow this node exists to close the loop on.
Install and gotchas
It's a member of the pytraveler MiniMax-H3 Prompt Rewriter pack, so you get it with the whole family: ComfyUI Manager, searching MiniMax-H3-Prompt-Rewriter-ComfyUI, or
cd ComfyUI/custom_nodes
git clone https://github.com/pytraveler/MiniMax-H3-Prompt-Rewriter-ComfyUI
then restart, and install the requirements into ComfyUI's Python if you didn't use Manager. Fair warning: requirements.txt lists transformers, peft, accelerate and bitsandbytes - needed for the rewriter LoRA nodes, and totally unused by this one. Prompt Check is pure Python; it needs no GPU, no VRAM, and no model download. That's the deal with it: the cheapest node in the pack, and the one that saves you the most wasted renders. On a genuinely old ComfyUI the pack guards its registration and this node may be the one that quietly doesn't appear while the rest loads - update ComfyUI first.
Oh, and it has Save the last prompt, so a prompt that arrived from elsewhere and read clean can be filed into the pack's prompt library for next time.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | The prompt to read. Anything that produces MiniMax-H3 prose can feed this: another node's output, a loaded text file, a rewrite from this pack, or something typed here. It is passed through untouched. This node never edits what it is given -- it says what it found and hands the text on, so it can sit in the middle of a graph without changing what reaches the generator. | |
| task | COMBO | T2VA | Which task the prompt was written for. It decides which fields the answer is supposed to have, how many references of each kind it may cite, and whether an alignment line is expected at the top. Getting this wrong makes the reading wrong rather than absent: a Ref2VA prompt read as T2VA is reported as missing three fields it never needed. |
| duration | FLOAT | 10.00.1–600 | How long the target video is, in seconds. Cut times are read against it: a shot that starts after the end is the one mistake in a hand-written shot list that nothing else catches. Set it to what the prompt was written for, which is not necessarily what this pack's own writers allow -- prompts collected from elsewhere are often longer. |
| optionsopt | H3_REWRITER_OPTIONS | — | |
| referencesopt | COMFY_AUTOGROW_V3 | The references this prompt is meant to describe, if you have them to hand. Only their kind and number are read -- nothing is decoded and no captioner runs. With them connected, the reading also covers what the text cites against what is actually here: a picture that is connected but never mentioned, or a clip mentioned that never arrived. With nothing connected those two rules are skipped and the rest still apply. |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| integrated_multimodal_description | STRING | — |
| subject_definitions | STRING | — |
| summary | STRING | — |
| retention_analysis | STRING | — |
| detailed_description | STRING | — |
| overall_soundscape | STRING | — |
| non_diegetic_music | STRING | — |
| findings | STRING | Everything the rules found, as the same block the node writes under itself: a heading with the counts, then one line each, '!' for a warning and '-' for a note. Empty when there is nothing to say. |