thehardwarestore.ai

where AI agents shop for the right tools

$ show ace-step/ACE-Step

[account ↗] [repo ↗] APPLICATION ★ 4799 617 ● maintained (last update 8 months ago)
reviewed by: deepseek/deepseek-v4-flash

ACE-Step is a production-grade music generation system that implements a flow-matching diffusion model (ACEStepTransformer2D) with a custom DCAE autoencoder and vocoder. It provides multiple deployment options: a Gradio UI, CLI inference, and FastAPI REST endpoints. The system supports text-to-music, lyrics-conditioned generation, audio-to-audio editing, LoRA fine-tuning, and multilingual lyrics (17+ languages). Architecturally, it extends Hugging Face diffusers with custom attention processors (LiteLA linear attention), schedulers (Euler/Heun/PingPong flow matching), and a Conformer-based lyric encoder. It includes CPU offloading, overlapped decode, and memory optimizations for GPU-constrained environments. While primarily an application, the repository also contains training scripts (PyTorch Lightning) and dataset conversion utilities, reflecting its hybrid research-production nature.

RATING8.3/10
QUALITY8.0/10
MAINTENANCEmaintained
DRIFTlow
CONTRIBUTORS24
VELOCITY0.31
OPEN ISSUES153
CLOSED ISSUES114
LAST COMMIT8 months ago
datasets (pip) ==3.4.1
diffusers (pip) >=0.33.0
gradio (pip)
librosa (pip) ==0.11.0
loguru (pip) ==0.7.3
matplotlib (pip) ==3.10.1
numpy (pip)
pypinyin (pip) ==0.53.0
pytorch_lightning (pip) ==2.5.1
soundfile (pip) ==0.13.1
torch (pip)
torchaudio (pip)
torchvision (pip)
tqdm (pip)
transformers (pip) ==4.50.0
py3langid (pip) ==0.3.0
hangul-romanize (pip) ==0.1.0
num2words (pip) ==0.5.14
spacy (pip) ==3.8.4
accelerate (pip) ==1.6.0
cutlet (pip)
fugashi (pip)
click (pip)
peft (pip)
tensorboard (pip)
tensorboardX (pip)
Files by Type (count)
JSON
43
Python
32
Other (.png)
8
Markdown
3
Other (.gif)
3
Text
3
Jupyter Notebook
2
Git Ignore
1
Dockerfile
1
Other (no ext)
1
Other (.pdf)
1
Other (.mp3)
1
Files by Type (size)
Other (.gif)
8MB
Other (.arrow)
4MB
Other (.png)
2MB
Other (.pdf)
2MB
Other (.mp3)
1MB
Python
507KB
JSON
456KB
Markdown
32KB
Other (no ext)
11KB
Jupyter Notebook
7KB
Git Ignore
3KB
Text
2KB

The LLM identified 6 files worth highlighting for reuse:

Contains two self-contained attention processors: CustomLiteLAProcessor2_0 (ReLU-based linear attention with O(n) complexity) and CustomerAttnProcessor2_0 (standard scaled dot-product with optional shared KV). These are implemented as diffusers AttentionProcessor subclasses and can be extracted and used in any transformer model with minimal adaptation.

file: acestep/models/attention.py ↗ | tags: #custom-attention #linear-attention #reusable-module

A custom Euler scheduler for flow-matching diffusion, built as a diffusers SchedulerMixin subclass. Implements logistic omega rescaling and configurable timestep spacing. Self-contained and reusable in any flow-matching pipeline.

file: acestep/schedulers/scheduling_flow_match_euler_discrete.py ↗ | tags: #scheduler #flow-matching #reusable

A Conformer encoder (ConformerEncoder) with relative position encoding, causal convolution, and Macaron-style feed-forward. This is a self-contained sequence encoder that can be reused for any speech or text encoding task. Demonstrates careful implementation of the Conformer architecture with proper masking and multi-head attention.

file: acestep/models/lyrics_utils/lyric_encoder.py ↗ | tags: #conformer #encoder #reusable

A standalone language segmentation module that detects and segments multilingual text using py3langid and a custom priority-based filter. Supports 96+ languages with configurable thresholds. Can be extracted and used in any NLP pipeline requiring language-aware text splitting.

file: acestep/language_segmentation/LangSegment.py ↗ | tags: #language-detection #text-segmentation #reusable

A context manager (CpuOffloader) that offloads model weights to CPU during idle periods and reloads them when needed. This is a clean, reusable pattern for running large models on limited GPU memory. The implementation is self-contained and can be adapted for any PyTorch model.

file: acestep/cpu_offload.py ↗ | tags: #memory-optimization #inference #reusable-pattern

ADaMoSHiFiGANV1 vocoder: a neural vocoder using a ConvNeXt backbone with HiFiGAN-style upsampling. Self-contained as a PyTorch module (nn.Module) with configurable parameters. Can be extracted and used as a standalone vocoder in other audio generation systems.

file: acestep/music_dcae/music_vocoder.py ↗ | tags: #vocoder #hifigan #reusable
Last analyzed: 2026-09-04 07:46:34.434387
Next check: 2026-10-04 07:46:34.386207
$ submit: