Instructions to use ddalcu/ACE-Step-1.5-XL-Turbo-MLX-Serve-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use ddalcu/ACE-Step-1.5-XL-Turbo-MLX-Serve-4bit with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir ACE-Step-1.5-XL-Turbo-MLX-Serve-4bit ddalcu/ACE-Step-1.5-XL-Turbo-MLX-Serve-4bit
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
ACE-Step 1.5 XL Turbo β MLX (4-bit) for mlx-serve
Native Apple Silicon build of ACE-Step 1.5 XL Turbo (4-billion-parameter music-generation DiT, 8-step distilled, no CFG) for mlx-serve. Type a style prompt ("upbeat synthwave with driving bass"), optionally add lyrics, and get an original 48 kHz stereo track β entirely on-device.
Contents (one self-contained bundle, ~4.0 GB)
| File | What |
|---|---|
model.safetensors |
32-layer DiT decoder + condition encoder + silence latent. Large linears 4-bit affine (group 64); the timestep-embedding family stays 8-bit β its adaLN scale/shift modulates every layer and few-step turbo models compound modulation error; norms/convs/small projections bf16. Conv layouts pre-swapped to MLX [out, K, in]. |
vae.safetensors |
AutoencoderOobleck audio VAE (48 kHz stereo, hop 1920 β 25 Hz latents). Weight-norm fused, bf16 (Snake Ξ±/Ξ² fp32) β audio VAEs are precision-critical, so no quantization here. |
text_encoder/ |
Qwen3-Embedding-0.6B verbatim (bf16, standard qwen3) β encodes the style prompt; its embedding table encodes lyrics. |
config.json |
{"model_type": "acestep", "quant": "4bit", ...} β the marker mlx-serve's audio engine dispatches on. |
No external dependencies β text encoder and VAE ride in the bundle. mlx-serve infers each tensor's (bits, group) from packed geometry, so this mixed 4/8-bit checkpoint loads through the same code path as the 8-bit build.
Use
Server API:
mlx-serve --serve --model-dir ~/.mlx-serve/models
curl -X POST http://127.0.0.1:8080/v1/audio/music-generations \
-H 'Content-Type: application/json' \
-d '{"model": "ACE-Step-1.5-XL-Turbo-MLX-Serve-4bit",
"prompt": "upbeat synthwave with driving bass, dreamy pads",
"duration_seconds": 30, "seed": 7}' \
-o track.wav
Fields: prompt (required), lyrics (empty β instrumental),
vocal_language, bpm (30β300), keyscale (e.g. "F# minor"),
timesignature (2/3/4/6), duration_seconds (10β600), seed, stream
(SSE progress: encode β 8 diffusion steps β chunked VAE decode).
Conversion & fidelity
Converted by mlx-serve's tests/convert_acestep_weights.py --bits 4 from the
fp32 source checkpoint. The full pipeline (Qwen3 text encoding, condition
encoders, the 32-layer DiT, the flow-match sampler with DCW correction, and
the Oobleck VAE) is re-implemented natively in Zig on MLX and validated
against the fp32 PyTorch reference with cosine-similarity oracles (measured
on the 8-bit build; the 4-bit build shares every code path and differs only
in weight precision). Same-seed A/B clips against the 8-bit build show
matching loudness and spectral balance; expect slightly softer detail than
8-bit, most audible on dense vocal mixes.
License & credits
MIT (see LICENSE). Original model by ACE Studio and StepFun β trained on licensed, royalty-free, and synthetic data; generated music is commercially usable per the upstream project. Text encoder: Qwen3-Embedding-0.6B (Qwen team, Apache 2.0).
- Downloads last month
- 109
Quantized
Model tree for ddalcu/ACE-Step-1.5-XL-Turbo-MLX-Serve-4bit
Base model
ACE-Step/acestep-v15-xl-turbo