ACE-Music-Studio / README.md
techfreakworm's picture
fix(deploy): switch to apple-silicon ace-step fork β€” no nano-vllm, looser gradio pin
c8c3fc2 unverified
metadata
title: ACE Music Studio
emoji: 🎡
colorFrom: gray
colorTo: gray
sdk: gradio
sdk_version: 6.14.0
python_version: '3.11'
app_file: app.py
pinned: false
license: mit
short_description: Song generation studio on ACE-Step 1.5 XL SFT
preload_from_hub:
  - ACE-Step/Ace-Step1.5
  - ACE-Step/acestep-v15-xl-sft
  - ACE-Step/ACE-Step-v1-chinese-rap-LoRA
  - ACE-Step/ACE-Step-v1.5-chinese-new-year-LoRA
  - Qwen/Qwen2.5-7B-Instruct

ACE Music Studio

A single-process Gradio app that wraps ACE-Step 1.5 XL SFT for full-song generation with vocals, with Qwen 2.5 for lyrics drafting and Demucs for stem separation. Runs locally on Apple Silicon (MPS+MLX) or NVIDIA (CUDA), deploys to Hugging Face Spaces (ZeroGPU).

β†’ Live demo: https://huggingface.co/spaces/techfreakworm/ace-music-studio


What's inside

Five modes. One ACE-Step pipeline underneath. Progressive disclosure β€” defaults stay short and reveal advanced controls only when asked.

Mode Inputs What it does
Generate prompt + lyrics + tags Text β†’ full song with vocals + instruments
Cover reference audio + new lyrics Style transfer from a reference clip
Extend seed audio + extension prompt Continue an existing song forward
Edit source audio + segment + target lyrics Repaint a segment OR flow-morph caption-to-caption
Lyrics brief + structure Qwen 2.5 7B drafts structurally-tagged lyrics

Every song mode supports a single stacked LoRA β€” bundled presets plus arbitrary .safetensors uploads. The preset registry ships with the official ACE-Step LoRAs published on HF:

After every song generation, three post-process actions sit beneath the player: Demucs stem separation, pyloudnorm normalisation to -14 LUFS, and MP3 320k export via ffmpeg.


Local setup

Requires Python 3.11, ~32 GB free disk for weights, and 128 GB unified memory recommended on Apple Silicon (M5 Max ideal; M3 Max+ workable). On NVIDIA, ~24 GB VRAM.

git clone https://github.com/techfreakworm/ace-music-studio
cd ace-music-studio
bash setup.sh             # creates .venv, installs requirements
source .venv/bin/activate
python app.py             # http://127.0.0.1:7860

setup.sh detects Apple Silicon and adds requirements-mac.txt (MLX-LM + the clockworksquirrel/ace-step-apple-silicon fork). First launch downloads weights into your HF cache (~/.cache/huggingface/hub/).

PYTORCH_ENABLE_MPS_FALLBACK=1 is set automatically by app.py so the few MPS-unsupported ops degrade to CPU.

HF Spaces deploy

git remote add space https://huggingface.co/spaces/<your-handle>/ace-music-studio
git push space main

preload_from_hub (this README's frontmatter) pre-downloads the ACE-Step 1.5 XL SFT umbrella weights at build time. app._bootstrap_spaces_cache() runs once at module init when SPACE_ID is set, symlinking the HF cache into the fork's expected <site-packages>/checkpoints/ layout so the pipeline finds them on first request. @spaces.GPU(duration=180) decorates the click handlers β€” on Spaces it gates them to a ZeroGPU worker, locally it's a no-op.

Architecture

See docs/superpowers/specs/2026-05-18-ace-music-studio-design.md for the full design and docs/superpowers/plans/2026-05-18-ace-music-studio.md for the implementation plan.

License

MIT for the app code (see LICENSE). ACE-Step 1.5 XL SFT, Qwen 2.5 7B Instruct, and Demucs htdemucs_ft retain their respective upstream licenses (Apache 2.0 / Apache 2.0 / MIT).

Credits

ACE-Step by ACE Studio Γ— StepFun. Apple Silicon port by clockworksquirrel. Qwen 2.5 by Alibaba. Demucs by Meta AI.

Made with ❀️ by Mayank Gupta.