ACE-Step Remix (opt-in)
ACE-Step Remix is a bridge, not a model — the opt-in is the whole story
- output_reference
- receipt
The "(opt-in)" in the display name is the entire story. LF_ACEStepRemix does not ship the model, does not download it, and does not run it. It's an HTTP bridge between your ComfyUI graph and a separate ACE-Step API server that you're expected to stand up yourself. No server, no node - you'll get a connection error before anything musical happens. That's not a bug, it's the design: ACE-Step is several GB of weights and the author decided ComfyUI shouldn't babysit them.
What it buys you, when the server is running, is genuinely cool. ACE-Step is the open-weights music model co-developed by ACE Studio and StepFun - the community's default local answer to Suno, capable of running on surprisingly little VRAM and strong on instrumentals (vocals remain its weak suit, same as Suno's). This node gives you two of its headlining tricks without leaving the graph: cover, which restyles the whole source track, and repaint, which regenerates only a selected time range.
How it works
The node takes one audio file from inside ComfyUI's managed roots (input, temp, or output), posts it to http://127.0.0.1:8001 by default with your controls, then polls query_result until the job lands. The finished audio is downloaded into ComfyUI/output/lf-workflow-runner/ace-step/ and returned as a playable artifact in the UI. The bridge deliberately asks for batch_size: 1 - ACE-Step's API otherwise defaults to two generations, wasting VRAM on an artifact the workflow can't represent.
Three environment variables tune the connection: LF_ACESTEP_API_URL (default http://127.0.0.1:8001), LF_ACESTEP_API_TOKEN (optional bearer token), and LF_ACESTEP_TIMEOUT_SECONDS (how long to poll, default an hour).
The inputs that matter
- mode -
coverrestyles everything;repainttouches onlyrepaint_starttorepaint_end(setrepaint_endto-1for "to the end"). - style_prompt - describe the target genre, instrumentation, mood. This is where your actual creativity goes.
- lyrics / instrumental - flip
instrumentalon andlyricsis ignored (the node literally sends"[Instrumental]"). - audio_cover_strength - how hard the source performance steers the cover; higher keeps more of the original.
- seed -
-1lets ACE-Step pick; set a real value to compare runs. - output_format - default
flacis lossless and uses ACE-Step's built-in path;mp3is smaller but demands ffmpeg inside the API runtime.
The rest - inference_steps (8), guidance_scale (7), infer_method (ode/sde), shift (3) - are standard diffusion dials. Leave them alone until you're chasing a specific recipe.
Outputs are output_reference, a portable path string like lf-workflow-runner/ace-step/<hex>.flac [output] you can hand to downstream nodes, and a receipt JSON with the task id, source reference, controls, byte size, and sha256.
Installing it
The node itself is one of ~138 in the LF Nodes pack:
cd ComfyUI/custom_nodes
git clone https://github.com/lucafoscili/lf-nodes.git
…then restart ComfyUI (or use ComfyUI Manager and search "LF Nodes"). Manager handles requirements.txt for you; a manual clone needs pip install -r requirements.txt. One pack-level gotcha: the repo was rewritten and the old one archived in late 2025 - if you cloned the previous location, reinstall from lucafoscili/lf-nodes.
The real install is the server. Point it at an ACE-Step HTTP API on port 8001, confirm curl http://127.0.0.1:8001/... answers, then run the node.
Where people get burned
- Connection refused on every run - the ACE-Step server isn't up. It's opt-in; nothing in this pack starts it.
- Long waits with no result - raise
LF_ACESTEP_TIMEOUT_SECONDS(capped at 24h) or lowerinference_steps. mp3failing whileflacworks - ffmpeg missing on the server side, not in ComfyUI.- Expecting sung vocals - ACE-Step itself is the limit; write instrumental or keep lyrics short.
If you already run ACE-Step locally, this node is a tidy way to drive covers and repaints from inside a ComfyUI pipeline without hand-rolling the API calls.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| source_audio | STRING | One audio file inside ComfyUI input, temp, or output; upload/select it upstream. | |
| mode | COMBO | cover | Cover restyles the whole source; repaint changes only the selected time range. |
| style_prompt | STRING | Describe the target genre, instrumentation, voice, mood, and production style. | |
| lyrics | STRING | Lyrics to guide the result; ignored when instrumental is enabled. | |
| instrumental | BOOLEAN | false | Generate music without sung lyrics. |
| audio_cover_strength | FLOAT | 1.000–1 | How strongly the source performance guides the cover; higher keeps more of it. |
| cover_noise_strength | FLOAT | 0.200–1 | Variation injected before generation; higher can change the source more. |
| repaint_start | FLOAT | 0.00–86400 | Start of the repaint interval in seconds. |
| repaint_end | FLOAT | -1.0-1–86400 | End of the repaint interval in seconds; -1 means the end of the source. |
| seed | INT | -1-1–9223372036854776000 | Reuse a seed for comparison; -1 asks ACE-Step to choose one. |
| inference_steps | INT | 81–200 | Denoising passes; more may refine the result but take longer. |
| guidance_scale | FLOAT | 7.00–100 | How strongly the result follows the text guidance. |
| infer_method | COMBO | ode | ACE-Step integration method: ODE is the usual deterministic choice; SDE adds stochasticity. |
| shift | FLOAT | 3.01–5 | ACE-Step timestep shift; keep the default unless testing a known recipe. |
| output_format | COMBO | flac | Saved audio format. FLAC is lossless; MP3 is smaller and requires ffmpeg in the API runtime. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| output_reference | STRING | Portable path below ComfyUI output; a playable audio artifact is also returned in the UI. |
| receipt | JSON | JSON receipt for the submitted job and downloaded output. |