Skip to content

Repository files navigation

ComfyUI-MiniMax-H3-Turbo

Run MiniMax-H3 — joint video + synchronized audio — in as few as 4 sampling steps instead of ~20, with the MiniMax-H3 Turbo LoRA.

Two nodes drop straight into the official H3 workflow (text-to-video and image-to-video):

node what it does
MiniMax-H3 Turbo LoRA MODEL → MODEL, applies the turbo LoRA
MiniMax-H3 Turbo Sampler → SAMPLER, feeds SamplerCustomAdvanced

Which checkpoint — v4 (600) or v1 (850)?

For most work, use minimax_h3_turbo_v4_step600_ema.safetensors (from the LoRA repo). It's the strongest checkpoint so far: much better static / small-motion shots, markedly better micro-detail (faces, fingers, texture), and the over-sharpening / plastic look of the earlier v1 (~850) line is fully resolved.

v4 introduced a static-frame enhancement. The one trade-off shows up only at 4 steps with large, fast motion, where v4 can produce motion-smear / trailing ghosting (actively being fixed). Using 6–8 steps largely removes it — and v4 tolerates higher step counts better than v1 (which over-sharpens at high steps + strength 1.0). For the narrow case of 4 steps and heavy motion, the older v1 ~850 checkpoint can still be friendlier.

Using 6–8 steps?        ── yes ──►  v4-600  (recommended)
   │ no (4 steps)
   ▼
Heavy / fast motion?    ── no  ──►  v4-600  (recommended)
   │ yes
   ▼
                                    v1-850  (friendlier at 4-step heavy motion)

Still a preview — the two areas still being improved are audio and fast, intense motion.

Install

Via ComfyUI-Manager — search "MiniMax-H3 Turbo" and install. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/larryvrh/ComfyUI-MiniMax-H3-Turbo

Then restart ComfyUI. Keep the node updated (Manager, or git pull) — it evolves alongside the weights.

Put the LoRA .safetensors into ComfyUI/models/loras/. You also need the base MiniMax-H3 model, VAEs and text encoder from the official release — see the MiniMax-H3 tutorial.

Use

Start from the official MiniMax-H3 workflow (t2v or i2v) and make two changes:

  1. Insert MiniMax-H3 Turbo LoRA between the model loader and the sampler (… → Load Diffusion Model → MiniMax-H3 Turbo LoRA → SamplerCustomAdvanced), and pick the turbo .safetensors.
  2. Feed SamplerCustomAdvanced from MiniMax-H3 Turbo Sampler, and set the scheduler node (BasicScheduler) to simple at ≥ 4 steps.

Everything else — conditioning, VAE decode, audio output — stays as in the official graph, so both t2v and i2v work unchanged. A ready-made t2v workflow is in example_workflows/ — drag it into ComfyUI to see the wiring.

Steps and strength

  • 4 steps is the recommended minimum; 4–8 is the useful range. 6–8 steps look noticeably better than 4, so add steps if you can afford them. Past 8 steps it stops helping and can start to introduce over-sharp artifacts — no benefit to going higher, so stay in 4–8.
  • Keep strength at 1.0. It's tuned for 1.0 and holds up across the 4–8 step range. Only reach for the dial if a specific clip misbehaves: blurry ghosting / smear → nudge up (~1.05–1.2), over-sharp grain → nudge down (~0.8–0.95).
  • Keep the scheduler on simple.

Base model & low_vram

Base model — works with any MiniMax-H3 base: full (bf16, int8_convrot) and the pruned/curve variants (pruned_int8, pruned_fp8). The node detects a pruned base automatically and re-injects the LoRA's time-conditioning at run time (a small silu(t_emb) grid ships with the node for this), so one LoRA file covers every base.

low_vram (node switch) trades sharpness for peak VRAM:

  • off (default) — applies the LoRA at run time (bypass): sharpest, recommended, a little extra peak VRAM.
  • on — merges the LoRA into the weights: lowest peak VRAM, so smaller GPUs run and longer / higher-res clips fit, but the result is softer on quantized (int8 / fp8 / pruned) bases (the tiny update is partly rounded away when folded into the quantized weights).

The node streams the base model, so it runs on much smaller GPUs than the ~33 B size suggests — an 80 GB GPU is only needed for the largest resolutions in bypass mode. If you hit out-of-memory, turn low_vram on and/or lower the resolution or frame count.

Why a custom sampler (and how it adapts)

MiniMax-H3 denoises the video and audio streams on two different flow schedules (video shift 12, audio shift 3). Recent ComfyUI handles this natively — its ModelSamplingAV carries the audio latent on the video schedule — so a stock sampler already produces correct audio there. On older ComfyUI without that support, a stock sampler steps both streams on one schedule and badly over-steps the audio at 4 steps, so the audio comes out distorted.

This node's sampler auto-detects which ComfyUI it's on: on recent builds it steps as a plain single-schedule sampler (bit-for-bit the stock result); on older builds it steps each stream on its own clock so audio stays clean at 4 steps. Keep it in the workflow and it does the right thing across ComfyUI versions — nothing to change when you update. (On recent ComfyUI a stock euler also works; the Turbo Sampler just keeps existing graphs running unchanged.)

Notes

  • Resolution / length: width and height are multiples of 32 (short edge typically 768); frame count is at 24 fps and snaps to the model's 17·k+5 grid (124 ≈ 5 s). Validated range ~124–362 frames.

License

Apache-2.0.

About

No description, website, or topics provided.

Resources

Stars

488 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages