Two new audio-generation stacks alongside the TTS slate: ace-step :8210 — Apache 2.0 music generation foundation model (hybrid diffusion + LLM). Lyric-aware multi-minute songs. ~10-12 GB VRAM during inference, A6000-pinned. Custom Dockerfile patches upstream's torch/cu126 resolution bug (--extra-index-url cu126 was falling back to pypi-default cu13 wheels, mismatching torchvision). stable-audio-open :8211 — Stability AI 1.21B latent-diffusion SFX + ambience. Up to 47s clips at 44.1 kHz. ~6 GB VRAM in fp16, A6000-pinned. Custom FastAPI shim around diffusers' StableAudioPipeline (no upstream HTTP server). Dockerfile pins torchsde explicitly — diffusers doesn't pull it as a hard dep but CosineDPMSolverMultistepScheduler needs it.
1.8 KiB
stable-audio-open
Stability AI's Stable Audio Open 1.0 — text-to-audio latent diffusion.
Strong on SFX, foley, ambience, short loops. Not a music model — it
does not generate intelligible vocals or structured songs (use
ace-step for that).
| host | irv-ml1 |
| port | 8211 |
| GPU | A6000 (device_ids: ["1"]) |
| VRAM | ~6 GB in fp16 |
| max clip | 47 s at 44.1 kHz |
| upstream | https://github.com/Stability-AI/stable-audio-tools |
| model | stabilityai/stable-audio-open-1.0 (gated) |
| license | Stability AI Community (non-commercial / personal / research) |
API surface
server.py (custom FastAPI shim) exposes:
GET /health— returns 200 once the model is loaded.POST /v1/audio/sfx— returns aaudio/wavblob.
{
"prompt": "a vintage typewriter clacking in a quiet room",
"negative_prompt": "Low quality.", // optional, default "Low quality."
"duration": 10.0, // seconds, 0.5 – 47
"steps": 100, // 10 – 300, more = better quality
"seed": 42, // optional
"cfg_scale": 7.0 // 0 – 20
}
Why a custom shim: there's no upstream Docker image and no upstream
HTTP server for Stable Audio Open. Diffusers exposes
StableAudioPipeline cleanly — the shim is ~70 lines.
Deploy
scripts/elway irv-ml1 --playbook playbooks/deploy-stable-audio-open.yaml
Pre-deploy: visit https://huggingface.co/stabilityai/stable-audio-open-1.0
once and accept the Community License (HF token alone is not enough —
the gate is per-model). Then put the token in SAO_HF_TOKEN in .env
on the host.
Tunables
See .env.example — copy to .env on the host (lives at
/opt/docker/compose/stable-audio-open/.env, gitignored).