Instructions to use MLXCreator/MLX-Creator with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use MLXCreator/MLX-Creator with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir MLX-Creator MLXCreator/MLX-Creator
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
| license: apache-2.0 | |
| tags: | |
| - mlx | |
| - mlx-creator | |
| - apple-silicon | |
| - text-to-image | |
| - text-to-audio | |
| - text-to-video | |
| # MLX Creator — Models | |
| Local generative-media studio for **Apple Silicon** — images, music, and video, fully | |
| on-device via [MLX](https://github.com/ml-explore/mlx). No PyTorch at runtime, no cloud. | |
| - **App / source:** https://github.com/rynky2436/MLX-Creator | |
| - **These repos** (`MLXCreator/*`) host MLX-format weights the app downloads on first run. | |
| --- | |
| ## How to add or convert a model so it works in the app | |
| The app loads models from its local `models/` folder. Each model lives in **its own | |
| subfolder** with a small `mlxstudio.json` manifest that tells the app what it is and | |
| which engine loads it. Drop a compatible folder in, and it appears in the right tab. | |
| ### 1. Is it already MLX format? | |
| The app's **inference is torch-free** — it loads pre-converted MLX weights. The easy path: | |
| - **Yes (drop-in):** weights already converted to MLX (e.g. from `mlx-community`, or any | |
| `MLXCreator/*` repo here). Just add the manifest (step 3) — no conversion needed. | |
| - **No (convert first):** the model only ships PyTorch/diffusers `safetensors`. Convert it | |
| to MLX **once, offline**, then drop in the result. Conversion may use torch on another | |
| machine/run; the app itself never needs it. Use the upstream MLX tool for that family: | |
| - Flux: [`mlx-examples/flux`](https://github.com/ml-explore/mlx-examples/tree/main/flux) | |
| - SD3 / SD3.5: [`DiffusionKit`](https://github.com/argmaxinc/DiffusionKit) | |
| - Qwen-Image: [`mflux`](https://github.com/filipstrand/mflux) | |
| - Language/planner models: `mlx_lm.convert` | |
| ### 2. Does the app already have an engine for that architecture? | |
| A manifest only **routes** a model to an engine that already exists. So a model works if it | |
| is **(a) MLX format** and **(b) one of the supported families** below: | |
| | Modality | Engine (`engine`) | Architectures it loads | Drop-in source | | |
| |---|---|---|---| | |
| | `image` | `flux` | FLUX.1 schnell / dev | `mlx-community` Flux, `MLXCreator/MLXCreator-Flux-Schnell` | | |
| | `image` | `sd35` | SD3 / SD3.5 (needs `SD3-encoders` companion) | `MLXCreator/MLXCreator-SD3.5-Large` | | |
| | `image` | `qwen` | Qwen-Image (quantized MLX) | `MLXCreator/MLXCreator-QwenImage-4bit / -8bit` | | |
| | `audio` | `ace_step` | ACE-Step 1.5 (needs an `acestep-*-lm` planner companion) | `MLXCreator/MLXCreator-ACEStep-1.5` | | |
| | `video` | `wan` | Wan 2.2 TI2V (needs `umt5-xxl-tokenizer` companion) | `MLXCreator/MLXCreator-Wan2.2-TI2V-5B` | | |
| A **brand-new architecture** (not in this list) needs a small new engine in the app — see | |
| [CONTRIBUTING in the repo](https://github.com/rynky2436/MLX-Creator). A new *variant* of a | |
| supported family just needs MLX weights + a manifest. | |
| ### 3. Write the manifest | |
| Put `mlxstudio.json` in the model's folder: | |
| ```json | |
| { | |
| "modality": "image", | |
| "engine": "flux", | |
| "arch": "schnell", | |
| "role": "model", | |
| "display": "FLUX.1 schnell" | |
| } | |
| ``` | |
| | Field | Required | Values | | |
| |---|---|---| | |
| | `modality` | yes | `image` · `audio` · `video` | | |
| | `engine` | yes | `flux` · `sd35` · `qwen` · `ace_step` · `wan` | | |
| | `arch` | flux only | `schnell` · `dev` | | |
| | `role` | yes | `model` (selectable) · `companion` (shared encoder/tokenizer/planner, hidden) | | |
| | `display` | optional | label shown in the UI (defaults to the folder name) | | |
| The app also **auto-detects** common layouts and writes this file for you, but adding it | |
| explicitly is the reliable way to register an unusual folder. | |
| ### 4. Install it — two ways | |
| - **In-app (recommended):** open the **Models** tab, search Hugging Face, and install. The | |
| browser filters for MLX-compatible repos and writes the manifest automatically. | |
| - **Manual:** copy the folder into the app's `models/` directory (see the path in the | |
| **Settings** tab). It shows up on next launch / refresh. | |
| ### 5. Publishing your own MLX model so the in-app browser finds it | |
| When you upload converted weights to Hugging Face, tag them so MLX Creator's browser | |
| surfaces them: | |
| - `library_name: mlx` (or include `mlx` in `tags`) | |
| - a `pipeline_tag` that matches the modality (`text-to-image`, `text-to-audio`, `text-to-video`) | |
| - keep the upstream **license** and attribution in the model card | |
| --- | |
| ## Companions | |
| Some engines share a heavy encoder/tokenizer/planner across models. These are marked | |
| `"role": "companion"` and are **not** shown as selectable models — they're loaded behind the | |
| scenes. Examples here: `SD3-encoders` (CLIP/T5 for `sd35`), `umt5-xxl-tokenizer` (for `wan`), | |
| `acestep-5Hz-lm-0.6B` / `-4B` (the ACE-Step "thinking" planners). | |
| --- | |
| *Each model repo here keeps its original source + license in its card. Apache-2.0 for the | |
| Flux / ACE-Step / Wan / Qwen / umt5 weights; the SD3 / SD3.5 weights are under the Stability | |
| AI Community License.* | |