This Fork | Original Repo | Original Project | Hugging Face Model | Discord Support
๐ฏ This fork specializes in:
- Automated Dataset Processing with Faster-Whisper
- Clean LoRA Training CLIs with real-time dashboards
- Complete Beginner Workflows from raw audio to trained model
- Step-by-step automation - no manual file editing required
This is a specialized fork of the original ACE-Step project, focused entirely on making training and dataset preparation accessible to beginners.
- ๐ค Automated dataset processing from raw audio files
- ๐ค Faster-Whisper integration for automatic transcription
- โ๏ธ Auto-generated LoRA configs based on your dataset
- ๐ One-command training with beautiful dashboards
- ๐ Step-by-step guides for every process
- ๐ฅ๏ธ Clean CLI interfaces with progress tracking
- ๐ก Helpful tips and troubleshooting
- ๐ง No manual configuration required
- ๐ Real-time training dashboard with live metrics
- ๐พ Resume capability for interrupted training
- ๐๏ธ Resource optimization for different hardware setups
- ๐ Built-in validation and progress tracking
Original ACE-Step Project: ace-step/ACE-Step
Original Authors: Junmin Gong, Wenxiao Zhao, Sen Wang, Shengyuan Xu, Jing Guo
Organizations: ACE Studio and StepFun
This fork builds upon their excellent foundation model work, adding specialized tooling for training workflows. All credit for the core ACE-Step model and research goes to the original team.
- ๐ Quick Start Guide
- ๐ฆ Installation
- ๐ฏ Dataset Processing
- ๐ต Training Your Model
- ๐ฅ๏ธ Using Your Trained Model
- ๐ Detailed Guides
- ๐ค Community & Support
This fork provides a 3-step automated workflow from raw audio files to a trained ACE-Step model:
# Step 1: Process your audio files into training dataset
python -m dataset_cli_tool
# Step 2: Train your LoRA model with real-time dashboard
python train_cli_advanced.py --dataset_path ./prepared_dataset --lora_config_path ./lora_config.json
# Step 3: Use your trained model for music generation
acestep --port 7865
That's it! The tools handle everything else automatically.
- Scans your audio files (MP3, WAV, FLAC, etc.)
- Converts to consistent format
- Uses Faster-Whisper to generate transcriptions automatically
- Creates training-ready dataset structure
- Generates optimized LoRA configuration
- Beautiful real-time dashboard with live metrics
- Automatic checkpointing and resume capability
- GPU optimization and resource management
- Progress tracking with ETA calculations
- Load your trained LoRA adapter
- Generate music in your custom style
- Web interface for easy interaction
- Export and share your creations
# Clone the repository
git clone https://github.com/WebChatAppAi/ACE-Step.git
cd ACE-Step
# Create environment and install
conda create -n ace_step python=3.10 -y
conda activate ace_step
pip install -e .
Minimum Requirements:
- Python 3.10+
- 8GB RAM
- CUDA-compatible GPU (GTX 1660+ or RTX series)
- 20GB free disk space
Recommended Setup:
- Python 3.10
- 16GB+ RAM
- RTX 3090/4090 or A100
- 50GB+ SSD storage
- Fast internet for model downloads
Training Requirements:
- CUDA 11.8+ or 12.1+
- 12GB+ VRAM for LoRA training
- FFmpeg (for dataset processing)
For dataset processing, install:
pip install faster-whisper>=1.0.0 rich>=13.0.0 loguru librosa soundfile
Windows users need FFmpeg:
- Download from FFmpeg.org
- Add to system PATH
Our dataset CLI tool handles everything from raw audio to training-ready dataset:
# Interactive dataset processing
python -m dataset_cli_tool
What it does:
- ๐ Scans for audio files (MP3, WAV, FLAC, M4A, etc.)
- ๐ Converts to consistent format
- ๐ค Generates transcriptions with Faster-Whisper
- โ Validates dataset structure
- โ๏ธ Creates optimized LoRA configuration
If you prefer step-by-step control:
# Step 1: Scan audio files
python -m dataset_cli_tool scan --path /your/audio/folder
# Step 2: Convert audio format
python -m dataset_cli_tool convert --input /audio --output /dataset --format mp3
# Step 3: Generate transcriptions
python -m dataset_cli_tool transcribe --input /dataset --model distil-large-v3
# Step 4: Generate LoRA config
python -m dataset_cli_tool generate-lora --dataset /dataset
Model | Speed | Quality | VRAM | Best For |
---|---|---|---|---|
distil-large-v3 |
โกโกโก | ๐๐๐๐๐ | 6GB | Recommended |
large-v3 |
โก | ๐๐๐๐๐ | 10GB | Best quality |
base |
โกโกโกโก | ๐๐๐ | 1GB | Low VRAM |
Complete dataset processing guide
python train_cli.py --dataset_path ./prepared_dataset --lora_config_path ./lora_config.json
Clean, organized output with progress tracking:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Training Configuration โ
โ Dataset Path: ./prepared_dataset โ
โ LoRA Config: ./lora_config.json โ
โ Learning Rate: 1.00e-04 โ
โ Max Steps: 2,000,000 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Step: 1000/2000000 (0.1%) | Loss: 0.4532 | LR: 1.00e-04
python train_cli_advanced.py --dataset_path ./prepared_dataset --lora_config_path ./lora_config.json
Beautiful real-time dashboard:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ต ACE-Step Training Dashboard ๐ต โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Progress โ Metrics โ
โ Step: 1,234/2,000,000 โ Total Loss: 0.4532 โ
โ Progress: 6.2% โ Denoising: 0.3421 โ
โ Speed: 1.45 steps/s โ Learning Rate: 1.00e-04 โ
โ ETA: 12h 34m โ VRAM Usage: 8.2GB โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโปโโโโโโโโโโโโโโโโโโโโโโโโโโ
# High-end GPU (RTX 4090, A100)
python train_cli.py --dataset_path ./dataset --lora_config_path ./config.json \
--batch_size 4 --precision 16
# Mid-range GPU (RTX 3080, 3090)
python train_cli.py --dataset_path ./dataset --lora_config_path ./config.json \
--batch_size 2 --precision 16
# Lower VRAM (GTX 1660, RTX 3060)
python train_cli.py --dataset_path ./dataset --lora_config_path ./config.json \
--batch_size 1 --accumulate_grad_batches 4
Complete training guide and examples
# Basic usage
acestep --port 7865
# With optimizations
acestep --torch_compile true --cpu_offload true --overlapped_decode true --port 7865
In the web interface:
- Navigate to the Settings tab
- Find LoRA Settings
- Upload your trained
.safetensors
file - Set LoRA scale (usually 0.7-1.0)
- Generate music with your custom style!
# Memory optimization (8GB VRAM)
acestep --cpu_offload true --overlapped_decode true
# Speed optimization (High-end GPU)
acestep --torch_compile true --bf16 true
# Windows users (need triton)
pip install triton-windows
This fork provides comprehensive documentation for every aspect:
- CLI Training Guide - Complete training CLI reference with examples
- Dataset Processing Guide - Audio-to-dataset automation
- Original Training Guide - Traditional training approach
- Troubleshooting - Common issues and solutions
- Performance Tuning - Hardware optimization
- LoRA Configuration - Custom training settings
- Model Integration - Using trained models
- Multi-GPU training setup
- Dataset format specifications
- Custom model architectures
- Evaluation and validation
- Discord: ACE-Step Community
- GitHub Issues: Report bugs and request features
- Discussions: Share your trained models and results
This fork welcomes contributions to:
- Improve CLI interfaces
- Add dataset processing features
- Enhance training workflows
- Fix bugs and optimize performance
We'd love to see what you create:
- Share your trained models
- Post your generated music
- Help other beginners learn
- ๐ธ Supports all mainstream music styles with various description formats including short tags, descriptive text, or use-case scenarios
- ๐ท Capable of generating music across different genres with appropriate instrumentation and style
- ๐ฃ๏ธ Supports 19 languages with top 10 well-performing languages including:
- ๐บ๐ธ English, ๐จ๐ณ Chinese, ๐ท๐บ Russian, ๐ช๐ธ Spanish, ๐ฏ๐ต Japanese, ๐ฉ๐ช German, ๐ซ๐ท French, ๐ต๐น Portuguese, ๐ฎ๐น Italian, ๐ฐ๐ท Korean
โ ๏ธ Due to data imbalance, less common languages may underperform
- ๐น Supports various instrumental music generation across different genres and styles
- ๐บ Capable of producing realistic instrumental tracks with appropriate timbre and expression for each instrument
- ๐ผ Can generate complex arrangements with multiple instruments while maintaining musical coherence
- ๐๏ธ Capable of rendering various vocal styles and techniques with good quality
- ๐ฃ๏ธ Supports different vocal expressions including various singing techniques and styles
- โ๏ธ Implemented using training-free, inference-time optimization techniques
- ๐ Flow-matching model generates initial noise, then uses trigFlow's noise formula to add additional Gaussian noise
- ๐๏ธ Adjustable mixing ratio between original initial noise and new Gaussian noise to control variation degree
- ๐๏ธ Implemented by adding noise to the target audio input and applying mask constraints during the ODE process
- ๐ When input conditions change from the original generation, only specific aspects can be modified while preserving the rest
- ๐ Can be combined with Variations Generation techniques to create localized variations in style, lyrics, or vocals
- ๐ก Innovatively applies flow-edit technology to enable localized lyric modifications while preserving melody, vocals, and accompaniment
- ๐ Works with both generated content and uploaded audio, greatly enhancing creative possibilities
- โน๏ธ Current limitation: can only modify small segments of lyrics at once to avoid distortion, but multiple edits can be applied sequentially
- ๐ Based on a LoRA fine-tuned on pure vocal data, allowing direct generation of vocal samples from lyrics
- ๐ ๏ธ Offers numerous practical applications such as vocal demos, guide tracks, songwriting assistance, and vocal arrangement experimentation
- โฑ๏ธ Provides a quick way to test how lyrics might sound when sung, helping songwriters iterate faster
- ๐๏ธ Similar to Lyric2Vocal, but fine-tuned on pure instrumental and sample data
- ๐ต Capable of generating conceptual music production samples from text descriptions
- ๐งฐ Useful for quickly creating instrument loops, sound effects, and musical elements for production
- ๐ฅ Fine-tuned on pure rap data to create an AI system specialized in rap generation
- ๐ Expected capabilities include AI rap battles and narrative expression through rap
- ๐ Rap has exceptional storytelling and expressive capabilities, offering extraordinary application potential
- ๐๏ธ A controlnet-lora trained on multi-track data to generate individual instrument stems
- ๐ฏ Takes a reference track and specified instrument (or instrument reference audio) as input
- ๐น Outputs an instrument stem that complements the reference track, such as creating a piano accompaniment for a flute melody or adding jazz drums to a lead guitar
- ๐ The reverse process of StemGen, generating a mixed master track from a single vocal track
- ๐ต Takes a vocal track and specified style as input to produce a complete vocal accompaniment
- ๐ธ Creates full instrumental backing that complements the input vocals, making it easy to add professional-sounding accompaniment to any vocal recording
- Release training code ๐ฅ
- Release LoRA training code ๐ฅ
- Release RapMachine LoRA ๐ค
- Release evaluation performance and technical report ๐
- Train and Release ACE-Step V1.5
- Release ControlNet training code ๐ฅ
- Release Singing2Accompaniment ControlNet ๐ฎ
We have evaluated ACE-Step across different hardware setups, yielding the following throughput results:
Device | RTF (27 steps) | Time to render 1 min audio (27 steps) | RTF (60 steps) | Time to render 1 min audio (60 steps) |
---|---|---|---|---|
NVIDIA RTX 4090 | 34.48 ร | 1.74 s | 15.63 ร | 3.84 s |
NVIDIA A100 | 27.27 ร | 2.20 s | 12.27 ร | 4.89 s |
NVIDIA RTX 3090 | 12.76 ร | 4.70 s | 6.48 ร | 9.26 s |
MacBook M2 Max | 2.27 ร | 26.43 s | 1.03 ร | 58.25 s |
We use RTF (Real-Time Factor) to measure the performance of ACE-Step. Higher values indicate faster generation speed. 27.27x means to generate 1 minute of music, it takes 2.2 seconds (60/27.27).
First, clone the ACE-Step repository to your local machine and navigate into the project directory:
git clone https://github.com/WebChatAppAi/ACE-Step.git
cd ACE-Step
Ensure you have the following installed:
Python
: Version 3.10 or later is recommended. You can download it from python.org.Conda
orvenv
: For creating a virtual environment (Conda is recommended).
It is highly recommended to use a virtual environment to manage project dependencies and avoid conflicts. Choose one of the following methods:
-
Create the environment named
ace_step
with Python 3.10:conda create -n ace_step python=3.10 -y
-
Activate the environment:
conda activate ace_step
-
Navigate to the cloned ACE-Step directory.
-
Create the virtual environment (commonly named
venv
):python -m venv venv
-
Activate the environment:
- On Windows (cmd.exe):
venv\Scripts\activate.bat
- On Windows (PowerShell):
(If you encounter execution policy errors, you might need to run
.\venv\Scripts\Activate.ps1
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
first) - On Linux / macOS (bash/zsh):
source venv/bin/activate
- On Windows (cmd.exe):
Once your virtual environment is activated: a. (Windows Only) If you are on Windows and plan to use an NVIDIA GPU, install PyTorch with CUDA support first:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
(Adjust cu126 if you have a different CUDA version. For other PyTorch installation options, refer to the official PyTorch website).
b. Install ACE-Step and its core dependencies:
pip install -e .
The ACE-Step application is now installed. The GUI works on Windows, macOS, and Linux. For instructions on how to run it, please see the Usage section.
Download models to a custom location with full control:
# Download full model (7.2 GB)
python modeldownloader.py --output_dir ./models
# Download quantized model (2.5 GB, faster)
python modeldownloader.py --output_dir ./models --quantized
# Download to custom path
python modeldownloader.py --output_dir /path/to/my/models
The model downloader ensures proper directory structure and verifies all components.
# Use downloaded models
acestep --checkpoint_path ./models --port 7865
# Auto-download (if no models specified)
acestep --port 7865
acestep --checkpoint_path ./models --port 7865 --device_id 0 --share true --bf16 true
Model Loading Priority:
- If
--checkpoint_path
is set and models exist at the path, load fromcheckpoint_path
. - If
--checkpoint_path
is set but models do not exist at the path, auto download models tocheckpoint_path
. - If
--checkpoint_path
is not set, auto download models to the default path~/.cache/ace-step/checkpoints
.
Note: Use python modeldownloader.py
for reliable downloads with progress tracking.
If you are using macOS, please use --bf16 false
to avoid errors.
If you intend to integrate ACE-Step as a library into your own Python projects, you can install the latest version directly from GitHub using the following pip command.
Direct Installation via pip:
- Ensure Git is installed: This method requires Git to be installed on your system and accessible in your system's PATH.
- Execute the installation command:
It's recommended to use this command within a virtual environment to avoid conflicts with other packages.
pip install git+https://github.com/WebChatAppAi/ACE-Step.git
--checkpoint_path
: Path to the model checkpoint (default: downloads automatically)--server_name
: IP address or hostname for the Gradio server to bind to (default: '127.0.0.1'). Use '0.0.0.0' to make it accessible from other devices on the network.--port
: Port to run the Gradio server on (default: 7865)--device_id
: GPU device ID to use (default: 0)--share
: Enable Gradio sharing link (default: False)--bf16
: Use bfloat16 precision for faster inference (default: True)--torch_compile
: Usetorch.compile()
to optimize the model, speeding up inference (default: False).- Windows need to install triton:
pip install triton-windows
- Windows need to install triton:
--cpu_offload
: Offload model weights to CPU to save GPU memory (default: False)--overlapped_decode
: Use overlapped decoding to speed up inference (default: False)
The ACE-Step interface provides several tabs for different music generation and editing tasks:
-
๐ Input Fields:
- ๐ท๏ธ Tags: Enter descriptive tags, genres, or scene descriptions separated by commas
- ๐ Lyrics: Enter lyrics with structure tags like [verse], [chorus], and [bridge]
- โฑ๏ธ Audio Duration: Set the desired duration of the generated audio (-1 for random)
-
โ๏ธ Settings:
- ๐ง Basic Settings: Adjust inference steps, guidance scale, and seeds
- ๐ฌ Advanced Settings: Fine-tune scheduler type, CFG type, ERG settings, and more
-
๐ Generation: Click "Generate" to create music based on your inputs
- ๐ฒ Regenerate music with slight variations using different seeds
- ๐๏ธ Adjust variance to control how much the retake differs from the original
- ๐๏ธ Selectively regenerate specific sections of the music
- โฑ๏ธ Specify start and end times for the section to repaint
- ๐ Choose the source audio (text2music output, last repaint, or upload)
- ๐ Modify existing music by changing tags or lyrics
- ๐๏ธ Choose between "only_lyrics" mode (preserves melody) or "remix" mode (changes melody)
- ๐๏ธ Adjust edit parameters to control how much of the original is preserved
- โ Add music to the beginning or end of an existing piece
- ๐ Specify left and right extension lengths
- ๐ Choose the source audio to extend
The examples/input_params
directory contains sample input parameters that can be used as references for generating music.
This project is licensed under Apache License 2.0
ACE-Step enables original music generation across diverse genres, with applications in creative production, education, and entertainment. While designed to support positive and artistic use cases, users should be mindful of ethical considerations and intellectual property rights in the application of this technology.
If you find this project useful for your research, please consider citing the original work:
@misc{gong2025acestep,
title={ACE-Step: A Step Towards Music Generation Foundation Model},
author={Junmin Gong, Wenxiao Zhao, Sen Wang, Shengyuan Xu, Jing Guo},
howpublished={\url{https://github.com/ace-step/ACE-Step}},
year={2025},
note={GitHub repository}
}