AceMusic Understand (Duration + Placeholders)
It measures duration accurately and fakes the rest — for now
- model
- audio
- caption
- lyrics
- bpm
- keyscale
- duration
- language
Let's be blunt about AceMusic Understand (Duration + Placeholders): the display name is doing the honest work, because right now this node mostly measures how long an audio clip is and returns placeholder values for everything else. The pack's README says the same thing in a footnote. If you came here expecting "upload a song, get back its key, BPM, and lyrics" - the full AI audio-analysis experience - you'll be disappointed. That capability requires a future ACE-Step version with an understand_music() API, and this node is built to light up when that lands.
Inputs: model and audio. That's it. Outputs - all six, because they're a bundle:
- caption - placeholder (
"Audio track"for now) - lyrics - placeholder (empty)
- bpm - placeholder (120)
- keyscale - placeholder (
"C Major") - duration - accurate, measured from the actual audio
- language - placeholder (
"unknown")
What's actually useful right now
The one output you can trust is duration. The node reads your audio with soundfile and computes the real length in seconds - which is genuinely handy. Wire duration into AceMusic Conditioning's duration input and you can, say, re-generate a track to match the length of a reference clip, or feed a cover that inherits the source's duration without you typing a number. That's a small but real workflow. The rest are traps if you don't know they're placeholders - building a pipeline that "reads" BPM from an existing song and feeding it downstream will silently give you 120 BPM and C Major from every clip. Don't do that.
The good news: the code already checks for a future understand_music() method on the pipeline, and if a future ACE-Step ships it, this node starts returning real analysis with no update on your end. It's future-proofing disguised as a utility node.
Installing it
Via ComfyUI Manager, search "ComfyUI-AceMusic", or:
cd ComfyUI/custom_nodes
git clone https://github.com/hiroki-abe-58/ComfyUI-AceMusic.git
cd ComfyUI-AceMusic
pip install -r requirements.txt
pip install git+https://github.com/ace-step/ACE-Step.git
Standard pack install; the separate ACE-Step engine install is the fragile part (its pinned == requirements fail often - relax them in a clone or install deps manually).
Common issues
- "Why is every song 'C Major'?" - because every song is, placeholder-wise. Read the display name. Only
durationis real. - Duration seems off - it reads the actual decoded audio, so a compressed or truncated source gives the truncated length. Feed it the file you think you're feeding.
- Node needs a model just to measure duration - yes, the model input is required even though analysis is fake. It's a quirk of the current implementation; you still need the Model Loader in the graph.
Use it for duration, keep it out of anything that needs real analysis, and check back when ACE-Step grows the analysis API. It's a placeholder with a plan.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | ACEMUSIC_MODEL | — | |
| audio | AUDIO | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| caption | STRING | — |
| lyrics | STRING | — |
| bpm | INT | — |
| keyscale | STRING | — |
| duration | FLOAT | — |
| language | STRING | — |