Nodes/ComfyUI-MiniMaxH3-QwenPrompt/MiniMax H3 Prompt (Qwen)
ComfyUI Node

MiniMax H3 Prompt (Qwen)

MiniMax H3 is picky about prompts — let a local Qwen write them

By wangminxing2019·Created 30 days ago·Updated 19 days ago· 2
MiniMax H3 Prompt (Qwen)
    • positive_prompt
    • negative_prompt
    model
    mmprojNone
    chat_handlerQwen3.5
    n_ctx8192
    user_prompt
    modeT2VA
    stylecinematic
    duration10
    aspect_ratio16:9
    include_audiotrue
    seed0
    max_tokens2048
    temperature0.80
    top_p0.90
    top_k30
    custom_system_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. duration is 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 flip n_ctx between 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.

    CategoryMiniMax H3

    Inputs (16)

    NameTypeDefaultDescription
    modelCOMBO1 options: (未找到模型,请检查 models/LLM 目录)
    mmprojCOMBONone1 options: None
    chat_handlerCOMBOQwen3.520 options: None, LLaVA-1.5, LLaVA-1.6, Moondream2, nanoLLaVA, llama3-Vision-Alpha, +14
    n_ctxINT81921024–327680上下文长度限制
    user_promptSTRING
    modeCOMBOT2VAT2VA=文生视频, I2VA=首帧图生视频, FL2VA=首尾帧生视频, L2VA=尾帧生视频, Ref2VA=全参考生视频
    styleCOMBOcinematic8 options: cinematic, live-action, 2D-animated, 3D CG, claymation, watercolor, +2
    durationINT104–15视频时长(秒),MiniMax H3 支持 4-15 秒
    aspect_ratioCOMBO16:93 options: 16:9, 9:16, 1:1
    include_audioBOOLEANtrue是否在提示词中包含环境音和 BGM 描述
    seedINT00–18446744073709550000
    max_tokensINT20480–8192最大生成 token 数
    temperatureFLOAT0.800–2
    top_pFLOAT0.900–1
    top_kINT300–1000
    custom_system_promptoptSTRING

    Outputs (2)

    NameTypeDescription
    positive_promptSTRING
    negative_promptSTRING