Pure MLX runtime
The Apple GPU is the whole runtime. Unified memory, no PyTorch at inference, no CUDA anywhere.
MLX · Apple silicon · inference only
referencemlx
An open-source, inference-only library for MLX. Open-vocabulary grounding, object detection, monocular and multi-view depth, promptable segmentation, panoptic segmentation, and video object tracking — running on the Apple GPU, with no PyTorch at inference.
What it is
The Apple GPU is the whole runtime. Unified memory, no PyTorch at inference, no CUDA anywhere.
Every supported model is compared numerically against its upstream reference implementation. A skipped gate never becomes a claim.
Every task uses the same call shape, and Result.draw() turns any output into an image you can look at.
Tasks
Boxes, points, and labels for anything you can name in a sentence.
LocateAnythingCOCO boxes with class labels and confidence scores.
RF-DETRMonocular and multi-view depth, per-pixel confidence, and camera intrinsics and extrinsics.
Depth Anything V3Masks from a text phrase, a point, or a box.
SAM 3Every pixel labelled, with per-segment metadata for things and stuff.
EoMT · DINOv3Stateful propagation across frames, with objects entering and leaving.
SAM 3
The live catalog is whatever mlx_cv.available_models() returns —
check the repository for what is supported today.
How parity works
Reimplementing a model in a new framework is easy to get subtly wrong, and subtly wrong models still produce confident output. So every family here carries a gate.
Check out the original implementation and run it on a fixed input.
Record its outputs and the intermediate activations worth comparing.
Run the MLX port on the same input, on the Apple GPU.
Diff both under a declared tolerance and write the verdict into a ledger.
Three verdicts, no fourth. A gate that was skipped stays skipped in the record. The current ledger and its measured tolerances live in the repository.
Start
# Python 3.13+, Apple silicon git clone https://github.com/appautomaton/mlx-cv pip install -e ".[mlx]"
While the API is pre-alpha, a checkout is the recommended install — it keeps
you on the code the parity ledger describes. Released versions are on
PyPI and can lag main.
Weights are external artifacts and are never bundled — point the loader at a local package directory or a repository id, as described in model packages.
import mlx_cv model = mlx_cv.load("<alias>", "/path/to/package") result = model.predict(image, "a text prompt") result.draw().save("out.png")
Scope