- Overview (this page): capabilities, checkpoints, workflow index, resolution, clip length, steps, sampler, speedups
- Native workflows: T2V, I2V, R2V, and native-node techniques
- Multiframe Reference: anchor reference frames on the timeline
- Fun ControlNet Union: control video or inpainting with a mask
- Prompt guide: official guides, tips, embeddings
- FastH3: FastVideo sparse-attention checkpoints
H3’s open weights let you run the model locally. Commercial use of locally generated outputs requires a MiniMax commercial license, available through Comfy, the only official reseller. Generations on Comfy Cloud already include commercial rights. See Commercial licensing for tiers and pricing.
Key features
- Native stereo audio: Dialogue, SFX, and music in one MP4
- Multimodal context: Combine text, image, video, and audio references
- Reference-driven generation: Lock identity, style, motion, camera, or voice from references
- Instruction following: Describe reference-to-shot relationships in natural language
- Accurate text rendering: Clean spelled-out text and brand elements
- Open weights: Full local control in ComfyUI
Getting started
- Update ComfyUI: base T2V/I2V/R2V templates need 0.30.0+; Multiframe Reference 0.34.0+; Fun ControlNet Union, sparse attention, and Model Attention Backend 0.35.0+; FastH3 0.36.0+
- Template Library > Video > pick a MiniMax H3 workflow
- Download models from the pop-up (tens of GB; allow time and disk space)
Use pruned checkpoints when both full and pruned builds exist. Pruned builds store adaln in a shared curve table (
adaln_t_table) that ComfyUI reads from the file; templates load minimax_h3_*_pruned_int8_convrot.safetensors. LoRAs distilled on full builds carry adaln tensors that do not exist on pruned builds (shape mismatch; those weights are skipped). Turbo LoRAs have no adaln tensors and work on either build.Choosing the checkpoint precision
Pick the smallest build that fits in VRAM. Change only theUNETLoader file; ComfyUI reads quantization from the checkpoint. LoRAs must match the build family (full-build LoRAs lose adaln on pruned).
Links are
fl2va (T2V/I2V); ref2va files are in the same folder at the same sizes. Comfy Kitchen attention cannot run int8_convrot checkpoints; use a bf16 build with that backend.
If VRAM is tight, step down a size: CPU offload costs more than precision tradeoffs. On RTX 30-series, INT8 matrix ops are ~2× FP16 and there is no FP8 path, so INT8 often beats FP8 at the same file size.
H3 also needs video and audio VAEs: video fp16 / int8_convrot and audio fp32. Templates use int8 video + fp32 audio; int8 video decodes ~2× faster on ComfyUI 0.36.0+. Swap files on VAELoader like the diffusion model.
Workflow index
Six template workflows ship today (examples, not an exhaustive list). The library also includes an I2V continuation variant (video_minimax_h3_i2v_continuation).
Text to Video (T2V)
Generate videos from text prompts with native stereo audio
Image to Video (I2V)
Generate videos from an input image, with optional first/last-frame control
Reference to Video (R2V)
Lock in a character, style, motion, camera move, or voice from reference images, videos, and audio
Multiframe Reference
Anchor reference frames at specific points along the output timeline with chained Add Guide nodes
Fun ControlNet Union
Drive H3 with a Canny, Depth, HED, MLSD, or Pose control video, or run video inpainting with a mask
t2va / fl2va). MiniMax H3 Reference to Video covers R2V (ref2va).
Reference conditioning only applies when it reaches the sampler. T2V/I2V templates sample inside a subgraph wired to Image to Video only. A Reference to Video node on the canvas is ignored without error. Use the R2V template (or a workflow built from it) for reference-driven output.
Setting the output resolution
Resolution Selector setswidth and height on the H3 node:
- Aspect ratio: Presets such as
16:9 (Widescreen),9:16 (Portrait Widescreen),1:1 (Square) - Megapixels: Total pixel count (higher = larger, slower)
- Multiple: Round to this grid; keep 32 for H3
width and height step by 32 up to 16384 per axis. Reference videos on Reference to Video are downscaled to fit a 768px short edge and a 768×1344 area. Reference images follow ref_image_size: match scales them to the generation’s pixel area, max to a 2048px short edge.
Upscaling to higher resolution
Use a latent upscaler on the 24-channel video latent to avoid VAE round-trip ghosting. Minimax_h3_latent_Upscaler (unofficial) needs minimax_h3_latent_upscaler_3d_conv_v1_bf16.safetensors inComfyUI/models/latent_upscale_models/ and its custom node. Chain Minimax H3 Latent Upscaler (3D) after a low-res pass (scale 1.0–4.0, default 2.0), then re-sample at target resolution.
Latent upscale saves time, not peak VRAM (refine still runs at target size). Treat refine as partial denoise: denoise 0.1–0.5 keeps composition; go higher only to rework the first pass. Give the refine sampler enough steps to rebuild multistep history (see Sampler and scheduler).
Video and audio latents are separate (24 + 32 channels). The upscaler only spatially enlarges video; audio is unchanged until refine denoises both. Low refine denoise preserves first-pass audio. To keep audio exactly, decode the first pass with VAEDecodeAudio before refine and wire that track into final CreateVideo (add SaveAudioAdvanced for a lossless export).
Clip length
H3 is trained on short clips; native nodes accept a wider range without blocking over-length requests. Templates exposeduration in seconds, converted to frames on the 17k+5 grid at 24fps.
duration and length round up to the next 17k+5 value: a 5 s request renders 124 frames (5.17 s), and a length of 120 also renders 124. Frames pack from frame 0 in 17-frame blocks, so the leftover 5 frames are the last block, not the first. Requests that fall between the same two grid points render the same clip.
Long clips at full resolution exhaust VRAM first; lower megapixels to fit.
Chaining clips
Beyond the trained range, chain I2V continuations from each clip’s last frame. Errors compound (faces lose texture first); turbo/distilled schedules show burn sooner. Usevideo_minimax_h3_i2v_continuation (empty prompt): load the previous last frame, describe the next segment. Prefer short continuous shots and cut before burn shows. For longer chains, H3-Anti-Burn-LoRA on clips after the first at strength_model ~0.5 (tune for your continuation style).
Step count
Defaults (Lightning LoRA off): 20 steps. With turbo on: 8 for T2V/I2V (and continuation), 4 for R2V, Multiframe, and Fun ControlNet. On T2V/I2V subgraphs,turbo_mode, turbo_steps, and turbo_model_strength control the distilled LoRA. A 4-step fl2va file is also listed: minimax_h3_fl2v_turbo_4step_v1.0_768p_comfyui_bf16.safetensors with turbo_steps 4.
Reference shots need more steps: reference tokens ride every step, so 4-step turbo can barely apply references (pose/face drift). For tight reference match, keep turbo off or raise toward 25.
Distilled schedules smooth fine detail (skin, fabric, hair) vs 20-step base. Each turbo file is mode-specific; test at a fixed seed before stacking style LoRAs. turbo_steps and turbo_model_strength are adjustable: higher steps + lower strength (less than 1) move back toward base quality and cost time. Example: 4-step file at 6–8 steps, strength ~0.8.
Turbo LoRAs shorten the schedule, not per-step time (merged at load). Running a 4-step LoRA at 20 steps takes about as long as base 20 steps.
Guidance by content:
- Simple shots: 12–16 steps often enough
- High-frequency detail (chainmail, filigree, many small objects): improves up to ~50; below that, triangular grid artifacts under motion (worse with turbo)
- Most motion/prompt gains by step 16; little visible change past 50
- Soft frames at native resolution are usually a resolution issue, not steps
Sampler and scheduler
Templates useres_multistep + simple. T2V/I2V/FastH3 hide these inside the subgraph; R2V, Multiframe, and Fun ControlNet expose KSamplerSelect and BasicScheduler on canvas.
res_multistep is second-order multistep (first step is Euler). Splitting the schedule across two samplers drops multistep history: the second sampler’s first step is first-order again. Keep one sampler run, or give the second enough steps to warm up.
Default H3 shifts are shift 12 and audio_shift 3 from the model definition (no extra node). FastH3 templates set ModelSamplingMiniMaxH3 to shift_video 10, shift_audio 3. Wrong video shift on distilled builds (e.g. 3 instead of 10 on 8-step) can show grid artifacts. Custom finetunes may need their own pair on ModelSamplingMiniMaxH3 (see the file’s model card). DMAD 4-step LoRA uses shift 12, audio_shift 2, lcm + simple.
Speeding up generation with Sage Attention
Sage Attention can roughly 2× speed with small quality impact (optional install):pip installthe wheel matching your PyTorch/CUDA from releases- Install KJNodes for
Patch Sage Attention KJ - Insert between
UNETLoaderandBasicGuider; setsage_attentiontoauto - Or launch with
--use-sage-attention
Quality degradation with INT8 attention
End-of-clip morphing or garbled on-screen text with Sage often comes from INT8 attention quantization (hot channels in late blocks).- Templates use
int8_convrotcheckpoints. Comfy Kitchen does not support them (issue #15529). Use default attention, or switchUNETLoadertopruned_bf16then change backend. - On bf16 checkpoints, Comfy Kitchen attention (channel rotation before quantize) clears artifacts at similar speed.
comfy kitchen attention) on the model path to BasicGuider (after LoRA/turbo), or use --use-ck-attention (0.32.0+). Requires comfy-kitchen INT8 kernels on your hardware.
Speeding up generation with sparse attention
Model Sparse Attention (0.35.0+, experimental) cuts attention cost on long clips. For base H3 usemethod sol-attn (sla/vsa need matching weights). Needs CUDA + sol_attn from comfy-kitchen; otherwise layers stay dense.
- Defaults
start_percent0.2,end_percent1.0. Later start (0.4) and earlier end (0.9) protect opening/closing frames. - Keep
sink_conditioningatexact_kv_and_rowson H3 (protects packed text/audio/reference rows). tau: higher = sparser/faster (1.0~16% exact blocks,1.3default,2.0~2.7%).- Short sequences below
min_tokens(default 12288) see little gain.
vsa at keep_percent 10; see FastH3 page.
Checking whether sparse attention is active
Base H3 templates do not include the node. Add Model Sparse Attention betweenUNETLoader and BasicGuider, then turn on verbose (Advanced, off by default) to log one line per attention shape.
Calls that stay dense log dense (<n> tokens): <reason> or dense (<b>, <n>, <h>, <d>): <reason>. Only the first failing condition is reported:
Calls that succeed log
sparse (<b>, <n>, <h>, <d>), sinks <k>/<q> or sparse producer path: <n> tokens, <mode>.
Three conditions never log, even with verbose on: activations that are not bfloat16 on the H3 path, a head_dim other than 128, and missing rope frequencies all fall back silently.
vsa is bound to the FastH3 checkpoint. It reads a learned coarse branch from to_gate_compress layers that only those weights carry, so on any other H3 checkpoint the node prints VSA: the model has no to_gate_compress layers; running the fine stage without the coarse branch and runs the fine stage alone. That warning is not gated by verbose.
Commercial licensing
H3’s open weights are free to download and run. Using locally generated outputs commercially requires a MiniMax commercial license, sold through Comfy, the only official reseller. Generations on Comfy Cloud already include commercial rights, so a license is only needed for local use. Do you need one?- Comfy Cloud: commercial use is included. Nothing to buy.
- Your own hardware, outside the US, EU, UK, and Korea, under $20M in yearly revenue: the free MiniMax community license covers commercial use. Show a “Powered by MiniMax H3” credit; the same territory rule applies to where your outputs are used.
- Your own hardware in the US, EU, UK, or Korea, or over $20M in yearly revenue: you need one of the two licenses below.
Professional starts at $5,000 per month. Enterprise has no flat list price; it is quoted to your generation volume and team. Both tiers cover MiniMax H3 plus MiniMax Audio & Music under one agreement. Request a license to get a quote.