Install dependencies:
uv sync --extra devRun the server:
./scripts/run_server.shCheck:
curl http://127.0.0.1:5178/healthMock mode is the default. It writes placeholder WAV files and metadata so germ and the dashboard can be tested before model downloads.
curl -X POST http://127.0.0.1:5178/generate \
-H "content-type: application/json" \
-d '{"provider":"mock","model":"mock-sine","prompt":"dry wood impact","duration":2}'./scripts/install_python_provider.shThis clones or reuses the official Stable Audio 3 repository under vendor/ unless
GERM_OFFICIAL_REPO_DIR is set. GERMINATOR_OFFICIAL_REPO_DIR remains a legacy
fallback. It runs:
uv sync --extra ui --extra lorainside the official repo and installs this server with the optional Python provider.
Launch the official Gradio UI for manual testing:
./scripts/run_official_gradio.sh small-sfx
./scripts/run_official_gradio.sh small-music
./scripts/run_official_gradio.sh mediumMedium may require CUDA and Flash Attention depending on platform.
The Stable Audio 3 Python provider uses gated Hugging Face model repositories. The
hf CLI can be installed and still fail to download weights if you are not logged
in or have not accepted the Stability AI model terms.
-
Open the model page and accept the terms for the model you want:
-
Log in from this project environment:
uv run hf auth login
-
Download the exact checkpoint. Stable Audio's loader also downloads on first use, but an explicit download makes storage and access failures visible before a generation job:
uv run hf download stabilityai/stable-audio-3-small-sfx uv run hf download stabilityai/stable-audio-3-small-music uv run hf download stabilityai/stable-audio-3-medium
Download only the models you intend to use. The Hugging Face API currently reports approximately 3.49 GB for each Small post-trained repository and 10.45 GB for Medium.
-
Start the server and verify access:
./launch_germ.command curl "http://127.0.0.1:5178/huggingface/status?check_models=true"
You can run the same check from the dashboard Status section with HF Check.
The exact model page controls. At the time of this public-alpha release, the three pages are gated and identify the Stability AI Community License plus additional component terms. GERM cannot accept those terms for an operator.
The separate installer can prepare GERM or both main applications, show the combined disk and RAM plan, authenticate Hugging Face, download only selected models, and leave the gateways ready to start:
curl -fsSL https://raw.githubusercontent.com/sonicfieldlabs/listening-stack/main/install.sh | bashIt keeps model caches, state, logs, outputs, and local paths outside this Git repository.
./scripts/install_mlx_provider.shThis clones or reuses the official repository, enters optimized/mlx, runs:
./install.shand performs a short test render:
./sa3 --prompt "short dry wood impact" --dit sm-sfx --decoder same-s --seconds 2 --out output/test.wavIf the repo lives elsewhere:
export GERM_MLX_REPO_DIR=/path/to/stable-audio-3Long local renders are bounded by GERM_PROVIDER_TIMEOUT_SECONDS, which
defaults to 1800 seconds.
The optimized dashboard is served by the FastAPI sidecar:
./scripts/run_dashboard.shOpen:
http://127.0.0.1:5178/dashboard
This dashboard is plain HTML/CSS/JavaScript, not Gradio. Gradio is only used for the
optional official Stability demo through scripts/run_official_gradio.sh.
Open:
http://127.0.0.1:5178/dashboard
In the Status tab:
- Click
Diagnostics. - Click
HF Checkif you plan to use the Python provider. - Run
mock+mock-sinefirst. - Install the recommended real provider from diagnostics.
- Restart
./launch_germ.command. - Select the real provider/model and click
Run Model Test.
The model is actually functioning locally when the test writes a WAV and metadata
with status: done.