self-hosted/ai
§01·recipe · tts

Foundation-1 on RTX 4060: Structured Music Sample Generation at the 8 GB Floor

ttsintermediate8GB+ VRAMMay 20, 2026
models
tools
prerequisites
  • NVIDIA RTX 4060 (8 GB VRAM) — sits at the model card's recommended floor; headroom is ~1 GB
  • Python 3.10 (3.11+ may fail dependency resolution per the RC fork README)
  • Git, ~3 GB free disk for weights + dependencies

What You'll Build

A local, offline pipeline that turns structured tag prompts (instrument → timbre → FX → key → bars → BPM) into tempo-synced, bar-aligned music loops on your RTX 4060. Foundation-1 is a fine-tune of stabilityai/stable-audio-open-1.0 trained for music-production workflows; the RC Stable Audio Tools fork handles the BPM/bar timing alignment automatically.

Hardware data: RTX 4060 (8 GB VRAM) · ~7 GB VRAM during generation per the HuggingFace model card · See benchmark data

ℹ️ Not a text-to-speech model. Foundation-1 is in our tts vertical because the catalogue groups all audio models together, but it generates one-shot music samples — bar-locked instrumental loops — not speech. It does not synthesize voices, words, or any spoken audio. For speech synthesis on this GPU, see Kokoro, VoxCPM, or OpenAudio S1 Mini instead. Per its own HuggingFace card: "specialized model for music sample generation, not a general-purpose music generator."

⚠️ Tight VRAM — your 8 GB card sits at the model's recommended floor. The HuggingFace card states: "Typical VRAM usage during generation is approximately ~7 GB. For reliable operation, a GPU with at least 8 GB of VRAM is recommended." That leaves roughly 1 GB of headroom on the RTX 4060 — enough to run, but expect to close other GPU-using apps (browser hardware acceleration, OBS, a DAW with GPU plugins) before generation. If you hit OOM, the RC fork ships an optional INT4 low-VRAM mode via TorchAO — see Troubleshooting.

⚠️ Licensing — read before shipping. Foundation-1 weights are released under the Stability AI Community License. The HuggingFace card states the model "is available for non-commercial use or limited commercial use by entities with annual revenues below USD $1M. For revenues exceeding USD $1M, please refer to the repository license file for full terms." If you're a hobbyist or under the $1M threshold you're clear; otherwise contact Stability AI for a commercial license before publishing or selling outputs. (The RC fork code is MIT; the constraint is on the model weights.)

Requirements

ComponentMinimumTested
GPU8 GB VRAM (per HF card)RTX 4060 (8 GB) — at the floor
RAM16 GB system RAM
Storage~3 GB (2.43 GB weights + venv + deps)
Python3.10 (3.11+ may fail SciPy resolution)Python 3.10
PyTorch2.4+ with CUDA 12.1 wheel (default pip install torch is fine on Ada Lovelace sm_89)PyTorch 2.4 (CUDA 12.1)
SoftwareRC Stable Audio Tools fork or ComfyUI custom nodeRC Stable Audio Tools fork

Installation

This recipe follows the canonical workflow recommended on the Foundation-1 model card — the RC Stable Audio Tools fork, which auto-handles BPM/bar timing alignment. For a ComfyUI alternative, see Troubleshooting.

1. Clone the RC Stable Audio Tools fork

git clone https://github.com/RoyalCities/RC-stable-audio-tools.git
cd RC-stable-audio-tools

2. Create a Python 3.10 virtual environment

Linux / macOS:

python3.10 -m venv venv
source venv/bin/activate

Windows:

py -3.10 -m venv venv
venv\Scripts\activate

3. Install stable-audio-tools and the fork

pip install stable-audio-tools
pip install .

4. (Windows only) Force a CUDA torch wheel

