mmh3 is an inference engine dedicated to MiniMax H3, written in Rust with CUDA and Metal kernels and running without PyTorch or ComfyUI. The tokenizer, the Qwen3-VL text encoder, the diffusion transformer, the sampler and both VAE decoders are written in this repository and tuned for MiniMax H3's shapes. It reads the ComfyUI checkpoints from Comfy-Org/MiniMax-H3, and writes MP4 with NVENC or VideoToolbox H.264 and AAC, or WebM with VP9 and Opus, without an ffmpeg installation.
It runs on one machine or distributed across several running mmh3 worker,
splitting every diffusion step between them over RDMA where there is a path for it and ordinary
sockets where there is not. The machine that hands the work out runs none of it, so it needs no GPU
of its own.
The backends are CUDA on Linux and Metal on macOS, the second through a Swift bridge and MPS beside its own kernels. Each page says what that backend needs.
With what your backend needs installed, CUDA or Metal, run these commands from the repository directory:
make
make download-models
make generatemake builds mmh3 with Metal on macOS and CUDA on Linux. make download-models downloads the
models into models, and make generate writes a video with audio to out.mp4 from a sample
prompt. On CUDA it generates a 5.2-second 1344×768 video with NVENC H.264 and AAC. On Metal it
generates a 1.625-second 448×256 video with the four-step Turbo LoRA and VideoToolbox output.
On CUDA, make generate uses FastVideo's 4-step FastH3 as a patch on the base DiT,
with its video sparse attention, INT8/FP8 attention and the INT8 video VAE. Compared with mmh3's
defaults, they can change image details and the composition. mmh3 also runs two other few-step
models with the settings on their pages. On a DGX Spark, a complete generation, including model
loading and encoding, took:
| Model | Steps | Time |
|---|---|---|
| FastH3 | 4 | 87 s |
| lightx2v Turbo LoRA | 4 | 86 s |
| TaoMate-H3 | 3 | 70 s |
See Usage for the other settings.
- Text to video with audio (T2VA) works end to end, one video at a time. Native MP4 and WebM generation and complete video/audio decoding have been verified on GB10.
- Videos from a first frame, a last frame or both (FL2VA) work too.
- NVIDIA Blackwell GPUs with CUDA. It is developed on a DGX Spark (GB10,
sm_121) and builds forsm_120f, so it should also run on RTX PRO 6000 and RTX 50 series GPUs, which have not been tested yet. - Videos from reference pictures, sounds and clips (Ref2VA) work with the ref2va DiT, reading reference clips from MP4 files.
- Metal text-to-video support on macOS. See Metal for its current limits.
- Distributed generation works on both backends and between them, and from a machine with neither. Shares follow what each machine measures itself to do. Between two DGX Sparks a 768p run takes about a quarter less, and a Mac that hands every step to a Spark rather than taking one itself generates about twenty-five times faster than it does alone.
- An HTTP server takes a generation as a form and keeps its models loaded between the generations it runs, so the second one against a warm server starts at its first step. It has no authentication of its own and waits on loopback.
- Not yet: stopping a generation that is already running.
docs/README.md lists the documentation pages.
mmh3 is released under the MIT License. See LICENSE, and NOTICE for third-party material and credits. The model weights are not part of this repository and come under their own licenses.