Qwen-Image-2.1-Turbo MLX-Serve 8-bit

8-bit pack of Qwen/Qwen-Image-2.1-Turbo for mlx-serve: 17.7 GB, for 32 GB Macs. The same text rendering as bf16 at the same seed.

sample

Run it

Download MLX-Serve.app, open the Image tab, and pick Qwen-Image 2.1 Turbo 8-bit from the model menu. It downloads with a progress bar and generates in the same window. No terminal, nothing to configure.

Prefer Homebrew? It is a third-party tap, so tap it first:

brew tap ddalcu/mlx-serve https://github.com/ddalcu/mlx-serve
brew trust ddalcu/mlx-serve
brew install --cask mlx-serve

Driving it from code instead? The app runs the server on http://localhost:11234:

curl localhost:11234/v1/images/generations -H 'Content-Type: application/json' \
  -d '{"model":"ddalcu/Qwen-Image-2.1-Turbo-MLX-Serve-8bit","prompt":"a red fox in fresh snow","size":"1024x1024"}'

8 steps, always: the pack's own sampling schedule (sample_sigmas in model_index.json) decides, and a requested steps is ignored, as in diffusers. Needs mlx-serve 26.10.2 or newer; an older build runs the base model's 40-step schedule on it. Guidance is 1 by default; guidance_scale above 1 with a negative_prompt runs real CFG (two forwards per step). image + strength does image-to-image, and "mode":"edit" with an image (plus up to 9 ref_images) edits it from the prompt.

Measured (M5 Ultra, 256 GB)

Pack 1024x1024 text-to-image Instruction edit, 1 reference Peak memory
bf16 (Qwen/Qwen-Image-2.1-Turbo) 7.2 s 11.2 s 31.4 GB
8-bit 7.8 s 12.5 s 19.3 GB
4-bit 8.8 s 11.9 s 12.8 GB

Per request with the model loaded, 8 steps; peak is MLX's own across the request with everything resident. Quantizing saves memory, not time, on a Mac this size. On a Mac the full set would crowd, mlx-serve loads the text encoder per request and frees it before the denoise, so the resident set is the DiT and VAE.

mlx-serve

A native Zig server for Apple Silicon. No Python, no cloud, no Electron. One 9 MB binary.

  • One server, every modality. Chat, images, video, music, speech with voice cloning, and 3D, all running natively on MLX.
  • Points at what you already use. OpenAI- and Anthropic-compatible APIs on http://localhost:11234, so Claude Code, the OpenAI SDK, Continue, Cursor and Open WebUI just work.
  • Any LLM, not just these. Every MLX model and every GGUF on Hugging Face, with speculative decoding built in.
  • MLX-Serve.app included. Signed macOS menu-bar app: chat, agent mode with MCP tools, model downloads, and every generator above, no terminal needed.

mlxserve.com · GitHub

If it is useful to you, a star on GitHub genuinely helps.

What is in it

The checkpoint's own diffusers layout and key names, with the DiT block linears and the text-encoder layer linears affine-quantized to 8-bit (group 64). Kept dense: the VAE (f32), embed_tokens, norms, and the DiT's small or shared linears. Kept: the Qwen3-VL vision tower, for instruction editing. Dropped: lm_head and the VAE's per-frame time_convs. Built by tests/convert_qwen_image21_weights.py --preset 32gb in the mlx-serve repo.

Qwen is licensed under the Qwen RESEARCH LICENSE AGREEMENT, Copyright (c) 2026 Hangzhou Tongyi Laboratory Technology Co., Ltd. All Rights Reserved. Non-commercial use only: see LICENSE and NOTICE. The original model and weights are by the Qwen team.

Downloads last month
100
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ddalcu/Qwen-Image-2.1-Turbo-MLX-Serve-8bit

Quantized
(36)
this model