xocialize's picture
Card: per-tier Swift example, the pre-quantised loader line, every tier loads four bundles (planner choices listed)
e765a28 verified
|
Raw History Blame Contribute Delete
3.4 kB
---
library_name: mlx
license: apache-2.0
license_link: https://huggingface.co/Qwen/Qwen3-Embedding-0.6B/blob/main/LICENSE
base_model: Qwen/Qwen3-Embedding-0.6B
pipeline_tag: text-to-audio
tags:
- mlx
- audio
- music
- ace-step
- qwen3
---
# mlx-community/ACE-Step-1.5-text-encoder-bf16
ACE-Step 1.5 text encoder (Qwen3-Embedding-0.6B) — MLX, bf16. Converted from [ACE-Step/Ace-Step1.5](https://huggingface.co/ACE-Step/Ace-Step1.5) @ `19671f4` by the converter of
[xocialize/mlx-ace-step-swift](https://github.com/xocialize/mlx-ace-step-swift) (`Tools/convert/convert.py`, mlx 0.32.4), a full
port of [ace-step/ACE-Step-1.5](https://github.com/ace-step/ACE-Step-1.5) @ `ca1e85f` to Swift-MLX.
## What is in the bundle
The `Qwen3-Embedding-0.6B` checkpoint ACE-Step 1.5 ships as its text encoder (the caption prompt's last hidden states and the
lyric embedding table), in mlx-lm's `model.*` layout with the tokenizer files — the released checkpoint is a bare `Qwen3Model`
that `mlx_lm.convert` cannot read, which is why it is published under the ACE-Step name rather than as a community conversion
of the Qwen repo (a differently laid-out conversion would not load into the package). 310 tensors, bit-equal to the checkpoint.
## Licence
Apache-2.0 (Qwen). Redistributed unmodified beyond the layout conversion; the ACE-Step 1.5 pipeline that consumes it is MIT.
The full notice travels with the bundle as `NOTICE`; `LICENSE` is the MIT text. Nothing in the weights is modified beyond the
layout conversion (key prefix / conv layout / weight-norm folding) — the converter `Tools/convert/convert.py` in
[xocialize/mlx-ace-step-swift](https://github.com/xocialize/mlx-ace-step-swift) is gated bit-equal against upstream's own
`dit_convert.py` / `vae_convert.py` (its `MEASUREMENTS.md` §V1).
## Use
Every tier of the Swift package loads four bundles — the turbo DiT, one planner, the text encoder and the VAE — and this bundle
is one of them. The planner choices: `ACE-Step-1.5-planner-1.7B-8bit` for `.int8` (the default), `-4bit` for `.int4`, `-bf16` for
`.bf16` / `.fp32`, and `ACE-Step-1.5-planner-0.6B-bf16` for the lite planner on any tier. The package,
[xocialize/mlx-ace-step-swift](https://github.com/xocialize/mlx-ace-step-swift), runs ACE-Step 1.5 on Apple Silicon through
[MLX Swift](https://github.com/ml-explore/mlx-swift) and plugs into [MLXEngine](https://github.com/xocialize/mlx-engine-swift) on the
`music` capability (caption + lyrics → a 48 kHz stereo song; reference-audio timbre; cover / repaint / extend of a source clip;
LRC timestamps). The package's `ACEStepConfiguration` names these repos and the engine materialises them; the parity gates
against the upstream oracle (fp32, TF32 off) are recorded in the package's `MEASUREMENTS.md`.
```swift
let engine = MLXServeEngine()
let id = try await engine.register(ACEStepPackage.registration, configuration: ACEStepConfiguration()) // the .int8 default
try await engine.prepare(.music, package: id)
let song = try await engine.run(MusicRequest(caption: "…", lyrics: "[Verse]\n…", durationSeconds: 120, seed: 7), package: id)
```
Upstream: [ACE-Step/Ace-Step1.5](https://huggingface.co/ACE-Step/Ace-Step1.5) @ `19671f4` (weights),
[ace-step/ACE-Step-1.5](https://github.com/ace-step/ACE-Step-1.5) @ `ca1e85f` (code) — ACE Studio + StepFun,
[tech report](https://arxiv.org/abs/2602.00744).