MiniMax H3 Max Turbo
768p, plus a prompt rewriter you'll want to switch off
- frameImages
- video
The other H3 tier
Same model family as MiniMax H3 Fast, one notch up: MiniMax H3 Max Turbo. H3 is MiniMax's 33B omni-modal video model - native stereo audio, not an audio pass bolted onto a silent clip - and it's the one that took #1 in Video Editing (With Audio) on Artificial Analysis when it opened its weights in August 2026. The open weights come with a catch the KB's panel spells out: the community licence excludes the US, EU, UK and South Korea, so for a lot of readers the hosted API is the only way to touch this model at all. Locally it's ~42.5GB before you've loaded anything else.
What you're buying here over the Fast tier is resolution and a different generation recipe: this node offers 768p, and it exposes a prompt-expansion dial the Fast node doesn't.
What goes in
positivePrompt is required. Everything else is optional.
frameImages is an IMAGE socket - the image-to-video path, and the only image input this tier has. Note what's not here compared to H3 Fast: no referenceImages socket, no referenceVideos socket, no advanced_json. So Max Turbo is a straighter generator: text-to-video, or first-frame-driven video, and that's the whole input surface.
size is where the resolution lives: fifteen options, from None (model default) through 480p and 768p at six aspect ratios each, plus 480p (from input) and 768p (from input) for when a frame image should dictate the shape. Default is 480p (~16:9). Pick a (from input) entry and the frame image owns the aspect ratio - good for keeping a source photo's composition intact.
duration is 5–15 seconds (note the 5-second floor, higher than Fast's 4). Frames come from duration × the model's frame rate, per the tooltip. seed and numberResults (up to 4) are the usual pair.
Then the dial that deserves actual thought: settings.promptExpansion - disabled, balanced (default) or quality. Its tooltip ends with the line that matters: "Affects reproducibility." A model that rewrites your prompt before generating will not give you the same clip twice from the same seed, even if it usually gives you a better-looking one. Turn it to disabled while you're dialling in a composition; put it back to balanced when you finally like the shot and want it prettier.
The rest is housekeeping: the safety group (safety.checkContent, safety.mode fast/full), the ttl toggle that gates ttl_value, outputFormat (MP4/WEBM/MOV) and outputQuality (20–99).
Output: one video.
Install
Search Runware in ComfyUI Manager - it's the pack's display name, so it comes up on the first try - or do it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Dependencies are runware-sdk>=1.6.5, pillow and soundfile. No weights, no model folder, no VRAM ceiling to worry about - inference happens on Runware's hardware. Key from runware.ai/api-keys into ComfyUI Settings → Runware API key, or RUNWARE_API_KEY, or runware auth login. The title bar reports each run's cost when it finishes.
Where people get burned
Turning promptExpansion on "to help" and then chasing a seed. You'll never converge: the prompt you queued isn't the prompt that ran. This is the most common self-inflicted wound on any model with automatic prompt rewriting, and it's a one-click fix.
Expecting the Fast tier's reference-video inputs. They aren't on this node. If you want @tagged video references, that's H3 Fast; if you want the pixels, it's here. Neither node gives you both.
A file path where you expected a VIDEO link. The pack only produces a native VIDEO output when your ComfyUI has the comfy_api video class available - otherwise you get the saved path, with the mp4 still in your output folder as runware_<id>.mp4. Update ComfyUI, restart, and the socket comes back.
Blaming the node for a refusal. Moderation is the model's, not the pack's. There's a safety.mode and a safety.checkContent, and behind them, MiniMax's own policy - the same wall any hosted model puts up, and not one you can tune away.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| frameImagesopt | IMAGE | — | |
| sizeopt | COMBO | 480p (~16:9) | Output size. Only one of resolution or dimensions is sent. |
| seedopt | INT | 00–4294967295 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| durationopt | INT | 55–15 | Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps). |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| settings.promptExpansionopt | COMBO | balanced | Level of automatic prompt rewriting applied before generation. Affects reproducibility. |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. Increases total generation time. |
| safety.modeopt | COMBO | fast | Safety checking mode for video generation. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | MP4 | File format for the generated video. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |