MiniMax H3 Prompt Studio + Generate
The one node that writes your MiniMax H3 prompt and then generates the video
- clip
- vae
- audio_vae
- first_frame
- last_frame
- ref_images
- ref_videos
- ref_video_audios
- ref_audios
- creative_presets
- positive
- latent
- formatted_prompt
- validation_report
- raw_response
- usage_json
- display_prompt
MiniMax H3 is a genuinely great video model, and its prompt format is the price you pay for it. The official writing guide is a wall of markdown demanding [Shot N] blocks, strictly increasing MM:SS.mmm timestamps, <d>[Language] dialogue</d> syntax, and separate soundscape and music fields - correct by hand, and nobody wants to hand-write it for every clip. That's the gap this node fills. MiniMax H3 Prompt Studio + Generate is the flagship of the colorAi pack, and it does what its long name promises: an LLM turns your rough idea into a validated H3 prompt document, and the same node then runs ComfyUI's official H3 conditioning on it, handing you positive and latent ready for the sampler. Rough idea in, sampler-ready conditioning out.
How it works
Two jobs, fused. First, the prompt-engineering half: your user_request plus the assets you've connected are sent to an LLM - RunningHub, OpenAI, or a local OpenAI-compatible server like Ollama or LM Studio - which writes a structured H3 document following the writing guides bundled with the pack. A deterministic validator then checks shot numbering, timestamp syntax and ordering, dialogue markup, and reference bounds, and can ask the model to repair it once if something's off. That's the "engineer" part.
Second, the generate part: the validated English prompt goes straight into ComfyUI's own MiniMaxH3ImageToVideo / MiniMaxH3ReferenceToVideo implementation, which returns the conditioning and latent you wire downstream. No glue nodes. The nice architectural bit: the LLM sees a few sampled frames for interpretation, but H3 gets the full frame batch and complete audio - nothing lost for the model that actually matters.
Connect every asset once, then type @
The genuinely clever bit. Wire each image, video, or audio into its autogrow input (ref_images, ref_videos, ref_video_audios, ref_audios), then in user_request type @ and pick from a menu of only what's connected: @image1, @video1, @video_audio1, @audio1. The node resolves those aliases into H3's native <Picture 1>, <Video 1>, <Audio N> labels. It even works mid-CJK-word without a space, handy for Chinese briefs.
The inputs that actually matter
Most of the surface is sensible defaults. task_mode defaults to Auto and infers from what's connected - one less decision. The few a beginner should touch:
clipandvae(required) - the H3 text encoder and VAE, loaded from the same checkpoint you'd use with the official H3 node. Connectaudio_vaeif any audio is connected; the node errors otherwise.ai_provider- the LLM backend. RunningHub, OpenAI, or a local server, plus two Direct modes that make no LLM call at all (pass-through, or "already formatted" if you've pasted a finished H3 document).user_request- your brief, English or Chinese, with@references.width,height,length- length is frame count at 24 fps; H3 snaps upward to its17k+5grid, so don't fuss over the exact number.
prompt_template picks from nine presets (General, Brand Promo, MV Subtitle, Papercraft Stop Motion…), request_level scales how much production context the LLM gets, and display_language optionally returns a Chinese reading version in a separate output while H3 always gets English. The two outputs you actually wire are positive (CONDITIONING) and latent (LATENT); formatted_prompt, validation_report, raw_response, usage_json, and display_prompt are for inspection and the optional Chinese translation.
Installing it
Search "MiniMax H3 Prompt Engineer" in ComfyUI Manager, or git clone https://github.com/colorAi/ComfyUI-Minimax-H3-Prompt-Engineer into custom_nodes/, pip install -r requirements.txt, restart. Good news: the only declared dependency is certifi - the API client is plain stdlib, so no heavy deps. The catch is ComfyUI itself: this node needs a current build containing comfy_extras/nodes_minimax_h3.py and the V3 node API. Older builds silently load only the legacy nodes, so update ComfyUI first. And it needs the H3 weights locally - which brings up the elephant: the MiniMax H3 Community License excludes the US, EU, UK, and South Korea, so if you're in one of those, running the generation side here is unlicensed. The prompt-engineering side still works.
Where people get burned
Validation failing is the common one: keep auto_repair and strict_validation on, bump max_tokens if the response was truncated, and reach for a stronger model before blaming the node. Image modes need a vision-capable model on your provider. And treat the API key like a secret: ComfyUI can serialize widget values into workflow JSON, and the pack stores provider keys in a local provider_config.json - clear them before sharing a workflow. It's the standing rule for every API node: this thing phones home with a credential by design, so keep keys out of shared JSON.
Inputs (29)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| vae | VAE | — | |
| ai_provider | COMBO | Use prompt as-is skips all LLM calls and H3 document validation. Prompt already formatted keeps strict schema validation. | |
| prompt_template | COMBO | Official H3 · General | 9 options: Official H3 · General, 3D Animation Short · 3D 动画短片, Brand Promo · 品牌宣传片, Co-op Game Intro · 合作游戏开场, Hand-drawn Live · 手绘实拍融合, Minimalist Product Ad · 极简产品广告, +3 |
| request_level | COMBO | Basic · 基础 | Basic uses a compact H3 contract and short output; Medium adds production rules; Full injects the complete official writing guides. |
| display_language | COMBO | English · H3 native | AI providers always send English to H3 and can add a Chinese display translation. Direct modes return the supplied language unchanged. |
| task_mode | COMBO | Auto · Infer from connected assets | 6 options: Auto · Infer from connected assets, T2VA · Text to Audiovisual, I2VA · First Frame to Audiovisual, FL2VA · First and Last Frames to Audiovisual, L2VA · Last Frame to Audiovisual, FULL_REFERENCE · Full Reference |
| user_request | STRING | — | |
| width | INT | 134432–16384 | — |
| height | INT | 76832–16384 | — |
| length | INT | 1245–3600 | Frame count at 24 fps; H3 snaps upward to its 17k+5 frame grid. |
| ref_image_size | COMBO | match | Matches the official MiniMax H3 Reference to Video node. |
| reference_context | STRING | — | |
| temperature | FLOAT | 0.200–2 | — |
| top_p | FLOAT | 0.900–1 | — |
| max_tokens | INT | 4096512–32768 | — |
| reasoning_effort | COMBO | none | 7 options: none, minimal, low, medium, high, xhigh, +1 |
| timeout_seconds | INT | 12010–600 | — |
| image_max_side | INT | 1024512–4096 | — |
| auto_repair | BOOLEAN | true | — |
| strict_validation | BOOLEAN | true | Applies to AI output and strict Direct documents; pass-through Direct always skips it. |
| audio_vaeopt | VAE | — | |
| first_frameopt | IMAGE | — | |
| last_frameopt | IMAGE | — | |
| ref_imagesopt | COMFY_AUTOGROW_V3 | — | |
| ref_videosopt | COMFY_AUTOGROW_V3 | — | |
| ref_video_audiosopt | COMFY_AUTOGROW_V3 | — | |
| ref_audiosopt | COMFY_AUTOGROW_V3 | — | |
| creative_presetsopt | H3_CREATIVE_PRESET | — |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| latent | LATENT | — |
| formatted_prompt | STRING | — |
| validation_report | STRING | — |
| raw_response | STRING | — |
| usage_json | STRING | — |
| display_prompt | STRING | — |