ACE-Step Text To Audio
ACE-Step text to audio — paste lyrics, get a song, without the 20 GB local download
- api_config
- audio
- request_id
- urls
This is the "type lyrics, get a track" node. ACE-Step is the open-source music generation model, and this node calls the hosted version through BizyAir. You feed it words, optionally some style tags and a duration, and it comes back with a finished audio clip - no local model, no VRAM, no hours of dependencies.
The fun fact is that this is the one node in the pack where you can see both sides of the coin in the pack's own examples: ace_step1_5_xl_base.json runs ACE-Step locally, with an EmptyAceStep1.5LatentAudio node, a UNET loader, and a KSampler chained together. So if you've got the VRAM and the appetite for a multi-gigabyte model download, the local path exists. This node is the no-download alternative - same family of model, hosted, paid per use.
Inputs
- lyrics - required. The actual words. This is the whole point of the node.
- tags - optional style tags. This is where you tell it "lo-fi, female vocal, slow" or whatever direction you want. Leave it empty and you get whatever the model defaults to, which is usually not what you wanted.
- duration - seconds, 10 to 300, default 30. Keep it realistic relative to your lyrics - two lines of text at 300 seconds is a recipe for a very padded track.
- seed - for reproducibility. Set it to regenerate the same take, or leave 0 for fresh rolls.
Outputs: audio (an AUDIO tensor you wire into SaveAudioMP3 or a VHS-style audio saver), plus request_id and urls (JSON string of the output file URLs, in case you want the file directly).
How it works
Standard BizyAir API flow: the pack serializes lyrics, tags, duration and seed, submits them to the hosted ace-step/text-to-audio endpoint, and polls until the track renders. Music generation is slow - don't be surprised if this node sits there for a while; the result is a full waveform, not a single image. The key comes from BizyAirPlus settings or BIZYAIR_API_KEY unless you override with a settings node.
Where people get burned
- No style tags. The model is a blank slate without them. You'll get mush. Give it something.
- Duration vs. lyrics mismatch. Short lyrics, long duration, and the model stretches what it has. Either trim the duration or write more.
- Silent placeholder output. If the run fails and you enabled
skip_error, the node returns a silent 1-second placeholder audio clip with the error text - that's the pack's failure mode, not a broken render. Check theurlsoutput and the console.
Install
Part of the BizyAirPlus pack:
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAirPlus.git
cd BizyAirPlus
python -m pip install -r requirements.txt
Restart ComfyUI, confirm BizyAirPlus is ON with a valid key, wire the AUDIO output into a saver, and go write a jingle. If this becomes a regular habit, though, check that local ACE-Step example - the credits add up faster than the download time.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| lyrics | STRING | Lyrics | |
| tagsopt | STRING | Style tags | |
| durationopt | INT | 3010–300 | Duration of music in seconds |
| seedopt | INT | 0-1–2147483647 | Seeds |
| api_configopt | BIZYAIR_OPENAPI_CONFIG | 单次请求覆盖base_url和api_key | |
| skip_erroropt | BOOLEAN | false | 开启后遇到错误不中断工作流,输出对应类型的错误占位符 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| request_id | STRING | — |
| urls | STRING | — |