Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

mlx-h3

Pure MLX MiniMax-H3 text-to-video-and-audio inference for Apple Silicon.

Pre-release PyPI Python Apple Silicon MLX

mlx-h3 is an independent, pure-MLX inference runtime for MiniMax-H3. It generates video and stereo audio jointly, keeps model residency phase-scoped, and targets large-memory Apple silicon systems without using PyTorch at runtime.

[!IMPORTANT] This project is pre-alpha. The first planned Git tag is v0.0.1a1, published as a GitHub pre-release. Model files are not included in the repository or PyPI package.

Why mlx-h3

  • Joint audio and video — one DiT denoises both modalities in a shared sequence.
  • Pure MLX runtime — no PyTorch execution and no CUDA dependency.
  • Bounded model residency — text encoder, DiT, Video VAE, and Audio VAE load and release in separate phases.
  • Current sampling baseline — 20 simple schedule steps with the second-order res_multistep solver.
  • Dependency-light tokenizer — byte-level BPE implemented locally from tokenizer.json.
  • Fail-fast memory guard — configurable active-memory budget and swap detection.

Current scope

Capability Status
Text-to-video-and-audio (T2VA) Working
Synchronized H.264/AAC MP4 output Working
8-bit DiT and text encoder loading Working
First/last-frame conditioning (FL2VA) Not implemented
Multi-reference conditioning (Ref2VA) Not implemented
Context-IR and 2K regeneration Not available locally

Requirements

  • Apple silicon Mac
  • macOS with a recent MLX-compatible toolchain
  • Python 3.13 or newer
  • ffmpeg available on PATH
  • Local MiniMax-H3 tokenizer and checkpoints
  • Enough unified memory for the selected canvas and frame count

The default runtime memory budget is 70 GiB. It is a guardrail, not a promise that every system workload will remain swap-free.

Install

From a local checkout:

git clone https://github.com/appautomaton/mlx-h3.git
cd mlx-h3
uv sync

After the first PyPI pre-release is published:

uv tool install --prerelease allow mlx-h3==0.0.1a1

Local model layout

Model files stay outside version control. The default paths are:

weights/
├── tokenizer/tokenizer.json
├── mlx-8bit/te_qwen3vl_a8g32.safetensors
├── mlx-8bit/dit_fl2va_a8g32.safetensors
└── bf16/vae/
    ├── minimax_h3_video_vae_fp16.safetensors
    └── minimax_h3_audio_vae_fp32.safetensors

Dense DiT and text-encoder weights may be retained locally for requantization, but inference never loads them. The dense Video VAE and Audio VAE checkpoints are runtime inputs.

Generate

Keep private input text in your shell environment rather than a tracked file:

uv run mlx-h3 "$MLX_H3_INPUT_TEXT" \
  --width 512 \
  --height 288 \
  --frames 124 \
  --steps 20 \
  --seed 42 \
  --output outputs/result.mp4

Canvas dimensions must be multiples of 32 and may not exceed 768 * 1344 pixels. Frame requests are aligned to the Video VAE's 17n + 5 rule and capped at the released 15-second limit. Use --steps 10 for a faster preview; --steps 20 is the quality baseline.

Run uv run mlx-h3 --help for checkpoint path overrides and all generation options.

Memory model

The pipeline intentionally keeps only one large model phase resident at a time:

text encode -> release -> joint denoise -> release -> video decode -> release
            -> audio decode -> release -> mux

Safety checks remain enabled in release runs. Scalar telemetry is emitted only when a callback is attached, so normal inference does not retain diagnostic tensors or model objects.

Development

uv run ruff check .
uv run pytest -q
python dev/check_public_tree.py
uv build

The public-tree check rejects model files, media, private inputs, generated artifacts, large files, hidden local state, symlinks, and structured private prompt payloads. A local pre-commit hook runs the same check against staged files.

Architecture and validation notes are indexed in docs/README.md.

Project identity

  • Distribution and CLI: mlx-h3
  • Python import package: mlx_h3
  • Repository: appautomaton/mlx-h3
  • Runtime: pure MLX on Apple silicon

This project is not affiliated with or endorsed by MiniMax.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mlx_h3-0.0.1a1.tar.gz (37.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mlx_h3-0.0.1a1-py3-none-any.whl (43.8 kB view details)

Uploaded Python 3

File details

Details for the file mlx_h3-0.0.1a1.tar.gz.

File metadata

  • Download URL: mlx_h3-0.0.1a1.tar.gz
  • Upload date:
  • Size: 37.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mlx_h3-0.0.1a1.tar.gz
Algorithm Hash digest
SHA256 e5abf2f1bea391ea7c75208765dca2315139dc069cab90c27ac96a24b23638a6
MD5 38f131d768a892c8a5c0c1e63f5bc534
BLAKE2b-256 1266889905c0e45676fe8133cb5b73f5275e7af2446307238b06c79d04c9aee5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlx_h3-0.0.1a1.tar.gz:

Publisher: workflow.yml on appautomaton/mlx-h3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mlx_h3-0.0.1a1-py3-none-any.whl.

File metadata

  • Download URL: mlx_h3-0.0.1a1-py3-none-any.whl
  • Upload date:
  • Size: 43.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mlx_h3-0.0.1a1-py3-none-any.whl
Algorithm Hash digest
SHA256 420537765b9b5107fc80045b5d11bdaff0d36000467c7c49be12bc86e6ea677e
MD5 a478032df65667776e3e781cccd7f449
BLAKE2b-256 7b8487f967f5bd176b7c791b214e864f3cd42f76736903202f72091bbc762139

See more details on using hashes here.

Provenance

The following attestation bundles were made for mlx_h3-0.0.1a1-py3-none-any.whl:

Publisher: workflow.yml on appautomaton/mlx-h3

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page