ACE-Step Repaint
Fix one bad chorus without regenerating the whole song — ACE-Step Repaint
- src_audio
- audio
- audio_path
- metadata
Imagine a tool where instead of regenerating a whole track because one section is off, you select that 10-second window and re-roll just it. That's ACE-Step Repaint, and it's the audio cousin of inpainting. You tell it where the problem is - "seconds 30 to 40 sound muddy" - and it redraws that region to match your description while leaving the rest of the file alone. Fix a flubbed vocal line, swap a boring bridge for something dramatic, smooth out a transition. Same workflow, surgical edit.
It comes from the same ACE-Step 1.5 core as the Cover node in this pack, so if you've already installed one you've installed both. The mechanic is region-conditioned diffusion: the model encodes your source audio, regenerates just the marked span under your caption, and stitches it back. The word "repaint" is doing real work - it's not a fade, not a filter, not a splice. It's new audio generated inside the old.
The inputs that matter
src_audio- the track to edit (from ComfyUI's Load Audio node).caption- describe what the repainted region should be. "Epic orchestral hit with rising tension" beats "make it better."repainting_start/repainting_end- the region in seconds.endof-1means "to the end of the audio," which is handy for redoing the outro.inference_steps- 8 on the turbo config, 25-50 if you switch to base.
Everything else is the usual pack-wide set: checkpoint_dir (defaults to the "Ace-Step1.5" folder under models), config_path (acestep-v15-turbo for speed), lm_model_path, seed, and device (auto is fine). There's also quantization (int8_weight_only) plus compile_model - the quantization path requires compile_model on and needs torchao installed, and it's incompatible with LoRA. Most people can ignore both; the first compile run is slow.
Outputs are audio (→ Save Audio), audio_path, and metadata as a JSON string.
Install
Same as every node in the Kaola pack - one-time, shared setup:
git clone https://github.com/ACE-Step/ACE-Step-1.5.git
cd ACE-Step-1.5 && pip install -e .
cd ComfyUI/custom_nodes
git clone https://github.com/kana112233/ComfyUI-kaola-ace-step.git
cd ComfyUI-kaola-ace-step && pip install -r requirements.txt
huggingface-cli download ACE-Step/Ace-Step1.5 --local-dir ComfyUI/models/Ace-Step1.5
ComfyUI Manager can install the node pack (search "ComfyUI-kaola-ace-step"), but the ACE-Step dependency and the model download are on you either way. Restart after installing.
Where people get burned
The Repaint/Cover siblings share the pack's most reported bug: in early versions, output came out speed-shifted - a repainted section (or whole song) that plays back at the wrong tempo, usually way too fast. A community pull request fixed it; if you hear the chipmunk effect, update the pack to the latest release before debugging anything else.
The other honest limitation is lyric fidelity. The model happily redraws a region and can even get the voice closer to what you want, but it won't reproduce the original words exactly. If your use case is "re-sing this chorus with the same lyrics," you'll be chasing that for a while - it's a vibe-editing tool, not a stem-level DAW. For cleaning up a rough generation or adding a variation to one passage, though, nothing else in this pack does the job faster.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| src_audio | AUDIO | The original audio signal to be repainted. | |
| caption | STRING | Style description prompt for the repainted region. | |
| repainting_start | FLOAT | 0.000–600 | Start time for the repainting region in seconds. |
| repainting_end | FLOAT | -1.00-1–600 | End time for the repainting region in seconds. -1 means until the end of the audio. |
| checkpoint_dir | COMBO | Ace-Step1.5 | Directory containing ACE-Step model weights (DiT model). |
| config_path | COMBO | acestep-v15-turbo | Specific model configuration to use (e.g., v1.5 turbo). |
| lm_model_path | COMBO | acestep-5Hz-lm-1.7B | Path to the language model used for processing metadata. |
| seed | INT | -1-1–18446744073709550000 | Random seed for reproducibility. Set to -1 for random generation. |
| inference_steps | INT | 81–64 | Number of diffusion steps. Higher values (e.g., 25-50) improve quality but are slower. |
| device | COMBO | auto | Computing platform to run the model on. |
| thinkingopt | BOOLEAN | true | Whether to show the language model's Chain-of-Thought reasoning. |
| quantizationopt | COMBO | None | Model quantization (e.g., int8). Reduces VRAM usage but requires torchao and compile_model=True. Incompatible with LoRA. |
| compile_modelopt | BOOLEAN | false | Whether to use torch.compile to optimize the model. Required for quantization. Slow on first run but faster afterwards. |
| audio_formatopt | COMBO | flac | Output audio file format. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| audio_path | STRING | — |
| metadata | STRING | — |