MiniMax H3 Media Manifest Validator
Sanity-check your reference media before it poisons the prompt
- normalized_manifest
- valid
- validation_report
- reference_context
Ref2VA is where H3 earns its keep: you hand it pictures, videos, and audio tracks, and it keeps the identities, voice timbres, and props consistent through a scene. But all of that flows through a structured JSON manifest - the media_manifest - and a malformed manifest is a great way to get a prompt where <Picture 3> is referenced but never defined, or a subject that's not bound to any media at all. The MiniMax H3 Media Manifest Validator is the early-warning node for exactly that: it takes your manifest JSON, validates and normalizes it, and tells you what's broken before the LLM ever sees it.
How it works
Drop your manifest JSON into the single required input, media_manifest (default {"items":[]} - the empty, valid baseline). The node parses it with the same media-project engine the enhancer uses, which means it understands both the newer schema-v2 project format (logical assets, subjects, environments, generations, physical bindings) and the older list-of-items format. It reports errors, warnings, and item counts, and - the part that earns its keep - it produces a canonical, normalized version of your manifest.
Why does normalization matter? Because the manifest is what the LLM turns into the reference context that lands inside the prompt. If your JSON has equivalent-but-differently-shaped entries, the writer can get confused about which <Picture N> is which. The validator flattens that so the enhancer and the model both see the same canonical structure. The reference_context output is also handy: it's the plain-text summary of the manifest (roles, subjects, media), ready to feed straight into a reference_context input elsewhere if you'd rather not pipe raw JSON.
Outputs
normalized_manifest- the canonical JSON, ready to feed into an enhancer'smedia_manifestinput.valid- boolean, the gate.validation_report- JSON witherrors,warnings, andcounts, displayed in the UI since this is an output node.reference_context- the compiled plain-language notes describing the manifest's media, subjects, and roles.
Install
Same pack, same drill:
cd ComfyUI/custom_nodes
git clone https://github.com/hyukudan/ComfyUI-MiniMax-H3-Prompt-Enhancer.git
Restart ComfyUI. Pure JSON validation - no model, no API, no dependencies, works offline.
Where it fits
The clean pattern is validator → enhancer: validate and normalize the manifest first, then feed normalized_manifest into the enhancer's media_manifest input alongside your basic_prompt. If you're authoring manifests by hand (or generating them from the Prompt Studio's Media area), running this node once before the first render catches the class of errors that otherwise surface as mysterious prompt failures - a dangling reference, a subject with no bound asset, an activation conflict between generations. The pack's own rule of thumb: the manifest is metadata, not media transport - it describes your pictures and audio so the writer can bind them; the actual files still connect directly to the H3 generation node's media inputs. This node just makes sure the description is coherent before you commit a render to it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| media_manifest | STRING | {"items":[]} | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| normalized_manifest | STRING | — |
| valid | BOOLEAN | — |
| validation_report | STRING | — |
| reference_context | STRING | — |