FL AceStep LLM Loader
The node that auto-tags your music training set (no API key required)
- llm
Labeling a LoRA dataset by hand is the chore that makes people quit before training starts. This loader is the shortcut. It loads one of ACE-Step's small "5Hz" language models - 0.6B, 1.7B or 4B - onto your GPU so the FL AceStep Auto-Label Samples node can listen to each song and write its caption, genre, BPM, key, time signature and lyrics for you. Nothing here calls an API and there's no key to paste. It's a real model, auto-downloaded from HuggingFace, running locally.
That's the whole pitch, and it's a good one. The 5Hz-lm is a native part of the ACE-Step 1.5 design (see the ace-step panel if you want the model family background): audio gets compressed into discrete semantic codes at a 5Hz frame rate, and the language model reads those codes the way a captioner reads pixels. The node wraps a standard HuggingFace causal LM with the exact ChatML prompt format ACE-Step was trained on, so the output comes back as parseable YAML - bpm, keyscale, timesignature, genre, language, caption - ready for the dataset step to consume. One job, done properly.
Where it sits in the pipeline
Load checkpoint → Scan Audio Directory → LLM Loader → Auto-Label Samples → Preprocess → Config → Train.
It's the only node in the pack that's genuinely optional. If you'd rather write a .txt caption file next to each song (and lyrics if you have them), the Scan node picks those up and you can skip the LLM entirely. Use the loader when you have a folder of songs and zero patience for tagging.
The inputs that matter
- model_name - dropdown, default
acestep-5Hz-lm-1.7B. The 1.7B is the balanced pick: fast enough, sharp enough.0.6Bis lighter and quicker but the metadata gets rougher.4Bis the best ear but a bigger VRAM bill on top of everything else. - device -
auto/cuda/cpu.autodoes the sensible thing; only touch it if you're deliberately offloading. - backend -
pt/vllm.ptis what actually works out of the box. vLLM is an optional speedup, but it's commented out of the pack'srequirements.txt, so if you select it without installing it, the node just logs a warning and falls back topt. Not a trap, just noise. - checkpoint_path - leave empty to auto-download into
ComfyUI/models/acestep. Fill it in only if you already have the weights somewhere and don't want a duplicate download.
The single output, llm (ACESTEP_LLM), wires straight into Auto-Label Samples. That's its only consumer.
Installing it
This node ships inside the pack, so install the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI-FL-AceStep-Training.git
cd ComfyUI-FL-AceStep-Training
pip install -r requirements.txt
Then restart ComfyUI. Easier route: ComfyUI Manager → search "FL AceStep" → install. The pack needs transformers, torchaudio and soundfile among its requirements, which pip install -r handles for you. The frontend rebuild (npm install && npm run build) is only needed if you're modifying the training widget - prebuilt JS ships in the repo.
Where people get burned
- First run is a download, and it's not small. The 1.7B lives inside the main
ACE-Step/Ace-Step1.5repo; 0.6B and 4B are separate repos. Expect a few gigabytes and a patient first load - the node shows a progress bar, so it's not hung. - It's a second model in VRAM. You're running this alongside the ACE-Step checkpoint, so on a modest card do the labeling pass as its own step, then keep going. Labeling is front-loaded; it doesn't share memory with training later.
- Don't expect a conversational chatbot. People plug this in hoping to chat about their mix. It's a metadata engine. Feed it the codes, get structured tags back. That's the deal.
One honest caveat from the wider ACE-Step consensus: the LLM is good at describing instrumental music and shaky around vocals and lyrics - the same weak spot the model family has. For instrumental style training, which is most ACE-Step training, it's more than good enough.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | acestep-5Hz-lm-1.7B | 3 options: acestep-5Hz-lm-1.7B, acestep-5Hz-lm-0.6B, acestep-5Hz-lm-4B |
| device | COMBO | auto | 3 options: auto, cuda, cpu |
| backend | COMBO | pt | 2 options: pt, vllm |
| checkpoint_pathopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| llm | ACESTEP_LLM | — |