Nodes/MiniMax H3 Prompt Enhancer/MiniMax H3 Shot Selector
ComfyUI Node

MiniMax H3 Shot Selector

Pick one shot out of a multishot manifest, without the guesswork

By hyukudan·Created about a month ago·Updated 16 days ago· 15
MiniMax H3 Shot Selector
    • shot_prompt
    • timeline_body
    • shot_description
    • shot_id
    • shot_count
    • autonomous
    enhancement_manifest_or_package
    shot_index1

    When the enhancer runs in chained_multishot mode, it doesn't return one prompt - it returns a package full of them, one per shot, each marked as autonomous or not. If your workflow renders one shot at a time, you need a way to reach into that package and pull out a single prompt. That's the entire job of the MiniMax H3 Shot Selector: give it the enhancement manifest (or its embedded shotsPackage) and an index, and it hands you that shot's complete prompt plus its metadata.

    How it works

    The input enhancement_manifest_or_package is a JSON string - either the full enhancement_manifest from an enhancer node's output, or just the shotsPackage object pasted on its own. The node parses it, finds the shots array (it accepts both schema-v1 and schema-v2 packages), and returns the shot at shot_index (1-based, so 1 is the first shot). The one-indexing trips people up once - shot_index 1 means shot 1, not "zero."

    Here's the part worth understanding before you rely on it: shot_prompt is only emitted when the selected shot is marked autonomous. The tooltip spells out the contract. A shot flagged autonomous carries a complete, self-contained H3 prompt in its autonomousPrompt field - that's the one you can render on its own. A shot that isn't autonomous doesn't have a usable standalone prompt, so shot_prompt comes back empty and the node tells you why via the status text in the UI (the autonomy reason). If you're seeing an empty shot_prompt, that's not a bug - the shot simply isn't marked complete, and the fix is upstream in how the multishot was planned.

    The outputs

    • shot_prompt - the autonomous prompt for the selected shot, or empty if the shot isn't autonomous. This is the string that feeds your H3 sampler.
    • timeline_body - the shot's timeline text, kept available for inspection even when shot_prompt is empty. Useful for checking what the shot is supposed to do while you debug.
    • shot_description and shot_id - the human-readable description and stable ID, handy for labeling outputs per shot.
    • shot_count - how many shots were in the package, so you can drive a loop or check bounds.
    • autonomous - the boolean flag, so downstream logic can branch on whether it's renderable.

    Install

    Nothing special here - it's the same pack as every other node in this family:

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

    Restart ComfyUI. No model files, no API keys, no dependencies.

    Where it fits

    This node is the plumbing for "generate all the shots' prompts in one pass, then render them one by one." In the pack's own chained-multishot example workflow, the enhancer produces the package and the Shot Selector picks a shot to feed a render loop. Combine it with MiniMaxH3ChainedMultishotOutput - that node validates and formats the whole array as a --- script for samplers that take the full sequence, while the Shot Selector is for samplers that render one pass at a time. If you're doing anything fancy like iterating shots with per-shot output filenames, shot_id and shot_description are there so you never have to guess which render is which.

    CategoryMiniMax H3/Prompting

    Inputs (2)

    NameTypeDefaultDescription
    enhancement_manifest_or_packageSTRINGConnect enhancement_manifest or paste its shotsPackage object.
    shot_indexINT11–64

    Outputs (6)

    NameTypeDescription
    shot_promptSTRING
    timeline_bodySTRING
    shot_descriptionSTRING
    shot_idSTRING
    shot_countINT
    autonomousBOOLEAN