ACE-Step

August 10, 2026 ยท View on GitHub

ACE-Step is wired as --family ace_step --task gen. It generates and edits music from text, lyrics, and optional source audio. The route controls whether source audio is ignored, optional, or required.

Common CLI shape:

audiocpp_cli --task gen --family ace_step --model models/Ace-Step1.5 --backend cuda --task-route <route> ...

Model

FieldValue
Familyace_step
Model directorymodels/Ace-Step1.5
Taskgen
Default DiTacestep-v15-turbo
Default LMacestep-5Hz-lm-1.7B
Prompt input--text
Lyrics input--lyrics
Source audioRoute-dependent through --audio

Text To Music

Generate a full song or music clip from prompt text and optional lyrics. Source audio is ignored by this route.

FieldValue
Routetext2music
Source audioIgnored
PlannerUsed unless audio_codes are supplied
Duration--duration-seconds; -1 lets the planner/model choose
Metadata controlsOptional bpm, keyscale, timesignature, and language
audiocpp_cli --task gen --family ace_step --model models/Ace-Step1.5 --backend cuda --task-route text2music --text "cinematic synth pop with clear vocals" --lyrics "We rise with the morning light" --duration-seconds 60 --out song.wav

Use the base DiT instead of turbo:

audiocpp_cli --task gen --family ace_step --model models/Ace-Step1.5 --backend cuda --task-route text2music --text "acoustic folk ballad" --lyrics "The river remembers our names" --duration-seconds 60 --load-option ace_step.dit_model_path=acestep-v15-base --out song.wav

Complete

Complete or continue a source audio track. Source audio is optional: if provided, it conditions the continuation; otherwise the route behaves like a completion prompt.

FieldValue
Routecomplete
Source audioOptional
PlannerUsed
DurationSource duration is not locked unless requested metadata or planner output controls it
Track classesOptional complete_track_classes list changes the completion instruction
audiocpp_cli --task gen --family ace_step --model models/Ace-Step1.5 --backend cuda --task-route complete --audio input.wav --text "finish this as a cinematic rock track" --out complete.wav

Lego

Compose or transform a track from source audio plus a prompt. Source audio is required and preserved as the repaint context.

FieldValue
Routelego
Source audioRequired
PlannerUsed
DurationLocked to source audio
Repaint windowUsed internally over the source context
Track nameOptional track_name changes the generated instruction
audiocpp_cli --task gen --family ace_step --model models/Ace-Step1.5 --backend cuda --task-route lego --audio input.wav --text "generate a brighter guitar layer" --request-option track_name=guitar --out lego.wav

Extract

Extract a target track from source audio. Source audio is required, and the route uses extraction-specific defaults for guidance and shift.

FieldValue
Routeextract
Source audioRequired
PlannerNot used
DurationLocked to source audio
Track nameOptional track_name; when omitted, the default extract instruction is used
Route defaultsguidance_scale=7.0, shift=3.0, planner chain-of-thought metadata disabled
audiocpp_cli --task gen --family ace_step --model models/Ace-Step1.5 --backend cuda --task-route extract --audio song.wav --text "extract vocals" --request-option track_name=vocals --out vocals.wav

Cover

Generate a cover from source audio using cover-tokenizer conditioning. Source audio is required and duration is locked to the source.

FieldValue
Routecover
Source audioRequired
PlannerNot used
Cover conditioningUses the FSQ cover tokenizer
DurationLocked to source audio
audiocpp_cli --task gen --family ace_step --model models/Ace-Step1.5 --backend cuda --task-route cover --audio source.wav --text "turn this into energetic pop vocals" --lyrics "We keep moving through the night" --out cover.wav

Cover Without FSQ

Generate a cover from source audio without the FSQ cover-tokenizer conditioning path.

FieldValue
Routecover-nofsq
Source audioRequired
PlannerNot used
Cover conditioningDoes not use the FSQ cover tokenizer
DurationLocked to source audio
audiocpp_cli --task gen --family ace_step --model models/Ace-Step1.5 --backend cuda --task-route cover-nofsq --audio source.wav --text "make a softer acoustic cover" --lyrics "We keep moving through the night" --out cover_nofsq.wav

