Text-to-Image
Diffusers
Safetensors
MLX
mlx-gen
apple-silicon
diffusion
stable-diffusion-xl
sdxl
anime
Instructions to use SceneWorks/illustrious-xl-v2-mlx with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use SceneWorks/illustrious-xl-v2-mlx with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir illustrious-xl-v2-mlx SceneWorks/illustrious-xl-v2-mlx
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
| license: creativeml-openrail-m | |
| tags: | |
| - mlx | |
| - apple-silicon | |
| - diffusion | |
| - stable-diffusion-xl | |
| - sdxl | |
| - anime | |
| - text-to-image | |
| base_model: OnomaAIResearch/Illustrious-XL-v2.0 | |
| library_name: mlx-gen | |
| pipeline_tag: text-to-image | |
| # Illustrious-XL v2.0 β MLX pre-quantized tiers | |
| Pre-quantized, packed-load tiers of [OnomaAIResearch/Illustrious-XL-v2.0](https://huggingface.co/OnomaAIResearch/Illustrious-XL-v2.0) | |
| for on-device Apple-Silicon inference with [SceneWorks / `mlx-gen`](https://github.com/SceneWorks/mlx-gen) | |
| (the `sdxl` generator). Each tier is a **self-contained diffusers turnkey snapshot** (U-Net + both | |
| CLIP text encoders + VAE + tokenizers + scheduler + `model_index.json`) that loads directly. | |
| Illustrious-XL v2.0 is the `v2.0-STABLE` snapshot β the last-annealing-phase checkpoint of a | |
| cosine-annealing run, behaviourally distinct from (and more stable than) v1.0. It is architecturally | |
| vanilla SDXL: dual CLIP-L + OpenCLIP-bigG, real CFG + negative prompt, eps prediction, VAE scaling | |
| factor 0.13025, full sdxl-family LoRA support. Danbooru-tag prompting, ~30 steps at guidance 7.0. | |
| ## Resolution note | |
| Unlike v1.0, **v2.0 tends to duplicate the subject in wide frames** β a `1girl, solo` prompt can | |
| render two characters once the frame gets wide (measured: it duplicates at 1344Γ768 and 1536Γ1536, | |
| while tall and square frames stay clean). Prefer square or tall framing; the SceneWorks catalog | |
| omits the widest aspect buckets for this model. | |
| ## Provenance | |
| Upstream ships a **single-file LDM checkpoint** (`Illustrious-XL-v2.0.safetensors`) that the MLX | |
| `sdxl` loader cannot read. These tiers were produced offline with | |
| [`scripts/build_sdxl_turnkey.py`](https://github.com/SceneWorks/SceneWorks/blob/main/scripts/build_sdxl_turnkey.py). | |
| The conversion also normalizes two v2.0 quirks: a stray `position_ids` buffer (dropped) and a BF16 | |
| VAE (kept dense at F32/F16 per tier). Component configs are the canonical SDXL descriptors. | |
| ## Tiers | |
| | dir | precision | what's quantized | | |
| |----------|-----------|------------------| | |
| | `q4/` (default) | group-wise affine Q4, group size 64 | U-Net Linears + both CLIP encoders | | |
| | `q8/` | group-wise affine Q8, group size 64 | U-Net Linears + both CLIP encoders | | |
| | `bf16/` | dense (f16 source mirror) | nothing | | |
| The **VAE stays dense in every tier**. Convolutions, GroupNorms, and the CLIP token/position | |
| embeddings also stay dense; only the true Linear projections are packed. Quantization is | |
| byte-identical to `mlx-gen`'s load-time `nn.quantize` (bf16 cast, group 64). | |
| ## License | |
| CreativeML OpenRAIL-M, per the upstream model card. Commercial use OK, ungated; behavioral-use | |
| restrictions apply. NOTE this differs from v1.0's SDXL (OpenRAIL++) license. | |