Views
No views yet
| Component | Format | Notes |
|---|---|---|
| DiT (Small-Music, 50M) | INT4 | Diffusion Transformer denoiser, group-size 64 |
| SAME-S encoder | FP32 | Audio → latents (codec is precision-sensitive — differential attention cancels in FP16) |
| SAME-S decoder | FP32 | Latents → 44.1 kHz stereo waveform |
| T5Gemma text encoder | FP16 | Prompt conditioning |
| File | Size | Format |
|---|---|---|
dit_sm_music/model.safetensors | 256 MB | int4 |
same_s_encoder/model.safetensors | 205 MB | fp32 |
same_s_decoder/model.safetensors | 208 MB | fp32 |
t5gemma/model.safetensors | 541 MB | fp16 |
DiT-Small-Music-* variant is music-specialised; DiT-Small-SFX-* is sound-effects specialised; DiT-Medium-* is the higher-quality general model.stable-audio-3/optimized/mlx. At load time, each (base.weight, base.scales, base.biases) triplet is dequantized via mlx.core.dequantize back to FP16; codec and T5Gemma load as-is.1from huggingface_hub import snapshot_download
2import mlx.core as mx
3
4bundle = snapshot_download("aufklarer/Stable-Audio-3-DiT-Small-Music-MLX-4bit")
5
6def load_component(comp_dir):
7 w = dict(mx.load(f"{comp_dir}/model.safetensors"))
8 bases = {k[:-7] for k in w if k.endswith(".scales")
9 if f"{k[:-7]}.weight" in w and f"{k[:-7]}.biases" in w}
10 out = {}
11 for k, v in w.items():
12 if k.endswith((".scales", ".biases")) and k.rsplit(".", 1)[0] in bases:
13 continue
14 if k.endswith(".weight") and k[:-7] in bases:
15 base = k[:-7]
16 out[k] = mx.dequantize(w[f"{base}.weight"], w[f"{base}.scales"],
17 w[f"{base}.biases"], group_size=64, bits=4)
18 else:
19 out[k] = v
20 return outstable-audio-3/optimized/mlx/models/defs/.