Skip to content

ACE-step

ACE-Step, a novel open-source foundation model for music generation.

github.com/ace-step/ACE-Step

acestep.org

Installation

Last Update 30.05.2025

MacOS > 15.1 and minimum M1 processor. See website and github for other systems.

Create Environment

using conda (recommended) or venv:

# create conda environment

conda create -n ace_step python=3.10 -y

# activate the new environment

conda activate ace_step 

#clone repository

git clone https://github.com/ace-step/ACE-Step.git && cd ACE-Step

# install pyTorch fitting your OS and system
# this currently installs pytorch version 2.7.0

pip3 install torch torchvision torchaudio
# test pyTorch installation using python3 and check mps availability:

python3 

import torch 
print("PyTorch version:", torch.__version__)
print("MPS available:", torch.backends.mps.is_available())
exit()
# Install ACE-step

pip install -e .
# launch ACE-step app from ACE-step directory:

cd ~/ACE-step

conda activate ace-step
acestep --port 7865 --bf16 false --share false

# !!! on MAC use `--bf16 false` to avoid errors !!!
# set --share true to make the editor public

# starting up can take some time...
# then open: http://127.0.0.1:7865 in browser.


# Advanced startup options:

acestep --checkpoint_path /path/to/checkpoint --port 7865 --device_id 0 --share true --bf16 false

# If `--checkpoint_path` is not set, auto download models to the default path `~/.cache/ace-step/checkpoints`.

Training

Preparing the training data

.wav to .mp3 batch convertion

on Mac, you can convert using ffmpeg with this script:

for i in /pathToYourFolder/*.wav; do
  ffmpeg -i "$i" -dither_method rectangular -qscale:a 1 -ar 48000 "${i%.*}.mp3"
done

Creating _lyrics.txt and _prompt.txt files

A python script, to convert a folder with .mp3 files into the necessary structure. Here, for every sound-file, a _prompt.txt and _lyrcis.txt file is created with the same content; Change this script if necessary.

```python

import os

Define the path to your audio folder

audio_folder = "audio"

Loop through all files in the audio folder

for filename in os.listdir(audio_folder): if filename.endswith(".mp3"): base_name = os.path.splitext(filename)[0]

    # Define paths for new files
    prompt_path = os.path.join(audio_folder, f"{base_name}_prompt.txt")
    lyrics_path = os.path.join(audio_folder, f"{base_name}_lyrics.txt")

    # Write the prompt file
    with open(prompt_path, "w") as prompt_file:
        prompt_file.write("breakbeat")

    # Write the lyrics file
    with open(lyrics_path, "w") as lyrics_file:
        lyrics_file.write("lyrics")

print("Done: prompt and lyrics files created.")```