Files
esh-pfi-infrastructure/stacks/stable-audio-open/compose.yaml
T
vh 4a4c09177f ace-step + stable-audio-open: deploy music + SFX generation to irv-ml1
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.
2026-04-28 09:11:23 -07:00

62 lines
2.6 KiB
YAML

# Stable Audio Open 1.0 — Stability AI's open-weight latent-diffusion
# SFX/ambience generator. 1.21B params, ~4-6 GB VRAM in fp16, up to
# 47 s clips at 44.1 kHz. Strong on text-aligned sound effects, foley,
# field-recording-style ambience. NOT a music model — it does not
# generate intelligible vocals or structured songs (use ACE-Step for
# that).
#
# LICENSE: Stability AI Community License. Personal / research use is
# free; commercial use requires a separate license from Stability
# (https://stability.ai/license). Same posture we already accepted
# for Voxtral.
#
# No upstream Docker image — we ship a custom Dockerfile + a small
# FastAPI shim (server.py) that wraps diffusers' StableAudioPipeline
# and exposes POST /v1/audio/sfx.
#
# All tunables live in .env — edit that, not this file.
services:
stable-audio-open:
image: local/stable-audio-open:${SAO_TAG}
build:
# Build context is the compose dir on the host — the playbook
# uploads server.py + Dockerfile alongside this compose.yaml.
context: .
dockerfile: Dockerfile
container_name: stable-audio-open
restart: unless-stopped
runtime: nvidia
ports:
- "${SAO_BIND:-0.0.0.0}:${SAO_PORT}:8000"
environment:
- NVIDIA_VISIBLE_DEVICES=${SAO_GPU_DEVICES:-1}
- SAO_MODEL=${SAO_MODEL:-stabilityai/stable-audio-open-1.0}
- HF_HOME=/app/hf_cache
# Model is gated on HuggingFace (you must accept the Stability
# Community License once on the model page before the token can
# download it). Set SAO_HF_TOKEN in .env. Without this, the
# first model download 401s and the container crashloops.
- HF_TOKEN=${SAO_HF_TOKEN}
volumes:
- ${SAO_CACHE_DIR}:/app/hf_cache
- ${SAO_OUTPUTS_DIR}:/app/outputs
healthcheck:
# /health is set by server.py — returns 200 once FastAPI is up
# AND the pipeline finished loading (lifespan blocks startup
# until the model is in VRAM).
test: ["CMD-SHELL", "python -c \"import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:8000/health', timeout=5).status==200 else 1)\""]
interval: 30s
timeout: 10s
retries: 3
# First boot pulls the model (~6 GB) into HF cache + loads to
# VRAM. Cold start ~3-5 min on a fast pipe; subsequent starts
# are ~30 s.
start_period: 600s
labels:
- homepage.group=AI Systems
- homepage.name=Stable Audio Open
- homepage.icon=mdi-waveform
- homepage.description=Diffusion SFX/ambience generator — up to 47s at 44.1 kHz (irv-ml1)
- homepage.href=http://10.100.79.3:${SAO_PORT}