How to run ACE-Step music generation on a cloud GPU
Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Clone ace-step/ACE-Step, install it with the virtualenv and pip install -e . that README prints, and start the Gradio app with the flags that README prints. Copy the audio under ./outputs off the instance before you destroy it, because destroying the instance deletes its disk.
This repository is the v1 tree. ACE-Step 1.5 is a different repository, and its install is How to run ACE-Step 1.5 on a cloud GPU. Other music pages: How to run YuE music generation on a cloud GPU, How to run Stable Audio Open on a cloud GPU, and How to run Bark text-to-audio on a cloud GPU. Stem separation from a different repository, whose README prints at least 3GB and about 7GB, is How to separate music stems with Demucs on a cloud GPU. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU. The tunnel for the UI is How to use SSH port forwarding on a cloud GPU.
MusicGen from the AudioCraft repository, whose docs/MUSICGEN.md says at least 16 GB for the medium-sized models (~1.5B parameters), is How to run MusicGen (AudioCraft) on a cloud GPU.
The README says this project is licensed under the Apache License 2.0. The LICENSE file is Apache License Version 2.0, January 2004. Its appendix line is Copyright [2025] Timedomain Inc. and stepfun. setup.py sets license to Apache 2.0 and version to 0.2.0. The model card for ACE-Step/ACE-Step-v1-3.5B on 2026-11-13 had license apache-2.0 and gated false. The README also says users should verify the originality of generated works, disclose AI involvement, and obtain permissions when adapting protected styles or materials. Those sentences are the README’s disclaimer. Read the LICENSE file before you redistribute the program or the weights.
The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked.
What the README says about memory
The news note dated 2025.05.10 says “Reduced Max VRAM to 8GB”. The launch line under that sentence is:
acestep --torch_compile true --cpu_offload true --overlapped_decode true
The abstract says the model synthesizes up to 4 minutes of music in just 20 seconds on an A100 GPU, 15× faster than LLM-based baselines. The model card key-features line says “15× faster than LLM-based baselines (20s for 4-minute music on A100)”. This page does not collapse those two wordings and did not measure either sentence.
The hardware table is throughput, not a second memory figure. This page did not measure it. The README says 27.27x means that generating 1 minute of music takes 2.2 seconds (60/27.27), measured on a single GPU with batch size 1 and 27 steps.
| 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 |
Catalog RTX 4090 is 24. Catalog RTX 3090 is 24. Catalog A100 rows are A100 40G at 40 and A100 80G at 80. The table says “NVIDIA A100” and does not print 40 or 80. MacBook M2 Max is not a catalog name. This page does not match a table row to one catalog row.
GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-13T04:12:00.119Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-13T04:11:58.989Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. Every vram_gb below is 8 or higher, so every printed value is at least the 8 in the 8GB sentence. This page did not run ACE-Step and does not mark a row as enough. Which listing you can start is on Deploy. How published FLUX and SDXL weight sizes are read: How much VRAM do I need for FLUX and SDXL.
The catalog template list had no ACE-Step template.
| Catalog name | vram_gb |
|---|---|
| RTX 2080 | 8 |
| RTX 3080 | 10 |
| RTX 2080 Ti | 11 |
| RTX 3080 Ti | 12 |
| V100 16G | 16 |
| A30 | 24 |
| RTX 3090 | 24 |
| RTX 4090 | 24 |
| RTX 4090D | 24 |
| RTX 4080 SUPER 32G | 32 |
| RTX 5090 | 32 |
| RTX 5090D | 32 |
| V100 32G | 32 |
| A100 40G | 40 |
| A800 40G | 40 |
| A40 | 48 |
| RTX 4090 48G | 48 |
| RTX 4090D 48G | 48 |
| RTX A6000 | 48 |
| NVIDIA RTX PRO 5000 72G | 72 |
| RTX PRO 5000 72G | 72 |
| A100 80G | 80 |
| A800 80G | 80 |
| H800 | 80 |
| RTX 6000D | 83 |
| H20 96G | 96 |
| RTX PRO 6000 96G | 96 |
| RTX PRO 6000 Max-Q | 96 |
| H20-3e 141G | 141 |
Install
On Deploy, choose Raw GPU. The deploy page says “SSH access and root within a dedicated container”.
The README says Python 3.10 or later is recommended. The clone and the Linux venv block are:
git clone https://github.com/ace-step/ACE-Step.git
cd ACE-Step
python -m venv venv
source venv/bin/activate
Step 4a, the pip3 install torch line with the cu126 index, is marked Windows only. This page does not copy it as the Linux install. Step 4b is:
pip install -e .
setup.py registers the console script acestep=acestep.gui:main. requirements.txt pins transformers==4.50.0 and does not pin torch. Repository HEAD on 2026-11-13 was 1bee4c9f5b43e30995f8d4d33b3919197ce1bd68, committed 2026-02-15T04:57:54Z. This page did not install the package.
The README also prints pip install git+https://github.com/ace-step/ACE-Step.git for library use. This page did not run that line either.
Checkpoint download and launch flags
acestep/pipeline_ace_step.py sets REPO_ID to ACE-Step/ACE-Step-v1-3.5B. If checkpoint_dir is empty, the same file joins the home directory with .cache/ace-step/checkpoints. The README says the same default path, and that a set --checkpoint_path loads from that path when the models are already there and downloads into it when they are not. load_checkpoint joins that directory with music_dcae_f8c8, music_vocoder, ace_step_transformer, and umt5-base. A second assignment, REPO_ID_QUANT, appends -q4-K-M and has a comment that it may need an update. The README does not print that id. This page does not download it.
The basic launch is:
acestep --port 7865
The advanced example is:
acestep --checkpoint_path /path/to/checkpoint --port 7865 --device_id 0 --share true --bf16 true
acestep/gui.py defaults --server_name to 127.0.0.1, --port to 7865, --device_id to 0, --share to False, --bf16 to True, --torch_compile to False, --cpu_offload to False, and --overlapped_decode to False. The README says to use 0.0.0.0 when the server should be reachable from other devices. The basic command does not pass --server_name, so the default 127.0.0.1 is what that command leaves in place. demo.launch receives server_name, server_port, and share.
--share, --bf16, and --torch_compile use Click’s BOOL type. --cpu_offload and --overlapped_decode use Python bool. This page did not launch the 8GB command, so it did not observe how those two flags parsed true.
From your own computer, the port in the basic command is 7865 on 127.0.0.1. How to use SSH port forwarding on a cloud GPU is the tunnel. The 2026.01.28 news line says ACE-Step v1.5 was released and links a project site. That install is the other guide named above. This page does not copy it.
infer.py is a separate CLI. It accepts --checkpoint_path, --bf16, --torch_compile, --cpu_offload, --overlapped_decode, --device_id, and --output_path. --output_path defaults to None. The README’s usage section does not print python infer.py. This page does not add it as the documented UI launch.
Where the audio is saved
save_wav_file uses ./outputs when save_path is None, and the warning string in that branch is save_path is None, using default path ./outputs/. The filename is output_ plus %Y%m%d%H%M%S plus _ plus the batch index plus . plus the format. The function defaults sample_rate to 48000 and format to wav. The UI click handler calls the pipeline without a save_path argument. After the wav is written, the pipeline also writes a file whose suffix is _input_params.json beside that wav. acestep/ui/components.py reads ACE_OUTPUT_DIR, default ./outputs, for the dropdown of previous json files. That default and the ./outputs string in save_wav_file are two assignments. This page did not generate audio.
ComfyUI
The news line dated 2025.05.09 names assets/Ace_Step_4x_a2a.json in this repository. A request for that file at HEAD returned HTTP 200. The news line dated 2025.05.08 says a ComfyUI node is available and links a short URL. This page did not open that short URL and does not add node-install steps the README does not print. The ComfyUI examples top-level directory list on 2026-11-13 had no directory named for this project. Examples HEAD was f9431bb000ce792094ff345446e22cac1ea6cef3. This page does not add a second ComfyUI install.
When it fails
CUDA out of memory. The documented low-VRAM line is the 2025.05.10 command that sets --torch_compile true, --cpu_offload true, and --overlapped_decode true, next to the sentence “Reduced Max VRAM to 8GB”. If the process raises that error, use how to fix CUDA out of memory on a cloud GPU.
“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. requirements.txt does not pin torch. The Windows-only step prints a cu126 index. The README does not name compute capability 12.0. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. This page did not install a torch wheel and did not re-test this package on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.
Save the audio, then destroy
Copy ./outputs, or the directory you set, before you destroy the instance. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.
The pricing page FAQ states the billing rule in these words:
Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.
Prices are not copied here.
Frequently asked questions
How much VRAM does the ACE-Step README print?
The 2025.05.10 note says Reduced Max VRAM to 8GB and prints acestep --torch_compile true --cpu_offload true --overlapped_decode true. The hardware table is throughput for RTX 4090, A100, RTX 3090, and MacBook M2 Max. This page did not measure that table. Every vram_gb in https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-13T04:12:00.119Z) is 8 or higher. This page did not run ACE-Step and does not mark a row as enough. Which listing you can start is on https://cloudgpu.app/deploy.
Which flags launch the UI, and where is the audio saved?
The basic command is acestep --port 7865. gui.py defaults --server_name to 127.0.0.1, --port to 7865, and --share to False. When save_path is None, save_wav_file writes ./outputs/output_{timestamp}_{index}.wav and the function default sample rate is 48000. The UI click does not pass save_path. A second file, with suffix _input_params.json, is written beside the wav. This page did not launch the UI.
Does the README point at ComfyUI?
The 2025.05.09 news line names assets/Ace_Step_4x_a2a.json. The 2025.05.08 line links a short URL for a ComfyUI node. This page did not open that URL and does not add install steps the README does not print. The ComfyUI examples list on 2026-11-13 had no ACE-Step directory. Examples HEAD was f9431bb000ce792094ff345446e22cac1ea6cef3. The catalog had no ACE-Step template.
What license is on the repository?
The README says the project is licensed under Apache License 2.0. The LICENSE file is Apache License Version 2.0, January 2004, and the appendix line is Copyright [2025] Timedomain Inc. and stepfun. The model card license field is apache-2.0 and gated was false. The grant text includes the words no-charge, royalty-free, and that phrase is license text, not a CloudGPU price and not a storage allowance.
Sources (read 2026-11-13, Asia/Shanghai)
- ace-step/ACE-Step README (clone, venv,
pip install -e .,acestep --port 7865, the advanced flags, the 8GB command, the hardware table,assets/Ace_Step_4x_a2a.json, Apache 2.0): https://github.com/ace-step/ACE-Step/blob/main/README.md commit1bee4c9f5b43e30995f8d4d33b3919197ce1bd68, committed 2026-02-15T04:57:54Z acestep/gui.py(defaults, ClickBOOLversus Pythonbool) andacestep/pipeline_ace_step.py(REPO_IDACE-Step/ACE-Step-v1-3.5B,~/.cache/ace-step/checkpoints,./outputs, sample rate 48000): that commitacestep/ui/components.py(ACE_OUTPUT_DIRdefault./outputs; the generate click does not passsave_path): that commitsetup.py(acestep=acestep.gui:main, version0.2.0) andrequirements.txt(transformers==4.50.0,torchunpinned): that commitLICENSE(Apache 2.0, January 2004; appendix Copyright [2025] Timedomain Inc. and stepfun). GitHub license field Apache-2.0- Model card
ACE-Step/ACE-Step-v1-3.5B(licenseapache-2.0,gatedfalse,lastModified2025-05-22T09:15:43.000Z, the 20s / 4-minute line): https://huggingface.co/ACE-Step/ACE-Step-v1-3.5B assets/Ace_Step_4x_a2a.jsonat that commit returned HTTP 200. The 2025.05.08 short URL was not opened- ComfyUI examples top-level directories (no ACE-Step directory): https://github.com/comfyanonymous/ComfyUI_examples commit
f9431bb000ce792094ff345446e22cac1ea6cef3 - Public GPU memory: https://cloudgpu.app/gpu-prices.json (
updated_at2026-11-13T04:12:00.119Z) and https://cloudgpu.app/v1/public/gpu-catalog (generated_at2026-11-13T04:11:58.989Z).GET /v1/public/compute-capabilitiesreturned feature flags and no GPU list. The catalog had no ACE-Step template
Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.
Last updated: 2026-11-13 (Asia/Shanghai).