Nodes/ComfyUI/TextEncodeAceStepAudio1.5
ComfyUI Node Runs on cloud

TextEncodeAceStepAudio1.5

TextEncodeAceStepAudio 1.5

By Comfy-Org·Created 4 years ago·Updated about 10 hours ago· 130,663
TextEncodeAceStepAudio1.5
  • clip
  • CONDITIONING
tags
lyrics
seed0
bpm120
duration120.0
timesignature
languageen
keyscale
generate_audio_codestrue
cfg_scale2.0
temperature0.85
top_p0.90
top_k0
min_p0.000

AceStep is ByteDance's music-generation model, and this is its "type out a whole track" prompt box. Where the plain TextEncodeAceStepAudio node just tokenizes tags and lyrics, the 1.5 variant is a full composer's console: it takes lyrics, genre tags, a tempo, a key, a time signature, even a duration, and turns all of it into a single conditioning for the AceStep diffusion model. If you've ever wanted to generate a complete song in ComfyUI - vocals and all - this is the node you'll be wiring.

The interesting part is generate_audio_codes. When it's on (the default), the tokenization invokes an LLM that writes the actual audio codes - think of it as the model drafting the music before diffusion refines it. That's slow but meaningfully better quality. Turn it off when you're giving the model an audio reference instead of asking it to invent everything from lyrics, per the tooltip.

The inputs you'll actually set: clip (the AceStep text encoder from a CLIP loader - this isn't a SD-style clip, so match the loader to the model), tags (genre/descriptors, multiline), lyrics (multiline), seed, bpm (10–300, default 120), duration (seconds, default 120), timesignature (2, 3, 4, or 6), language, and keyscale (every major/minor key). The rest - cfg_scale (default 2), temperature, top_p, top_k, min_p - are the sampling knobs for the audio-code LLM, and they're marked advanced because you'll rarely touch them. Output: a single CONDITIONING, which you feed to the sampler with an EmptyAceStepLatentAudio providing the latent.

It's core (comfy_extras/nodes_ace.py), ships with ComfyUI - no install. You'll need the AceStep model and its text encoder in the right model folders.

Honest expectations, because the community has run this one hot and cold: AceStep is genuinely fun for loops, chiptune, and demos, and audio-reactivity workflows have been built on it. But it's not the model for polished radio-ready tracks - expect it to shine on short energetic pieces and to drift structurally on long ballads. Where people get stuck: leaving generate_audio_codes on when they're doing a reference-driven generation (it fights the reference), or picking a bpm/duration combo the model wasn't trained on and getting oddly timed output. And if the vocals come out garbled, check the language field matches your lyrics - AceStep is much better in the languages it was tuned on.

Categorymodel/conditioning/ace

Inputs (15)

NameTypeDefaultDescription
clipCLIP
tagsSTRING
lyricsSTRING
seedINT00–18446744073709550000
bpmINT12010–300
durationFLOAT120.00–2000
timesignatureCOMBO4 options: 2, 3, 4, 6
languageCOMBOen51 options: ar, az, bg, bn, ca, cs, +45
keyscaleCOMBO34 options: C major, C# major, Db major, D major, D# major, Eb major, +28
generate_audio_codesBOOLEANtrueEnable the LLM that generates audio codes. This can be slow but will increase the quality of the generated audio. Turn this off if you are giving the model an audio reference.
cfg_scaleFLOAT2.00–100
temperatureFLOAT0.850–2
top_pFLOAT0.900–2000
top_kINT00–100
min_pFLOAT0.0000–1

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING