This release is a pre-release and may not be stable for production use.
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
simpleschedule steps with the second-orderres_multistepsolver. - 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
ffmpegavailable onPATH- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5abf2f1bea391ea7c75208765dca2315139dc069cab90c27ac96a24b23638a6
|
|
| MD5 |
38f131d768a892c8a5c0c1e63f5bc534
|
|
| BLAKE2b-256 |
1266889905c0e45676fe8133cb5b73f5275e7af2446307238b06c79d04c9aee5
|
Provenance
The following attestation bundles were made for mlx_h3-0.0.1a1.tar.gz:
Publisher:
workflow.yml on appautomaton/mlx-h3
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mlx_h3-0.0.1a1.tar.gz -
Subject digest:
e5abf2f1bea391ea7c75208765dca2315139dc069cab90c27ac96a24b23638a6 - Sigstore transparency entry: 2341556264
- Sigstore integration time:
-
Permalink:
appautomaton/mlx-h3@9bee0cc188330e652b13154f4e9c3b6ff931d732 -
Branch / Tag:
refs/tags/v0.0.1a1 - Owner: https://github.com/appautomaton
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@9bee0cc188330e652b13154f4e9c3b6ff931d732 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
420537765b9b5107fc80045b5d11bdaff0d36000467c7c49be12bc86e6ea677e
|
|
| MD5 |
a478032df65667776e3e781cccd7f449
|
|
| BLAKE2b-256 |
7b8487f967f5bd176b7c791b214e864f3cd42f76736903202f72091bbc762139
|
Provenance
The following attestation bundles were made for mlx_h3-0.0.1a1-py3-none-any.whl:
Publisher:
workflow.yml on appautomaton/mlx-h3
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mlx_h3-0.0.1a1-py3-none-any.whl -
Subject digest:
420537765b9b5107fc80045b5d11bdaff0d36000467c7c49be12bc86e6ea677e - Sigstore transparency entry: 2341556266
- Sigstore integration time:
-
Permalink:
appautomaton/mlx-h3@9bee0cc188330e652b13154f4e9c3b6ff931d732 -
Branch / Tag:
refs/tags/v0.0.1a1 - Owner: https://github.com/appautomaton
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@9bee0cc188330e652b13154f4e9c3b6ff931d732 -
Trigger Event:
release
-
Statement type: