MiniMax H3 Prompt (Qwen)
MiniMax H3 is picky about prompts — let a local Qwen write them
- positive_prompt
- negative_prompt
MiniMax H3 wants a very specific prompt. Not "a cat chases a butterfly in a garden" - a timestamped, shot-by-shot document with integrated_multimodal_description, overall_soundscape and non_diegetic_music sections, dialogue wrapped in <d> tags and kept in whatever language you wrote it. Writing that by hand is miserable, and getting it slightly wrong means H3 quietly ignores your intent. This node hands your one-line idea to a local Qwen model and gets back the exact format H3 wants. No API, no key, nothing leaves your machine.
It's the flagship node of the ComfyUI-MiniMaxH3-QwenPrompt pack, and it's the one you'll reach for first. H3 - MiniMax's 33B omni-modal video model with native stereo audio - is genuinely good, but it's also the fussiest model in the open-weight video space about how you talk to it. That's the whole niche this pack fills: a prompt formatter, not a generator.
How it works
The pack embeds MiniMax's official H3 prompt-writing guide verbatim into the system prompt (lifted from the h3-prompt-writing skill in the MiniMaxAI/MiniMax-H3 repo). Your user_prompt gets wrapped with generation context - mode, duration, aspect ratio, style, whether to include audio - and the model is told to rewrite it into the official format, keeping all spoken dialogue and lyrics in the original language.
Under the hood it loads your GGUF through ComfyUI-llama-cpp_vlm, calls create_chat_completion, then splits the reply at the NEGATIVE_PROMPT: line. If the model forgets to emit one, the node falls back to a sensible default negative list rather than leaving you with an empty string.
The inputs that matter
Most of the fields are formatting context, and you only really touch a few:
- model - dropdown of GGUFs sitting in
models/LLM. Plain text prompting works with any Qwen GGUF; you don't need a vision model here. - mode -
T2VA(text-to-video),I2VA(first frame),FL2VA(first+last frame),L2VA(last frame),Ref2VA(full reference). Pick the one that matches how you'll actually generate; it changes the instruction H3 gets. - style / duration / aspect_ratio / include_audio - these shape the prompt's context.
durationis capped at 4–15 seconds because that's all H3 supports. - custom_system_prompt - optional override if you want to swap in your own guide entirely.
seed, temperature, top_p, top_k and max_tokens are your standard LLM sampling controls. Temperature 0.8 is a fine default; if you want the format obeyed more rigidly, drop it toward 0.5.
The two outputs are the point: positive_prompt feeds your MiniMax H3 generation node, and negative_prompt goes wherever that node expects negatives.
Installing it
Install the pack and its one hard dependency, then drop a model in:
cd ComfyUI/custom_nodes
git clone https://github.com/wangminxing2019/ComfyUI-MiniMaxH3-QwenPrompt.git
git clone https://github.com/JamePeng/ComfyUI-llama-cpp_vlm.git
Restart ComfyUI, then put a Qwen GGUF in ComfyUI/models/LLM (something like a Qwen3.5-9B-GGUF will do) and it appears in the dropdown. ComfyUI Manager also finds the pack if you search "MiniMax H3". The pack itself adds no pip dependencies - it relies on ComfyUI's bundled torch/PIL/numpy - but if your environment is missing llama-cpp-python, install it into the portable python_embeded before anything works.
Where people get burned
- Empty model dropdown - the node literally shows "no model found, check models/LLM". That's not a bug, it's the directory being empty.
- Skipping ComfyUI-llama-cpp_vlm - the pack imports it at runtime, not load time, so everything looks installed until you hit Queue and it throws a "cannot find ComfyUI-llama-cpp_vlm/nodes.py" error. Install it first.
- Model reload churn - the node reloads the LLM whenever your config changes (different model, different
n_ctx), which is a VRAM bump and a pause. It does clean up context afterward, but don't flipn_ctxbetween every run.
One context note: this node only writes prompts. If you're in the US, EU, UK or South Korea, running H3's weights is restricted by its community licence - the hosted Hailuo API is the licensed path there. The prompt side of the equation is yours.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | 1 options: (未找到模型,请检查 models/LLM 目录) | |
| mmproj | COMBO | None | 1 options: None |
| chat_handler | COMBO | Qwen3.5 | 20 options: None, LLaVA-1.5, LLaVA-1.6, Moondream2, nanoLLaVA, llama3-Vision-Alpha, +14 |
| n_ctx | INT | 81921024–327680 | 上下文长度限制 |
| user_prompt | STRING | — | |
| mode | COMBO | T2VA | T2VA=文生视频, I2VA=首帧图生视频, FL2VA=首尾帧生视频, L2VA=尾帧生视频, Ref2VA=全参考生视频 |
| style | COMBO | cinematic | 8 options: cinematic, live-action, 2D-animated, 3D CG, claymation, watercolor, +2 |
| duration | INT | 104–15 | 视频时长(秒),MiniMax H3 支持 4-15 秒 |
| aspect_ratio | COMBO | 16:9 | 3 options: 16:9, 9:16, 1:1 |
| include_audio | BOOLEAN | true | 是否在提示词中包含环境音和 BGM 描述 |
| seed | INT | 00–18446744073709550000 | — |
| max_tokens | INT | 20480–8192 | 最大生成 token 数 |
| temperature | FLOAT | 0.800–2 | — |
| top_p | FLOAT | 0.900–1 | — |
| top_k | INT | 300–1000 | — |
| custom_system_promptopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive_prompt | STRING | — |
| negative_prompt | STRING | — |