Repaint

Replace a time span inside source audio. Source audio and a repaint window are required.

FieldValue
Routerepaint
Source audioRequired
PlannerNot used
DurationLocked to source audio
Required window--repaint-start, --repaint-end
Repaint policyrepaint_mode, repaint_strength, or direct repaint injection/crossfade options
audiocpp_cli --task gen --family ace_step --model models/Ace-Step1.5 --backend cuda --task-route repaint --audio song.wav --text "replace the middle with a brighter chorus" --repaint-start 20 --repaint-end 35 --out repaint.wav

Shared Controls

OptionValuesDefaultMeaning
--task-routetext2music, complete, lego, extract, cover, cover-nofsq, repainttext2musicACE-Step operation.
--texttextrequiredMusic prompt or edit instruction.
--lyricstextempty stringVocal lyrics.
--audioWAV pathroute-dependentSource audio for complete/edit/extract/cover routes.
--duration-secondsfloat, -1 for auto-1Target duration. Source-locked routes use source duration.
--languagelanguage codeenVocal language for lyrics.
--track-nametextempty stringTrack name used by lego and extract instructions.
--request-option complete_track_classes=a,bcomma-separated textempty listTrack classes for complete.
--repaint-startsecondsrequired for repaintStart time for repaint.
--repaint-endsecondsrequired for repaintEnd time for repaint.
--repaint-modebalanced, conservative, aggressivebalancedPreset repaint blending policy.
--repaint-strength0..10.5Repaint strength used by preset repaint mode.
--num-inference-stepsinteger8Diffusion denoising steps.
--guidance-scalefloat1.0; 7.0 for extract unless overriddenDiffusion guidance scale.
--seedintegerrandom if omittedGeneration seed.
--request-option bpm=<n>integernot setForce BPM metadata; otherwise the planner chooses it when used.
--request-option keyscale=<text>textnot setForce key metadata; otherwise the planner chooses it when used.
--request-option timesignature=<text>textnot setForce time signature metadata; otherwise the planner chooses it when used.
--request-option negative_prompt=<text>textNO USER INPUTNegative prompt.
--request-option audio_codes=<text>ACE semantic code textnot setSkip planner token generation and use supplied audio codes.
--request-option audio_cover_strength=<float>float1.0Cover strength for cover/edit-style conditioning.
--request-option cover_noise_strength=<float>float0.0Noise strength for cover conditioning.
--request-option lm_temperature=<float>float0.85Planner sampling temperature.
--request-option lm_cfg_scale=<float>float2.0Planner CFG scale.
--request-option lm_top_k=<n>integer0Planner top-k; 0 disables top-k.
--request-option lm_top_p=<float>float0.9Planner top-p.
--request-option lm_repetition_penalty=<float>float1.0Planner repetition penalty.
--request-option sampler_mode=<name>euler, heuneulerDiffusion sampler mode.
--request-option retake_seed=<n>integer, -1 to clearnot setOptional retake noise seed.
--request-option retake_variance=<float>float0.0Retake noise mixing strength.
--request-option flow_edit_morph=true|falseboolfalseStatus: parsed for text2music, but not usable because the flow-edit diffusion overlay is not implemented.
--request-option dcw_enabled=true|falseboolfalseStatus: experimental dynamic-cfg wavelet path. Keep disabled unless validating that path.

Model Selection

OptionValuesDefaultMeaning
--load-option ace_step.dit_model_path=<dir>acestep-v15-turbo, acestep-v15-baseacestep-v15-turboSelect DiT variant inside the model root.
--session-option ace_step.dit_weight_type=<type>native, f32, f16, bf16, q8_0nativeDiT weight type.
--session-option ace_step.planner_weight_type=<type>native, f32, f16, bf16, q8_0nativePlanner LM weight type.
--session-option ace_step.mem_saver=true|falseboolfalseRelease staged graph/cache state after request phases to reduce resident VRAM. Later requests may rebuild released graphs.

ACE-Step GGUF packages are variant-specific. Use the Turbo GGUF for the default acestep-v15-turbo path, and pass --load-option ace_step.dit_model_path=acestep-v15-base when loading a Base GGUF package.