MiniMax H3 Prompt Format ⚡
H3 won't give you a good clip if your prompt isn't in its exact envelope
- prompt
MiniMax H3 doesn't take a plain sentence and run with it. It expects its prompt as a structured envelope - a multimodal description, a soundscape, a music line, plus a keyframe instruction line - and if you hand it a free-form paragraph it underdelivers (or ignores half of it). This node is the formatter that wraps the fields you already wrote into that exact envelope, so you get the structure the model was trained on without memorizing the template yourself.
The three core fields
H3's prompt is really three streams, and this node takes them as three multiline boxes:
integrated_multimodal_description- the timeline. This is the shot-by-shot description of what happens on screen, and the tooltip notes[Shot 1]is added for you if you omit it. It's the only field that can't be empty - the node raises rather than format a blank timeline.overall_soundscape- the ambient, physical, non-verbal sound of the scene. The tooltip's advice: useN/Aonly for deliberate silence.non_diegetic_music- the score the characters can't hear.N/Aif there's no music.
The two mode-ish inputs
mode- one oft2va(text to video+audio),i2va(from a first frame),fl2va(between a first and last frame), orl2va(landing on a last frame). This shapes the envelope and the keyframe line.length- a frame preset:124 (~5.17s),243 (~10.13s),362 (~15.08s), or481 (~20.04s). It sets the duration the envelope is written against.
The source is doing real work here, not just string-joining: it validates the description against the schema for the chosen duration, warns on problems it can find, and builds the prompt with the correct keyframe instruction line and the last-shot index parsed out of your description. So the output is a single prompt STRING that's ready for CLIPTextEncode (or the writer/prompt side of your H3 sampler chain).
Where this fits
This is the "you already know what you want" sibling of MiniMax H3 Prompt Writer, which generates the three fields from a raw idea using a local text encoder. If you have an idea but not the fields, use the Writer; if you have the fields - from your own writing, from a captioner, anywhere - run them through Format and you've matched the model's input contract. H3 is picky enough that this is a real quality lever, not paperwork.
Installing it
Part of the ComfyUI-GGUF-Loader pack under 🤖 CCTech/MiniMax H3. ComfyUI Manager → search "ComfyUI-GGUF-Loader" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ChrisColeTech/ComfyUI-GGUF-Loader
cd ComfyUI-GGUF-Loader
pip install -r requirements.txt
Common issues
The easy failure is leaving integrated_multimodal_description empty - you get a ValueError, which is the node refusing to ship a broken prompt, and it's the correct behavior. Beyond that, expect warnings (not errors) when the description doesn't quite fit the chosen duration's schema; read them, because a timeline that implies a shot cut after the "latest valid shot cut" for your length is a sign you should shorten the description or pick a longer preset. Keep mode and length consistent with what the rest of your workflow (and the image inputs, if any) actually does.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| integrated_multimodal_description | STRING | The timeline. [Shot 1] is added if you omit it. | |
| overall_soundscape | STRING | Ambient, physical, and non-verbal sound. N/A only for deliberate silence. | |
| non_diegetic_music | STRING | Score the characters cannot hear. N/A if none. | |
| mode | COMBO | t2va | 4 options: t2va, i2va, fl2va, l2va |
| length | COMBO | 243 (~10.13s) | 4 options: 124 (~5.17s), 243 (~10.13s), 362 (~15.08s), 481 (~20.04s) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |