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
GGUF
Hardware compatibility
Log In to add your hardware

16-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for CaptainArni/audio.cpp-gguf

Quantized
(1)
this model