H3-metal ports MiniMax-H3 video generation to Apple Silicon

H3-metal ports MiniMax-H3 video generation to Apple Silicon

H3-metal is a from-scratch native implementation that runs the MiniMax-H3 video-generation model directly on Apple Silicon using Metal, rather than through a general-purpose framework. The project is being built as a sequence of working vertical slices, and the documentation says prompt-to-video/audio generation, first/last-frame conditioning, and ordered Ref2VA image, video, and audio references already work end to end; current work is incremental H3-specific Metal performance and memory optimization on M3 Max and M5 Max hardware. Usage is a single CLI binary pointed at a local Hugging Face snapshot of MiniMax-H3, with FFmpeg available on PATH for encoding; running the binary without a prompt starts an interactive session that keeps the BF16 prompt conditioning, prepared DiT, and video decoder resident in memory so a repeated prompt with a new seed skips reloading and re-encoding. The session supports commands for setting persistent first- and last-frame anchors, adding ordered Ref2VA reference images (which the model sees as Picture 1, Picture 2, and so on), checking status, and saving output. The validated balanced preset generates 22 frames at 24 fps, about 0.92 seconds of video, using 20 denoising steps, 45 of 50 transformer layers, and a reuse setting that computes 11 fresh denoiser velocities instead of 20. For fast iteration, a four-step preset is also validated: on a 512-square, 22-frame test, its output had 0.556 full-video SSIM against a 29-step reference render for a fox scene and 0.547 SSIM for an independent surfer scene, while taking about 3.5 seconds on an M5 Max versus 26.4 seconds for the reference render. An optional --use-int8-row-fc2 mode, available on M5, uses one activation scale per FC2 row with a single full-width TensorOps product; it reduced complete denoiser forwards by about 2.6% in reciprocal tests and kept matched four-step fox and surfer videos at 0.919 and 0.828 full-video SSIM respectively, with the same subjects, setting, and motion. A separate token-reduction option cut a 45-layer, reuse-2 denoise pass from 16.69 to 12.60 seconds on an M5 Max at the validated 512-square resolution. The documentation sets hard limits: output width and height must each be a multiple of 32, at least 32, and their product cannot exceed 768 by 1344 pixels, since H3-Base is a 768p model. At 256-square resolution the model has only an 8x8 effective spatial-token grid, and H3-metal automatically halves spatial RoPE coordinates at that exact size, which the documentation says removed repeating lattice artifacts in long fox renders without adding tokens or runtime; 128-square rendering remains unsupported because its 4x4 token grid did not recover a recognizable subject even with adjusted RoPE. H3 emits video at 24 fps and rounds frame requests up to the nearest 5 + 17*n shape, so a request for 10 seconds produces 243 frames (10.125 seconds) and a request for 23 frames is rounded up to 39; the released workflow is described as intended for roughly 4 to 15 second videos, and the default seed is 42. The documentation also lists combinations to avoid: pairing --token-reduction with both --layers 40 and --reuse 3 produced color ringing, outlines, and ghosted limbs in testing, and --core-reuse values above 6 are not exposed because validation lost subject fidelity at that range.

Key facts

  • H3-metal runs the MiniMax-H3 text-to-video/audio model natively via Apple's Metal API on M3 Max and M5 Max chips, with prompt-to-video/audio generation, first/last-frame conditioning, and ordered Ref2VA references already working end to end.
  • The validated four-step preset renders a 22-frame, 24 fps clip (about 0.92 seconds) on an M5 Max in about 3.5 seconds, versus 26.4 seconds for a 29-step reference render, while holding 0.556 (fox) and 0.547 (surfer) full-video SSIM against that reference.
  • An optional --use-int8-row-fc2 mode on M5 cuts complete denoiser forwards by about 2.6% and keeps matched four-step fox and surfer videos at 0.919 and 0.828 SSIM; a token-reduction option cuts a 45-layer, reuse-2 denoise pass from 16.69 to 12.60 seconds on M5 Max.
  • Output width times height cannot exceed 768 by 1344 pixels since H3-Base is a 768p model; frame counts round up to the nearest 5 + 17*n shape, so a 10-second request becomes 243 frames (10.125 seconds) and a 23-frame request becomes 39.
  • Some aggressive combinations are flagged as broken in testing: pairing --token-reduction with both --layers 40 and --reuse 3 produced color ringing, outlines, and ghosted limbs, and native 128-square rendering stays unsupported because its 4x4 token grid could not recover a recognizable subject.

Why it matters

Running a text-to-video-and-audio model like MiniMax-H3 has generally meant either a cloud API or an Nvidia GPU. H3-metal is a native Metal implementation built specifically for Apple Silicon, aiming at the same class of local, on-device generation that projects like MLX have brought to language models, but for video and audio generation with image conditioning and reference support.

Who it affects

Developers and hobbyists with Apple Silicon Macs, particularly M3 Max or M5 Max machines with enough unified memory to hold the MiniMax-H3 weights, who want to generate short video clips locally without a cloud service, plus anyone already working with the MiniMax-H3 model who wants a native inference path.

How to use it

The tool is a single CLI binary built with make, pointed at a local Hugging Face snapshot of MiniMax-H3 with FFmpeg on PATH. It can run one-shot with a text prompt and flags for resolution, frame count, denoising steps, layer count, and reuse settings, or start an interactive session that keeps the model resident in memory, supports commands for first/last-frame anchors and ordered Ref2VA image references, and previews frames directly in supported graphical terminals such as Kitty, Ghostty, iTerm2, WezTerm, or Konsole.

How solid is it

The documentation itself describes the project as a sequence of working vertical slices, with prompt-to-video/audio, frame conditioning, and reference support functional end to end while H3-specific Metal performance and memory optimization is still ongoing incremental work. The performance and quality figures, including the SSIM comparisons and timing numbers, come from the project's own documentation rather than an independent benchmark, and it states outright that pixel-identical output to MLX is not expected because the random-number and execution engines differ, only that depicted content and motion should agree.

Risks and caveats

Several presets and flag combinations are explicitly called out as producing bad output: tail-heavy denoising schedules produced woven texture, weak motion, or clipped colors in testing; combining --token-reduction with both --layers 40 and --reuse 3 produced color ringing, outlines, and ghosted limbs; and --core-reuse values above 6 are not exposed because validation lost subject fidelity. Native 128-square rendering remains unsupported. The source text does not name who wrote or maintains the project, gives no release date or version number, states no parameter count, file size, or license for the MiniMax-H3 model, includes no benchmark against non-Apple-Silicon inference such as CUDA, and mentions no pricing.

“Numerical pixel identity with MLX is not expected because the random-number and execution engines differ; the depicted content and motion should agree.”

— the project documentation