Nodes/MiniMax H3 Prompt Enhancer/MiniMax H3 Prompt Validator
ComfyUI Node

MiniMax H3 Prompt Validator

A bouncer for H3 prompts that doesn't need a brain

By hyukudan·Created about a month ago·Updated 16 days ago· 15
MiniMax H3 Prompt Validator
    • prompt
    • valid
    • validation_report
    prompt
    modeauto
    duration_seconds5.00
    source_prompt
    reference_context
    ambience_foley_policyauto
    background_score_policyfollow_prompt
    voice_performanceaudible
    aspect_ratioauto
    media_manifest
    multishot_shot_count0
    frame_count0
    multishot_identity_lock
    multishot_voice_lock
    multishot_setting_lock
    show_advanced_controlsfalse
    creative_treatment_json
    shot_plan_json
    cinematography_json
    creative_latitudeenhanced_production
    delivery_targetlocal
    instrumental_description
    instrumental_stylenone
    acoustic_spacenone
    dialogue_coverageoff
    dialogue_languageauto
    editing_intentnone
    lora_trigger_words

    H3's prompt format is fiddly enough that you will, at some point, hand it a prompt that looks right and comes back with audio desync or dialogue the model invented. The MiniMax H3 Prompt Validator is the node that catches those before they cost you a render: it checks any prompt against H3's documented audiovisual structure - strictly, deterministically, and with no LLM in the loop. It's the bouncer at the club door. It checks your ID; it does not vouch for your personality.

    What it checks

    The validator runs the prompt through the same contract parser the enhancer nodes use after enhancement. For the mode you select, it verifies the section blocks are present and correctly ordered - the 6-block Ref2VA anatomy (subject_definitions, summary, retention_analysis, detailed_description, overall_soundscape, non_diegetic_music) or the 3-block T2VA/I2VA/FL2VA/L2VA structure. It checks that quoted dialogue lives inside <d>[Language] ...</d> tags, that the language tag matches, that references like <Picture 1> or <Audio 1> are declared before use, that speaker IDs don't dangle, and that the prompt is free of leftover authoring shorthand.

    That last one matters more than it sounds. The pack lets you type delivery marks like 😠 or 🤫 next to a line as shorthand, and it resolves them into prose. A stray bracket that survives to the final prompt used to surface only as mysterious "invented dialogue" - the validator now names the leaked mark directly instead of blaming the wrong cause. It also refuses a prompt containing the emoji palette, which is a neat guarantee that nothing raw reached the model.

    The honest caveat is printed in the node's own description: structural validity does not guarantee generation quality. A perfectly formatted prompt can still be boring, or wrong, or logline-nonsense. This node checks grammar, not taste. What it gives you is the confidence that when a render is bad, the prompt format wasn't the reason.

    Inputs that matter

    • prompt - the prompt to check (from your own pen or from an enhancer's enhanced_prompt output).
    • mode - the contract to validate against; auto infers it.
    • duration_seconds - used to sanity-check shot timestamps and frame-count math against the 17×n+5 grid.
    • source_prompt - your original request. This is what makes verbatim-dialogue checking possible: the validator can flag dialogue the LLM invented that wasn't in your source, which is the pack's defense against the classic subject-drift failure of enhancers.

    The rest of the inputs mirror the enhancer's policy widgets (reference context, media manifest, creative latitude, multishot locks, and so on) - set the same values you used to generate the prompt, or the validator will judge it against the wrong contract.

    Outputs

    prompt (pass-through, so you can daisy-chain it), valid (boolean), and validation_report - a JSON rundown of errors and warnings. It's an output node too, so the report shows up in the UI even mid-workflow.

    Install

    You know the drill by now - it's in the same pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/hyukudan/ComfyUI-MiniMax-H3-Prompt-Enhancer.git
    

    Restart ComfyUI. Zero dependencies, zero API calls, works offline.

    Where it fits

    The natural slot is between an enhancer and the H3 sampler: enhancer enhanced_prompt → validator → sampler. If you built your own pipeline with the Guide Builder, the validator is your quality gate - feed it the LLM's reply and it tells you whether the model actually followed the spec. The author's framing is that validation plus the automatic repair loop (in the enhancer nodes) is what makes prompts "production-grade"; the standalone validator is the same gate for people running their own writer.

    CategoryMiniMax H3/Prompting

    Inputs (28)

    NameTypeDefaultDescription
    promptSTRING
    modeCOMBOauto7 options: auto, t2va, i2va, fl2va, l2va, ref2va, +1
    duration_secondsFLOAT5.004–1504-150 seconds. H3 was trained around 5-15 seconds; longer generations are experimental and require much more memory.
    source_promptSTRING
    reference_contextSTRINGOptional plain-language notes describing referenced pictures, videos, audio, identities, or roles. Usually needed only for Ref2VA.
    ambience_foley_policyoptCOMBOautoScene sounds other than speech or music: ambience plus physical action sounds such as footsteps, clothing, doors, impacts, and engines.
    background_score_policyoptCOMBOfollow_prompt3 options: follow_prompt, add_instrumental, off
    voice_performanceoptCOMBOaudible3 options: audible, silent_mouth_acting_experimental, none
    aspect_ratiooptCOMBOauto7 options: auto, 21:9, 16:9, 4:3, 1:1, 3:4, +1
    media_manifestoptSTRINGAdvanced structured JSON for connected reference media.
    multishot_shot_countoptINT00–64
    frame_countoptINT00–3600Leave 0 to use Duration. A nonzero exact count must follow 17 × n + 5. Above about 362 frames (~15 s) is experimental.
    multishot_identity_lockoptSTRING
    multishot_voice_lockoptSTRING
    multishot_setting_lockoptSTRING
    show_advanced_controlsoptBOOLEANfalseShow structured reference metadata and exact frame controls
    creative_treatment_jsonoptSTRING
    shot_plan_jsonoptSTRING
    cinematography_jsonoptSTRING
    creative_latitudeoptCOMBOenhanced_productionHow far beyond your text the writer may go. verbatim_source: none - keep your wording, facts and terseness as written; only reformat into H3 sections, apply the selected style and translate delivery marks. conservative_grounded: only the minimum structure the H3 mode requires. enhanced_production: resolve unspecified production decisions - composition, blocking, lighting, micro-performance. invented_production: treat your text as a premise and build the world around it. Quoted dialogue, reference identities, duration, shot count, ending and gore level stay locked at every level.
    delivery_targetoptCOMBOlocalAPI v2 treats the 7000-character text-block limit as a hard error; local mode reports compatibility only.
    instrumental_descriptionoptSTRING
    instrumental_styleoptCOMBOnone26 options: none, cinematic_orchestral, hybrid_orchestral_electronic, action_cinematic, mystery_investigation, suspense_build, +20
    acoustic_spaceoptCOMBOnone7 options: none, small_reflective_interior, large_reverberant_interior, damped_interior, open_exterior, urban_exterior, +1
    dialogue_coverageoptCOMBOoff2 options: off, on
    dialogue_languageoptCOMBOauto18 options: auto, Spanish, English, French, German, Italian, +12
    editing_intentoptCOMBOnone7 options: none, character_swap, wardrobe_transfer, voice_dialogue_swap, environment_background, motion_transfer, +1
    lora_trigger_wordsoptSTRINGTrigger tokens for the LoRAs loaded elsewhere in the graph. Appended verbatim to the end of the description after enhancement and validation, so they never pass through the LLM and survive character for character.

    Outputs (3)

    NameTypeDescription
    promptSTRING
    validBOOLEAN
    validation_reportSTRING