Local AI Music Generator
Summon bangers directly from your GPU.
NOTE - Development on this project will slow down from this point on as HOT-Step is being rebuilt to use the superior AceStep.CPP backend. The new project is available here - Hot-Step CPP
HOT-Step 9000 is a fully functional, open-source local AI music generation suite.
This project is a standalone frontend for ACE-Step 1.5. It originally started as a fork of sdbds/ACE-Step-1.5-for-windows but has since grown into its own distinct application with significant UI Overhauls, advanced features, and quality-of-life improvements.
This application is under active, ongoing development. You may occasionally encounter bugs or unoptimized features. We welcome bug reports and feature requests via GitHub Issues.
| Platform | GPU | Status | Launcher |
|---|---|---|---|
| Windows | NVIDIA CUDA | ✅ Fully supported | LAUNCH.bat |
| Linux | NVIDIA CUDA | ✅ Supported | ./launch-linux.sh |
| macOS | Apple Silicon (MPS) | ⚠️ Experimental | ./launch-macos.sh |
| Linux | AMD ROCm | ⚠️ Experimental | ./launch-rocm.sh |
| Docker | NVIDIA CUDA | ✅ Supported | docker compose up |
Experimental means the Python backend supports the platform but we don't have the hardware to test it ourselves. Community bug reports are very welcome!
HOT-Step 9000 sits on top of the original ACE-Step backend but introduces a massive array of new tools and features for advanced AI music creation:
.lrc lyrics overlays and section markers.For a detailed, technical breakdown of every new feature, see FEATURES.md.
HOT-Step 9000 supports both the standard 1.5B DiT models and the newer 4B XL DiT models from ACE-Step 1.5. Models are auto-downloaded on first use, or can be pre-fetched via install.bat or the model downloader CLI.
| Model | Description | Steps |
|---|---|---|
acestep-v15-turbo | Default. Fast generation with shift scheduling. | 8 |
acestep-v15-turbo-shift3 | Turbo variant with shift=3 (recommended default). | 8 |
acestep-v15-sft | SFT-tuned — higher quality, more steps required. | 40+ |
acestep-v15-base | Base model. Supports extract/lego/complete tasks. | 40+ |
The XL variants are twice the parameter count (4B vs 1.5B) of the standard models, producing richer, more detailed audio. They require ≥12 GB VRAM (16+ GB recommended).
| Model | Description | Steps | Size |
|---|---|---|---|
acestep-v15-xl-turbo | Fastest XL variant — distilled for low-step generation. | 8 | ~10 GB |
acestep-v15-xl-sft | XL SFT — highest quality XL variant. | 40+ | ~10 GB |
acestep-v15-xl-base | XL base model. | 40+ | ~10 GB |
acestep-v15-merge-sft-turbo-xl-ta-0.5 | Community SFT+Turbo merge at α=0.5 by jeankassio. Blends SFT quality with Turbo speed. | 15–30 | ~20 GB |
acestep-v15-merge-base-turbo-xl-ta-0.5 | Community Base+Turbo merge at α=0.5 by jeankassio. | 15–30 | ~20 GB |
acestep-v15-merge-base-sft-xl-ta-0.5 | Community Base+SFT merge at α=0.5 by jeankassio. | 40+ | ~20 GB |
Note: XL models support LoRA/LoKr adapters, but only those trained specifically on the XL architecture — standard 1.5B adapters are not compatible due to different layer dimensions. Multi-batch generation (
batch_size > 1) is also not recommended for XL models at this time.
Download via CLI:
python -m acestep.model_downloader --model acestep-v15-xl-turbo --skip-main
| Model | Size | Notes |
|---|---|---|
acestep-5Hz-lm-1.7B | ~3.4 GB | Default. Included in main download. |
acestep-5Hz-lm-0.6B | ~1.2 GB | Lighter, faster. |
acestep-5Hz-lm-4B | ~8 GB | Highest quality. GGUF quantization recommended. |
HOT-Step 9000 includes built-in tools to reduce GPU memory usage, making it accessible on hardware with as little as 16GB VRAM — without sacrificing the full 4B parameter language model or advanced features like LoRA adapters.
The DiT (Diffusion Transformer) is the largest model component. HOT-Step supports on-demand weight quantization via torchao to dramatically reduce its VRAM footprint:
| Setting | VRAM Saved | Quality Impact | LoRA Compatible |
|---|---|---|---|
none (BF16) | Baseline | None | ✅ Full support |
int8_weight_only | ~2.5 GB | Negligible | ✅ Full support |
nf4 | ~5.5 GB | Minor | ✅ Works via dequantize→merge→requantize pipeline |
int4_weight_only | ~6.5 GB | Minor; experimental | ✅ Works via dequantized merge |
Configuration: Set ACESTEP_QUANTIZATION in your .env file:
# Options: auto, none, int8_weight_only, int4_weight_only, nf4
ACESTEP_QUANTIZATION=auto
When set to auto, HOT-Step detects your GPU VRAM and applies the appropriate quantization level automatically. Quantization is applied at model load time — no model re-download required.
Hot-swapping from the UI: Quantization can also be changed on-the-fly from the model dropdown panel without restarting the server. Changing quantization will reload the DiT model with the new setting.
LoRA on quantized models: Adapters work on both INT8 and INT4 quantized DiTs. Internally, base weights are dequantized for the merge computation, so adapter-modified layers run in BF16. VRAM increases slightly when LoRA is active, but remains well below the unquantized baseline.
The language models (LMs) that generate structured music tokens can be converted to GGUF format for use with llama-cpp-python. GGUF models use significantly less VRAM than the default vLLM/PyTorch backends and support partial CPU offloading.
How to convert:
The loading screen includes a built-in conversion panel. Select your model and desired quantization level, and click Convert to GGUF. Conversion progress is streamed live to the UI.
Alternatively, use the CLI:
python -m acestep.tools.gguf_converter acestep-5Hz-lm-4B --quant Q4_K_M
| Quant Level | LM VRAM | Quality | Speed |
|---|---|---|---|
| BF16 | ~8 GB | Lossless | Fast |
| Q8_0 | ~4 GB | Near-lossless | Fast |
| Q4_K_M | ~2.5 GB | Good | Moderate |
| Q5_K_M | ~3 GB | Very good | Moderate |
| Q6_K | ~3.5 GB | Excellent | Moderate |
What happens during conversion:
convert_hf_to_gguf.py from llama.cppllama-quantizellama-quantize binary and required DLLs are auto-downloaded from the llama.cpp GitHub releases on first usecheckpoints/ directoryGPU offloading: Configure how many transformer layers run on GPU via ACESTEP_N_GPU_LAYERS in .env:
# -1 = all on GPU (fastest), 0 = all on CPU (no VRAM), N = partial offload
ACESTEP_N_GPU_LAYERS=-1
These are measured values using the full acestep-5Hz-lm-4B model:
| Configuration | Peak VRAM | Notes |
|---|---|---|
| No quantization (BF16 DiT + vLLM) | ~22.2 GB | Full quality, full speed |
| INT4 DiT only | ~19.8 GB | Minimal quality impact |
| INT4 DiT + Q4_K_M LM | ~15.6 GB | Fits 16GB GPUs with headroom |
| INT8 DiT + Q8_0 LM | ~17 GB | Best quality/VRAM balance |
Note: GGUF-based LM inference disables CFG (classifier-free guidance) automatically to maintain reasonable generation speed. This has minimal impact on output quality, especially when using Thinking mode.
install.bat to install dependencies.checkpoints/ directory.LAUNCH.bat to start the application with the interactive loading screen.Requirements: Python 3.11/3.12, Node.js 18+, NVIDIA CUDA drivers
git clone https://github.com/scragnog/HOT-Step-9000.git
cd HOT-Step-9000
chmod +x install-linux.sh launch-linux.sh
./install-linux.sh # First-time setup
./launch-linux.sh # Start the app
Requirements: macOS with M1/M2/M3/M4, Python 3.11/3.12, Node.js 18+
git clone https://github.com/scragnog/HOT-Step-9000.git
cd HOT-Step-9000
chmod +x install-macos.sh launch-macos.sh
./install-macos.sh # First-time setup
./launch-macos.sh # Start the app
macOS Limitations:
torch.compile (MLX mx.compile used for MLX components)mlx (recommended) or pt only (no vllm)Requirements: Python 3.11/3.12, Node.js 18+, ROCm 6.x drivers
git clone https://github.com/scragnog/HOT-Step-9000.git
cd HOT-Step-9000
chmod +x install-rocm.sh launch-rocm.sh
./install-rocm.sh # First-time setup (includes HSA_OVERRIDE guide)
./launch-rocm.sh # Start the app
ROCm Limitations:
torch.compile (disabled by default)float32 (set ACESTEP_ROCM_DTYPE=bfloat16 in .env if your GPU supports it)pt onlyRequirements: Docker, NVIDIA Container Toolkit
git clone https://github.com/scragnog/HOT-Step-9000.git
cd HOT-Step-9000
# Download models first (checkpoints/ is volume-mounted, not baked into image)
python3 -m acestep.model_downloader
# Build and run
docker compose up --build
Access the UI at http://localhost:3000 once all services are ready.
HOT-Step 9000 exists thanks to the incredible open-source AI audio community:
This project inherits the licensing of its upstream parents. See original repositories for detailed model and code licensing. Please use AI generation tools responsibly.
Python
60.8%
TypeScript
36.1%
Local AI Music Generator
Summon bangers directly from your GPU.
NOTE - Development on this project will slow down from this point on as HOT-Step is being rebuilt to use the superior AceStep.CPP backend. The new project is available here - Hot-Step CPP
HOT-Step 9000 is a fully functional, open-source local AI music generation suite.
This project is a standalone frontend for ACE-Step 1.5. It originally started as a fork of sdbds/ACE-Step-1.5-for-windows but has since grown into its own distinct application with significant UI Overhauls, advanced features, and quality-of-life improvements.
This application is under active, ongoing development. You may occasionally encounter bugs or unoptimized features. We welcome bug reports and feature requests via GitHub Issues.
| Platform | GPU | Status | Launcher |
|---|---|---|---|
| Windows | NVIDIA CUDA | ✅ Fully supported | LAUNCH.bat |
| Linux | NVIDIA CUDA | ✅ Supported | ./launch-linux.sh |
| macOS | Apple Silicon (MPS) | ⚠️ Experimental | ./launch-macos.sh |
| Linux | AMD ROCm | ⚠️ Experimental | ./launch-rocm.sh |
| Docker | NVIDIA CUDA | ✅ Supported | docker compose up |
Experimental means the Python backend supports the platform but we don't have the hardware to test it ourselves. Community bug reports are very welcome!
HOT-Step 9000 sits on top of the original ACE-Step backend but introduces a massive array of new tools and features for advanced AI music creation:
.lrc lyrics overlays and section markers.For a detailed, technical breakdown of every new feature, see FEATURES.md.
HOT-Step 9000 supports both the standard 1.5B DiT models and the newer 4B XL DiT models from ACE-Step 1.5. Models are auto-downloaded on first use, or can be pre-fetched via install.bat or the model downloader CLI.
| Model | Description | Steps |
|---|---|---|
acestep-v15-turbo | Default. Fast generation with shift scheduling. | 8 |
acestep-v15-turbo-shift3 | Turbo variant with shift=3 (recommended default). | 8 |
acestep-v15-sft | SFT-tuned — higher quality, more steps required. | 40+ |
acestep-v15-base | Base model. Supports extract/lego/complete tasks. | 40+ |
The XL variants are twice the parameter count (4B vs 1.5B) of the standard models, producing richer, more detailed audio. They require ≥12 GB VRAM (16+ GB recommended).
| Model | Description | Steps | Size |
|---|---|---|---|
acestep-v15-xl-turbo | Fastest XL variant — distilled for low-step generation. | 8 | ~10 GB |
acestep-v15-xl-sft | XL SFT — highest quality XL variant. | 40+ | ~10 GB |
acestep-v15-xl-base | XL base model. | 40+ | ~10 GB |
acestep-v15-merge-sft-turbo-xl-ta-0.5 | Community SFT+Turbo merge at α=0.5 by jeankassio. Blends SFT quality with Turbo speed. | 15–30 | ~20 GB |
acestep-v15-merge-base-turbo-xl-ta-0.5 | Community Base+Turbo merge at α=0.5 by jeankassio. | 15–30 | ~20 GB |
acestep-v15-merge-base-sft-xl-ta-0.5 | Community Base+SFT merge at α=0.5 by jeankassio. | 40+ | ~20 GB |
Note: XL models support LoRA/LoKr adapters, but only those trained specifically on the XL architecture — standard 1.5B adapters are not compatible due to different layer dimensions. Multi-batch generation (
batch_size > 1) is also not recommended for XL models at this time.
Download via CLI:
python -m acestep.model_downloader --model acestep-v15-xl-turbo --skip-main
| Model | Size | Notes |
|---|---|---|
acestep-5Hz-lm-1.7B | ~3.4 GB | Default. Included in main download. |
acestep-5Hz-lm-0.6B | ~1.2 GB | Lighter, faster. |
acestep-5Hz-lm-4B | ~8 GB | Highest quality. GGUF quantization recommended. |
HOT-Step 9000 includes built-in tools to reduce GPU memory usage, making it accessible on hardware with as little as 16GB VRAM — without sacrificing the full 4B parameter language model or advanced features like LoRA adapters.
The DiT (Diffusion Transformer) is the largest model component. HOT-Step supports on-demand weight quantization via torchao to dramatically reduce its VRAM footprint:
| Setting | VRAM Saved | Quality Impact | LoRA Compatible |
|---|---|---|---|
none (BF16) | Baseline | None | ✅ Full support |
int8_weight_only | ~2.5 GB | Negligible | ✅ Full support |
nf4 | ~5.5 GB | Minor | ✅ Works via dequantize→merge→requantize pipeline |
int4_weight_only | ~6.5 GB | Minor; experimental | ✅ Works via dequantized merge |
Configuration: Set ACESTEP_QUANTIZATION in your .env file:
# Options: auto, none, int8_weight_only, int4_weight_only, nf4
ACESTEP_QUANTIZATION=auto
When set to auto, HOT-Step detects your GPU VRAM and applies the appropriate quantization level automatically. Quantization is applied at model load time — no model re-download required.
Hot-swapping from the UI: Quantization can also be changed on-the-fly from the model dropdown panel without restarting the server. Changing quantization will reload the DiT model with the new setting.
LoRA on quantized models: Adapters work on both INT8 and INT4 quantized DiTs. Internally, base weights are dequantized for the merge computation, so adapter-modified layers run in BF16. VRAM increases slightly when LoRA is active, but remains well below the unquantized baseline.
The language models (LMs) that generate structured music tokens can be converted to GGUF format for use with llama-cpp-python. GGUF models use significantly less VRAM than the default vLLM/PyTorch backends and support partial CPU offloading.
How to convert:
The loading screen includes a built-in conversion panel. Select your model and desired quantization level, and click Convert to GGUF. Conversion progress is streamed live to the UI.
Alternatively, use the CLI:
python -m acestep.tools.gguf_converter acestep-5Hz-lm-4B --quant Q4_K_M
| Quant Level | LM VRAM | Quality | Speed |
|---|---|---|---|
| BF16 | ~8 GB | Lossless | Fast |
| Q8_0 | ~4 GB | Near-lossless | Fast |
| Q4_K_M | ~2.5 GB | Good | Moderate |
| Q5_K_M | ~3 GB | Very good | Moderate |
| Q6_K | ~3.5 GB | Excellent | Moderate |
What happens during conversion:
convert_hf_to_gguf.py from llama.cppllama-quantizellama-quantize binary and required DLLs are auto-downloaded from the llama.cpp GitHub releases on first usecheckpoints/ directoryGPU offloading: Configure how many transformer layers run on GPU via ACESTEP_N_GPU_LAYERS in .env:
# -1 = all on GPU (fastest), 0 = all on CPU (no VRAM), N = partial offload
ACESTEP_N_GPU_LAYERS=-1
These are measured values using the full acestep-5Hz-lm-4B model:
| Configuration | Peak VRAM | Notes |
|---|---|---|
| No quantization (BF16 DiT + vLLM) | ~22.2 GB | Full quality, full speed |
| INT4 DiT only | ~19.8 GB | Minimal quality impact |
| INT4 DiT + Q4_K_M LM | ~15.6 GB | Fits 16GB GPUs with headroom |
| INT8 DiT + Q8_0 LM | ~17 GB | Best quality/VRAM balance |
Note: GGUF-based LM inference disables CFG (classifier-free guidance) automatically to maintain reasonable generation speed. This has minimal impact on output quality, especially when using Thinking mode.
install.bat to install dependencies.checkpoints/ directory.LAUNCH.bat to start the application with the interactive loading screen.Requirements: Python 3.11/3.12, Node.js 18+, NVIDIA CUDA drivers
git clone https://github.com/scragnog/HOT-Step-9000.git
cd HOT-Step-9000
chmod +x install-linux.sh launch-linux.sh
./install-linux.sh # First-time setup
./launch-linux.sh # Start the app
Requirements: macOS with M1/M2/M3/M4, Python 3.11/3.12, Node.js 18+
git clone https://github.com/scragnog/HOT-Step-9000.git
cd HOT-Step-9000
chmod +x install-macos.sh launch-macos.sh
./install-macos.sh # First-time setup
./launch-macos.sh # Start the app
macOS Limitations:
torch.compile (MLX mx.compile used for MLX components)mlx (recommended) or pt only (no vllm)Requirements: Python 3.11/3.12, Node.js 18+, ROCm 6.x drivers
git clone https://github.com/scragnog/HOT-Step-9000.git
cd HOT-Step-9000
chmod +x install-rocm.sh launch-rocm.sh
./install-rocm.sh # First-time setup (includes HSA_OVERRIDE guide)
./launch-rocm.sh # Start the app
ROCm Limitations:
torch.compile (disabled by default)float32 (set ACESTEP_ROCM_DTYPE=bfloat16 in .env if your GPU supports it)pt onlyRequirements: Docker, NVIDIA Container Toolkit
git clone https://github.com/scragnog/HOT-Step-9000.git
cd HOT-Step-9000
# Download models first (checkpoints/ is volume-mounted, not baked into image)
python3 -m acestep.model_downloader
# Build and run
docker compose up --build
Access the UI at http://localhost:3000 once all services are ready.
HOT-Step 9000 exists thanks to the incredible open-source AI audio community:
This project inherits the licensing of its upstream parents. See original repositories for detailed model and code licensing. Please use AI generation tools responsibly.
Python
60.8%
TypeScript
36.1%