Downloads · 30 days
0
emb1ter/ACE-Step-v1.5-XL-Turbo-ONNX-WebGPU
ACE-Step-v1.5-XL-Turbo-ONNX-WebGPU is a text-to-audio model from emb1ter. Use it for the text-to-audio task on the model card, and read the license before you ship it in a product. It is set up for onnxruntime. The card lists the license as mit.
Experimental browser-oriented INT4 and INT8 ONNX exports of the official ACE-Step/acestep-v15-xl-turbo 4.169B diffusion transformer, its checkpoint-specific condition encoder, and the official Oobleck VAE decoder upca…
Downloads · 30 days
0
Access
Public
Updated Aug 3, 2026
Repo size
9.1 GB
Likes
0
Public
Click a slice to open those files.
.02.6 GB · 28%
From the Hugging Face model README
Experimental browser-oriented INT4 and INT8 ONNX exports of the official
ACE-Step/acestep-v15-xl-turbo
4.169B diffusion transformer, its checkpoint-specific condition encoder, and
the official Oobleck VAE decoder upcast directly from BF16 to FP32.
The q4 files are the standard profile and the q8 files are the
high-precision profile of the
ai-music-js browser library.
Large external data is split for streaming into browser Origin Private File
System storage and for ONNX Runtime Web session creation. The JavaScript
package, Worker, ONNX Runtime Web WASM runtime, tokenizer, text encoder, lyric
embedding, semantic-code detokenizer, and silence conditioning asset are not
duplicated in this repository.
This is an unofficial, experimental conversion. It is not affiliated with or endorsed by the ACE-Step authors.
| File | Bytes | SHA-256 |
|---|---|---|
condition_encoder_xl_turbo_q4.onnx | 2,136,693 | 014fbbeb20670cf794aa06ffaa5277bb315e3fc67510455e05ea64e141c4bdc4 |
condition_encoder_xl_turbo_q4.onnx.data | 347,366,896 | bb920790b5f3fbe971b0ca0b3952ddbbbb35cda2be63a9d2ccdf07799b1887ef |
dit_decoder_xl_turbo_q4.onnx | 9,017,416 | d1eeb43e3179330c659973063aad0f2b4e2fccf50ecdc98867b1d8e1b2fb9eb6 |
dit_decoder_xl_turbo_q4.onnx.data.0 | 949,514,240 | 4c99cf781a99a375864a55826e86bab51e58cb2e779023b37f8d397ed38d307f |
dit_decoder_xl_turbo_q4.onnx.data.1 | 942,622,720 | b004bb039425f3078812712cf5f906c878adaa44747fb507f3d3cb039080dd68 |
dit_decoder_xl_turbo_q4.onnx.data.2 | 811,806,720 | c838939bd8f54996f2a3fc7d1dd6bc079249d1acb00f6b789fce4953ce5965b6 |
condition_encoder_xl_turbo_q8.onnx | 2,137,573 | f933f30cd87e4030b1d95b36dc92a662e13e682ae2076b3578d077808edebbaa |
condition_encoder_xl_turbo_q8.onnx.data.0 | 656,270,832 | cc6eafe5803de0545ea4ad54fe23dd7c9145eae69e35de72d060dcf1e254a93d |
dit_decoder_xl_turbo_q8.onnx | 9,026,143 | 653df670bd64795997c27d514253f36611f1f80f3212301bfe75e767f117d9f9 |
dit_decoder_xl_turbo_q8.onnx.data.0 | 948,725,760 | 056d247a0c005bf5d364c09c454a7daa121c3299140122cf9445ed48510ce7ca |
dit_decoder_xl_turbo_q8.onnx.data.1 | 945,377,280 | f11eb6bf28bd5415076f278697182012ea552334726f90a6e08e1912f12c2b4c |
dit_decoder_xl_turbo_q8.onnx.data.2 | 932,659,200 | 00550dbe002c49fd7bd9f49ab1c8596f524ddc6cb3dc3b8ebd7233d7370a6625 |
dit_decoder_xl_turbo_q8.onnx.data.3 | 932,659,200 | b2b6af4149eb18b43627ea2d6e121ee71fb82bb43ec4bad56d77439bfd127e51 |
dit_decoder_xl_turbo_q8.onnx.data.4 | 932,659,200 | 6a264fc667bba0225b47fa5af98d38545c18ebf11e330fc8ce3fe4700c61f2c9 |
dit_decoder_xl_turbo_q8.onnx.data.5 | 80,547,840 | ce908e20fca3d0f9f60a35b6835e4ea3b4cea27ede840f1cba6a6a8ec41471cc |
vae_decoder_fp32.onnx | 1,076,526 | 1e0dcb19857c62ce9a3e287388e01c90a3e45ba3288e8530cb9359c0df7be070 |
vae_decoder_fp32.onnx.data | 337,707,008 | a76524b7b95fc57762f3c114e7af6b93b6b8430f9e59e978ebaefb1b1dfb9008 |
XL-specific download:
The DiT data files are initializer-aligned, sub-1 GB chunks. Larger external data files exceeded Chromium's single-buffer path during ONNX Runtime Web session creation. Repacking only changed external-data locations and offsets; it did not change tensor values.
npm install ai-music-js
import { AceStepWebGpu } from "ai-music-js";
const ace = new AceStepWebGpu();
const result = await ace.generate({
prompt:
"Warm analog synthwave instrumental, steady electronic drums, pulsing bass, cinematic pads, memorable lead melody, polished studio mix",
audioQuality: "high",
seed: 42,
durationSeconds: 10,
});
const audio = new Audio(URL.createObjectURL(result.wav));
await audio.play();
The URL above is pinned to the verified model-file commit. Use main only
when you intentionally want future artifact revisions.
The standard complete browser model set is approximately 5.626 GB. Shared model and support assets are resolved by the npm library from pinned upstream Hugging Face revisions. The intended runtime is current desktop Chrome or Edge with WebGPU. The FP32 VAE runs on strict WebGPU first and restarts all chunks on WASM only when compatibility fallback is enabled and WebGPU fails.
6d53286b9183b720b2b86f338a06b2a614836871shreyask/ACE-Step-v1.5-ONNX@bdabfb5684fd70fcc76f98cbb51bb9ebc47ee342MatMulNBits, block size 64,
accuracy_level=1MatMulNBits, block size 64,
accuracy_level=1AutoencoderOobleck BF16 checkpoint weights upcast
directly to FP32; dynamic latent length, opset 18The condition and DiT graphs are fresh checkpoint-specific exports. The
unofficial shreyask/ACE-Step-v1.5-ONNX repository supplied the experimental
starting point and shared browser assets, but its published Turbo DiT uses the
smaller 24-layer, hidden-size-2048 architecture rather than XL.
The complete condition → eight-step DiT → VAE chains were compared with the
official Python implementation using the same prompt, seed 42, learned
silence latent, and deterministic browser-compatible noise generator.
| Profile | Duration | Condition cosine | Final latent cosine | Waveform cosine |
|---|---|---|---|---|
| INT8 high precision | 10 seconds | 0.999983 | 0.999882 | 0.999490 |
| INT4 standard | 10 seconds | 0.994970 | 0.960302 | 0.867693 |
| INT4 standard | 20 seconds | 0.994971 | 0.877853 | 0.718767 |
The INT8 first DiT velocity cosine was 0.999859 and its mean absolute error
was 0.014079. The resulting ten-second waveform passed the numerical parity
threshold. The 20-second INT4 run remained finite and non-collapsed, but its
divergence compounds with duration and exceeds the chosen parity gate.
Successful model loading alone is not evidence of successful music
generation. A browser WebGPU listening run of the new INT8 profile remains an
acceptance gate.
The corresponding FP32 ONNX exports matched the Python implementation closely:
0.000001821.00.000310880.99999999971.00.00001886The FP32 VAE was separately qualified in desktop Chromium against the same
FP32 graph on pthread/WASM. Strict WebGPU was 8.12 times faster, with waveform
cosine 1.0000000000, maximum absolute difference 0.00002072, and mean
absolute difference 0.00000049.
Both profiles use com.microsoft:MatMulNBits. Static inspection and native
ONNX Runtime validation found no known strict-WebGPU blocker in either fresh
XL graph. Each INT8 external-data shard is smaller than 1 GB.
The shared upstream Qwen3 graph contains ai.onnx:IsNaN, so the browser
pipeline requests WebGPU with WASM compatibility fallback. The former FP16
VAE WebGPU path is rejected because it produced waveform cosine 0.1748364475
against WASM. The FP32 VAE replaces it and is browser-qualified on WebGPU.
Unsupported: vocals, planning LM, reference audio, source audio, cover/repaint/lego/extract, audio-code hints, CFG, base/SFT checkpoints, DCW, Heun/SDE samplers, durations beyond 120 seconds, tiled long-form generation, batching, LoRA, mobile, Safari, and Firefox.
Peak browser memory and browser wall time vary substantially by browser, adapter, duration, and cache state and are not represented by the native validation timings.
ACE-Step/acestep-v15-xl-turboshreyask/ACE-Step-v1.5-ONNXReview the original repositories and their licenses before redistribution or commercial use.