Windows venvs sometimes resolve to the CPU-only torch wheel, which makes Gradio fall back to CPU silently. If python -c "import torch; print(torch.cuda.is_available())" prints False, reinstall torch from the CUDA 12.1 channel (the RC fork's documented Windows path; the default works on Ada Lovelace sm_89 — no special Blackwell wheel needed):

pip uninstall -y torch torchvision torchaudio
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

Linux users can usually skip this step — pip install torch resolves to a CUDA build by default.

5. Download Foundation-1 weights

Place both files inside a single subfolder of models/:

mkdir -p models/Foundation-1
cd models/Foundation-1
curl -L -o Foundation_1.safetensors \
  https://huggingface.co/RoyalCities/Foundation-1/resolve/main/Foundation_1.safetensors
curl -L -o model_config.json \
  https://huggingface.co/RoyalCities/Foundation-1/resolve/main/model_config.json
cd ../..

The safetensors file is 2.43 GB (HF Files tab).

Running

Before launching, close other GPU-using apps (a browser with hardware acceleration, OBS, a DAW with GPU plugins) — at the 8 GB floor, idle GPU memory matters.

Launch the Gradio UI, pointing at the Foundation-1 checkpoint and config you just downloaded:

python run_gradio.py \
  --model-config models/Foundation-1/model_config.json \
  --ckpt-path models/Foundation-1/Foundation_1.safetensors

The Gradio interface opens in your browser. Foundation-1 uses a layered tag prompt schema documented on its model card:

[Instrument Family / Sub-Family], [Timbre], [Musical Behavior / Notation], [FX], [Key], [Bars], [BPM]

A working example prompt from the card:

Bass, FM Bass, Medium Delay, Medium Reverb, Low Distortion, Phaser, Sub Bass,
Bass, Upper Mids, Acid, Gritty, Wide, Dubstep, Thick, Silky, Warm, Rich,
Overdriven, Crisp, Deep, Clean, Pitch Bend, 303, 8 Bars, 140 BPM, E minor

Supported loop structures: 4 or 8 bars; supported BPMs: 100, 110, 120, 128, 130, 140, 150. The RC fork's BPM/bar selector locks generation duration to the prompt's musical structure automatically — for an 8-bar loop at 100 BPM that's roughly 19 seconds of output (model card). The underlying Stable Audio Open base outputs 44.1 kHz stereo up to 47 seconds; Foundation-1 is constrained to the bar/BPM grid above.

Results

  • Speed: The model card reports generation takes "approximately ~7–8 seconds per sample" on an RTX 3090. No comparable-tier number has been published for the RTX 4060 yet — the 4060 (Ada, 8 GB, 272 GB/s memory bandwidth) is meaningfully slower than the 3090 (Ampere, 24 GB, 936 GB/s) on memory-bound workloads, so plan on longer per-sample times until a community benchmark lands. Check /check/foundation-1/rtx-4060 for live benchmark data.
  • VRAM usage: ~7 GB during generation per the HF card ("Typical VRAM usage during generation is approximately ~7 GB. For reliable operation, a GPU with at least 8 GB of VRAM is recommended"). On the RTX 4060 that leaves ~1 GB headroom — workable, but you cannot run another GPU-using app alongside generation without risking OOM.
  • Output: mono/stereo .wav loops aligned to the requested bar count and BPM. Per the model card limitations, percussion and drum sounds are out of scope for this release; the 10 instrument families covered are Synth, Keys, Bass, Bowed Strings, Mallet, Wind, Guitar, Brass, Vocal, and Plucked Strings.

For the full benchmark data, see /check/foundation-1/rtx-4060.

Troubleshooting

torch.cuda.OutOfMemoryError during generation

Most common on 8 GB cards with a browser or DAW holding GPU memory. Fixes in order of effort:

  1. Close other GPU-using apps. Run nvidia-smi before launching to see what's already resident — you want at least 7.5 GB free.

  2. Disable browser hardware acceleration in your DAW/host machine while generating.

  3. Enable the RC fork's optional INT4 / Low-VRAM Mode (TorchAO) — documented in the RC fork README. Install:

    # Windows (pinned, recommended)
    pip install torchao==0.12.0
    # Linux
    pip install torchao
    

    The fork notes INT4 can be "very slow on Windows because Triton fast-kernels are usually unavailable (falls back to slower paths)" — try it if step 1 and 2 don't resolve OOM. If TorchAO isn't installed, the INT4 toggle stays hidden in the UI.

Gradio launches but reports torch.cuda.is_available() == False

Either you didn't activate the venv before launching, or pip install torch resolved to the CPU wheel (Windows is the common culprit). Re-run step 4 to force the CUDA 12.1 channel, then verify:

python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"

Should print True RTX 4060 (or similar).

Dependency resolution failures on Python 3.11+

The RC fork's README explicitly notes 3.11+ "can fail dependency resolution due to pinned packages (notably older SciPy wheels)." Use a Python 3.10 venv as in step 2.

Prefer ComfyUI over Gradio

Two community ComfyUI custom nodes exist:

  • Saganaki22/ComfyUI-Foundation-1 — auto-downloads weights into ComfyUI/models/stable_audio/Foundation-1/, ships example workflows. Installs via git clone into ComfyUI/custom_nodes/ then python install.py (which installs stable-audio-tools --no-deps to protect your ComfyUI environment from the upstream's aggressive pandas==2.0.2 pin — the upstream's pandas==2.0.2 requirement has no Python 3.13 wheel and is the primary driver of the --no-deps workaround).
  • SanDiegoDude/scg_Foundation-1-comfyUI — install via ComfyUI Manager recommended; weights land at ComfyUI/models/audio_checkpoints/Foundation-1/.

Same ~7 GB VRAM envelope and 8 GB minimum apply regardless of front-end — the 4060 is still at the floor.

Prompt produces drift or incoherent phrases

Per the model card's Limitations section, if generation duration doesn't match the prompt's bar/BPM structure (e.g. requesting an 8-bar loop but capping output at 5 seconds), output coherence degrades. The RC fork handles this alignment automatically — if you're using bare stable-audio-tools or a third-party UI, set the audio duration manually to match the bars × (60 / BPM) × 4 formula. Also: keep prompts in the documented tag order, use 1–3 timbre descriptors, and always include both Bars and BPM.

Percussion or drum prompts produce garbage

By design. The card lists percussion as explicitly out-of-scope for this release. Use a different tool (e.g. a drum sample library or a percussion-specific model) for drum loops.

No widely-reported issues on RTX 4060 specifically — if you hit one, report it via the submission form.