Document the mixed-precision q8dit builds
Browse files
README.md
CHANGED
|
@@ -1,45 +1,71 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: mit
|
| 3 |
-
base_model:
|
| 4 |
-
- ACE-Step/acestep-v15-xl-turbo
|
| 5 |
-
- ACE-Step/acestep-v15-xl-sft
|
| 6 |
-
pipeline_tag: text-to-audio
|
| 7 |
-
tags:
|
| 8 |
-
- gguf
|
| 9 |
-
- ace-step
|
| 10 |
-
- text-to-music
|
| 11 |
-
- audio.cpp
|
| 12 |
-
---
|
| 13 |
-
|
| 14 |
# audio.cpp GGUF
|
| 15 |
|
| 16 |
GGUF conversions of music and speech models for
|
| 17 |
[audio.cpp](https://github.com/0xShug0/audio.cpp), the ggml-based native audio
|
| 18 |
inference framework.
|
| 19 |
|
| 20 |
-
## ACE-Step 1.5 XL
|
| 21 |
|
| 22 |
| File | Size | Package | Upstream |
|
| 23 |
|---|---:|---|---|
|
| 24 |
-
| `ACE-Step1.5-GGUF/xl-turbo/ace-step-1.5-xl-turbo-bf16.gguf` | 14.2
|
| 25 |
-
| `ACE-Step1.5-GGUF/xl-sft/ace-step-1.5-xl-sft-bf16.gguf` | 14.2
|
|
|
|
|
|
|
| 26 |
|
| 27 |
The XL DiT is the larger ACE-Step 1.5 transformer: 32 layers of 2560 against
|
| 28 |
turbo's 24 of 2048, with 32 attention heads of 128. Each file is self-contained
|
| 29 |
the way audio.cpp's other ACE-Step GGUFs are — XL DiT, planner LM, text encoder
|
| 30 |
-
and VAE in one file — so
|
| 31 |
|
| 32 |
XL Turbo is guidance-distilled and ignores `guidance_scale`; XL SFT takes the
|
| 33 |
-
CFG path. Both were converted from the float32 upstream snapshots
|
| 34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
```bash
|
| 39 |
python tools/model_manager_v2.py install ace_step_xl_turbo_bf16
|
| 40 |
```
|
| 41 |
|
| 42 |
-
|
|
|
|
|
|
|
|
|
|
| 43 |
|
| 44 |
The DiT variant is a load option, so name it explicitly:
|
| 45 |
|
|
@@ -50,13 +76,18 @@ audiocpp_cli --task gen --family ace_step --model models/ACE-Step1.5-GGUF/xl-tur
|
|
| 50 |
--load-option ace_step.dit_model_path=acestep-v15-xl-turbo --out song.wav
|
| 51 |
```
|
| 52 |
|
| 53 |
-
|
| 54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
|
| 56 |
XL support landed in audio.cpp via
|
| 57 |
[PR #235](https://github.com/0xShug0/audio.cpp/pull/235); see
|
| 58 |
`docs/models/ace_step.md` there for the full option reference and for rebuilding
|
| 59 |
-
|
| 60 |
|
| 61 |
Weights are MIT-licensed by ACE-Step; this repository only redistributes them in
|
| 62 |
a different container format.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
# audio.cpp GGUF
|
| 2 |
|
| 3 |
GGUF conversions of music and speech models for
|
| 4 |
[audio.cpp](https://github.com/0xShug0/audio.cpp), the ggml-based native audio
|
| 5 |
inference framework.
|
| 6 |
|
| 7 |
+
## ACE-Step 1.5 XL
|
| 8 |
|
| 9 |
| File | Size | Package | Upstream |
|
| 10 |
|---|---:|---|---|
|
| 11 |
+
| `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](https://huggingface.co/ACE-Step/acestep-v15-xl-turbo) |
|
| 12 |
+
| `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](https://huggingface.co/ACE-Step/acestep-v15-xl-sft) |
|
| 13 |
+
| `ACE-Step1.5-GGUF/xl-turbo-q8dit/ace-step-1.5-xl-turbo-q8dit.gguf` | 9.97 GiB | *(no package row yet)* | as above |
|
| 14 |
+
| `ACE-Step1.5-GGUF/xl-sft-q8dit/ace-step-1.5-xl-sft-q8dit.gguf` | 9.97 GiB | *(no package row yet)* | as above |
|
| 15 |
|
| 16 |
The XL DiT is the larger ACE-Step 1.5 transformer: 32 layers of 2560 against
|
| 17 |
turbo's 24 of 2048, with 32 attention heads of 128. Each file is self-contained
|
| 18 |
the way audio.cpp's other ACE-Step GGUFs are — XL DiT, planner LM, text encoder
|
| 19 |
+
and VAE in one file — so none of them needs another download.
|
| 20 |
|
| 21 |
XL Turbo is guidance-distilled and ignores `guidance_scale`; XL SFT takes the
|
| 22 |
+
CFG path. Both were converted from the float32 upstream snapshots.
|
| 23 |
+
|
| 24 |
+
## The `q8dit` builds
|
| 25 |
+
|
| 26 |
+
`ace_step` is graded `No (planner sampling can fail)` for q8_0 in audio.cpp's
|
| 27 |
+
[gguf.md](https://github.com/0xShug0/audio.cpp/blob/main/docs/gguf.md#support-and-test-status),
|
| 28 |
+
and that grade is about the **planner LM**, not the DiT. The `q8dit` files
|
| 29 |
+
quantise the DiT to q8_0 and keep the planner LM, text encoder and VAE at bf16:
|
| 30 |
+
|
| 31 |
+
```bash
|
| 32 |
+
audiocpp_gguf ... \
|
| 33 |
+
--keep-type "lm_weights*=bf16" \
|
| 34 |
+
--keep-type "text_encoder_weights*=bf16" \
|
| 35 |
+
--keep-type "vae_weights*=bf16" \
|
| 36 |
+
--keep-type "dit_xl_turbo_silence_latent*=bf16" \
|
| 37 |
+
--type q8_0 --output ace-step-1.5-xl-turbo-q8dit.gguf
|
| 38 |
+
```
|
| 39 |
+
|
| 40 |
+
Measured on an RTX 5090 (CUDA), against the bf16 file at the same prompt and
|
| 41 |
+
seed:
|
| 42 |
|
| 43 |
+
| | size | 20 s of audio | RTF | waveform correlation vs bf16 |
|
| 44 |
+
|---|---:|---:|---:|---:|
|
| 45 |
+
| XL Turbo bf16 | 14.2 GiB | 14.2 s | 0.71 | reference |
|
| 46 |
+
| XL Turbo q8dit | 9.97 GiB | 9.3 s | 0.46 | **0.989** |
|
| 47 |
+
| XL Turbo, everything q8_0 | 8.36 GiB | 8.2 s | 0.41 | 0.094 |
|
| 48 |
+
|
| 49 |
+
Every build is deterministic at a fixed seed (run-to-run correlation 1.0000), so
|
| 50 |
+
the last column isolates what quantisation changes. On a sung 40 s take the
|
| 51 |
+
q8dit build scores **0.997** for XL Turbo and **0.999** for XL SFT, and an ASR
|
| 52 |
+
pass over both returns the same lyric line. A fully quantised build returns a
|
| 53 |
+
different song from the same seed — it plays, it just isn't the same model.
|
| 54 |
+
|
| 55 |
+
Validated on three prompts on one machine. Treat these as a preview: they are
|
| 56 |
+
not covered by audio.cpp's path-test matrix, and there is no package row for
|
| 57 |
+
them yet, so install them by hand.
|
| 58 |
+
|
| 59 |
+
## Install
|
| 60 |
|
| 61 |
```bash
|
| 62 |
python tools/model_manager_v2.py install ace_step_xl_turbo_bf16
|
| 63 |
```
|
| 64 |
|
| 65 |
+
The `q8dit` files have no package id yet — download one and point `--model` at
|
| 66 |
+
its directory.
|
| 67 |
+
|
| 68 |
+
## Run
|
| 69 |
|
| 70 |
The DiT variant is a load option, so name it explicitly:
|
| 71 |
|
|
|
|
| 76 |
--load-option ace_step.dit_model_path=acestep-v15-xl-turbo --out song.wav
|
| 77 |
```
|
| 78 |
|
| 79 |
+
For sung vocals, pass the lyrics *and* a language, and give the DiT more steps
|
| 80 |
+
than the turbo default:
|
| 81 |
+
|
| 82 |
+
```bash
|
| 83 |
+
--lyrics "[verse]
|
| 84 |
+
City lights are falling slow" --language en --num-inference-steps 24
|
| 85 |
+
```
|
| 86 |
|
| 87 |
XL support landed in audio.cpp via
|
| 88 |
[PR #235](https://github.com/0xShug0/audio.cpp/pull/235); see
|
| 89 |
`docs/models/ace_step.md` there for the full option reference and for rebuilding
|
| 90 |
+
these files yourself.
|
| 91 |
|
| 92 |
Weights are MIT-licensed by ACE-Step; this repository only redistributes them in
|
| 93 |
a different container format.
|