MiniMax H3 Promptor
The Name Is a Lie — This Node Calls No MiniMax API
- prompt
You read "MiniMax H3 Promptor" and picture another API wrapper that needs a MiniMax key and phones home with your prompt. Nope. This node never touches MiniMax, holds no MiniMax key, and can't generate a single frame of video. What it does is the unglamorous job that actually separates good H3 output from "stiff AI wiggles": it turns your one-line idea into the long, rigidly-formatted cinematic prompt that MiniMax H3 - local weights or the hosted Hailuo API - genuinely understands.
MiniMax H3 is the 33B omni-modal video model that went open-weight in August 2026 with native synced audio, and its prompt format is a beast: structured subject definitions, timeline beats, <Picture N> / <Audio N> tag binding, even a <d>[Language] "..."</d> dialogue syntax for voices. Writing that by hand is a slog, and a plain sentence wastes it. This node is the LLM-powered screenwriter that does the formatting for you - the same "have a second language model write the instruction" pattern that's now standard in ComfyUI video workflows.
How the two-stage pipeline works
Under the hood it's a chat LLM being asked to do a very specific job twice, plus some deterministic assembly. First call: the model acts as a "director," reading your description and any vision context and producing a blueprint - world vibe, color/lighting, character dynamics, and a timed shot plan (roughly 4 beats for a 15s clip). Second call: it turns that blueprint into an actual cinematic storyboard with timed shots and dialogue. Then the node's Python takes over and force-assembles the mandated H3 structure - subject definitions, retention_analysis, alignment instructions - turning the prose into a spec.
It also routes your mode for you. Leave task_type on Auto and the node counts the <Picture N> / <Video N> / <Audio N> tags in the vision context and picks the right format: no media = T2V, one image = I2V, image + audio = I2VA, two images = FL2VA, three-plus = Ref2VA, and so on. Force a specific one from the dropdown if Auto guesses wrong (L2VA, the "end on this frame" mode, is the classic manual override).
The inputs that matter
You only really set three of these:
- description - your creative brief. This is the whole game; the better it is, the better the LLM's screenplay.
- duration - 4–15 seconds (default 5). That's an H3 hard limit, and the node paces the shot list to fill it.
- task_type - leave on Auto unless you know better.
The rest are mostly leave-alone. vision_context (optional STRING) is where you wire in the output of the sibling H3_Vision_Analyzer so the prompt actually describes your reference images instead of hallucinating them. The reference_* counters default to Auto and read their counts off that same context - touch them only if you feed media straight to H3 without the analyzer. provider picks the LLM that does the writing (OpenAI, Anthropic, Gemini, or local Ollama/LM Studio), and output_language picks English or Chinese for the final prompt.
The output is a single prompt (STRING) - wire it into whatever node actually runs MiniMax H3 in your graph (the MiniMax loader / AIO node), beside your real media inputs.
Installing it
ComfyUI Manager, search "MiniMax H3", or:
cd ComfyUI/custom_nodes
git clone https://github.com/1038lab/ComfyUI-MiniMax-H3-Promptor
pip install -r requirements.txt # just `requests`, this is a lightweight one
Restart, then open the Gear icon → MiniMax H3 settings and add a provider. There's no model download - the "model" here is whatever LLM you point at: ollama run llama3.2 or LM Studio on port 1234 work out of the box, and a cloud key goes in the settings panel. It's from 1038lab (ComfyUI-QwenVL, ComfyUI-NodeAlign), a known author - but it's an LLM node that holds your keys, so read it before trusting it.
Where people get burned
- Empty provider dropdown. The list is generated from your config at UI load. Add/enable a provider in Settings and refresh the browser (F5) - no Python restart needed.
- Local models running out of context. The two-stage pipeline is token-hungry; the README's advice is real: run
llama-serverwith-c 8192and-ngl 99, and dropmax_tokensfrom 4096 to 1024–2048 for speed. - Expecting it to generate video. It won't. If nothing comes out of your H3 node, check the wiring to the actual generator, not this node.
- The license. If you're in the US, EU, UK, or Korea, you're not licensed to run the local H3 weights - the hosted Hailuo API is the legal path there, and this node works fine feeding either.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| task_type | COMBO | Auto | Forces the H3 prompt format (Text-to-Video, Image-to-Video, etc.) |
| description | STRING | Your main creative description of the scene. | |
| duration | FLOAT | 5.04–15 | Vaild duration for Minimax H3 is 4-15 seconds. |
| vision_contextopt | STRING | Connect the output from H3_Vision_Analyzer here. | |
| reference_imagesopt | COMBO | Auto | Auto uses Vision Analyzer count. Otherwise manually set how many images are connected to Minimax (max 9). |
| reference_videosopt | COMBO | Auto | Auto uses Vision Analyzer count. Otherwise manually set how many videos are connected (max 3). |
| reference_audiosopt | COMBO | Auto | Auto uses Vision Analyzer count. Otherwise manually set how many audio files are connected (max 3). |
| output_languageopt | COMBO | English | The language the Minimax H3 system will receive the prompt in. |
| provideropt | COMBO | openai (gpt-5) | LLM provider to use for text generation. |
| temperatureopt | FLOAT | 0.700–1 | — |
| max_tokensopt | INT | 4096256–8192 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |