audio.cpp GGUF
GGUF conversions of music and speech models for audio.cpp, the ggml-based native audio inference framework.
ACE-Step 1.5 XL
| File | Size | Package | Upstream |
|---|---|---|---|
ACE-Step1.5-GGUF/xl-turbo/ace-step-1.5-xl-turbo-bf16.gguf |
14.2 GiB | ace_step_xl_turbo_bf16 |
acestep-v15-xl-turbo |
ACE-Step1.5-GGUF/xl-sft/ace-step-1.5-xl-sft-bf16.gguf |
14.2 GiB | ace_step_xl_sft_bf16 |
acestep-v15-xl-sft |
ACE-Step1.5-GGUF/xl-turbo-q8dit/ace-step-1.5-xl-turbo-q8dit.gguf |
9.97 GiB | ace_step_xl_turbo_q8dit * |
as above |
ACE-Step1.5-GGUF/xl-sft-q8dit/ace-step-1.5-xl-sft-q8dit.gguf |
9.97 GiB | ace_step_xl_sft_q8dit * |
as above |
* proposed in audio.cpp#464; until that lands, download the file and point --model at its directory.
The XL DiT is the larger ACE-Step 1.5 transformer: 32 layers of 2560 against turbo's 24 of 2048, with 32 attention heads of 128. Each file is self-contained the way audio.cpp's other ACE-Step GGUFs are โ XL DiT, planner LM, text encoder and VAE in one file โ so none of them needs another download.
XL Turbo is guidance-distilled and ignores guidance_scale; XL SFT takes the
CFG path. Both were converted from the float32 upstream snapshots.
The q8dit builds
ace_step is graded No (planner sampling can fail) for q8_0 in audio.cpp's
gguf.md,
and that grade is about the planner LM, not the DiT. The q8dit files
quantise the DiT to q8_0 and keep the planner LM, text encoder and VAE at bf16:
audiocpp_gguf ... \
--keep-type "lm_weights*=bf16" \
--keep-type "text_encoder_weights*=bf16" \
--keep-type "vae_weights*=bf16" \
--keep-type "dit_xl_turbo_silence_latent*=bf16" \
--type q8_0 --output ace-step-1.5-xl-turbo-q8dit.gguf
Measured on an RTX 5090 (CUDA), against the bf16 file at the same prompt and seed:
| size | 20 s of audio | RTF | waveform correlation vs bf16 | |
|---|---|---|---|---|
| XL Turbo bf16 | 14.2 GiB | 14.2 s | 0.71 | reference |
| XL Turbo q8dit | 9.97 GiB | 9.3 s | 0.46 | 0.989 |
| XL Turbo, everything q8_0 | 8.36 GiB | 8.2 s | 0.41 | 0.094 |
Every build is deterministic at a fixed seed (run-to-run correlation 1.0000), so the last column isolates what quantisation changes. On a sung 40 s take the q8dit build scores 0.997 for XL Turbo and 0.999 for XL SFT, and an ASR pass over both returns the same lyric line. A fully quantised build returns a different song from the same seed โ it plays, it just isn't the same model.
Validated on three prompts on one machine. Treat these as a preview: they are not covered by audio.cpp's path-test matrix.
Install
python tools/model_manager_v2.py install ace_step_xl_turbo_bf16
The q8dit ids arrive with audio.cpp#464;
until then, download the file and point --model at its directory.
Run
The DiT variant is a load option, so name it explicitly:
audiocpp_cli --task gen --family ace_step --model models/ACE-Step1.5-GGUF/xl-turbo \
--backend cuda --task-route text2music \
--text "warm lo-fi hip hop with a soft rhodes piano" --duration-seconds 60 \
--load-option ace_step.dit_model_path=acestep-v15-xl-turbo --out song.wav
For sung vocals, pass the lyrics and a language, and give the DiT more steps than the turbo default:
--lyrics "[verse]
City lights are falling slow" --language en --num-inference-steps 24
XL support landed in audio.cpp via
PR #235; see
docs/models/ace_step.md there for the full option reference and for rebuilding
these files yourself.
Weights are MIT-licensed by ACE-Step; this repository only redistributes them in a different container format.
- Downloads last month
- 30,884
16-bit
Model tree for CaptainArni/audio.cpp-gguf
Base model
ACE-Step/acestep-v15-xl-sft