Nodes/comfyui-acemusic/AceMusic Retake (Variations)
ComfyUI Node

AceMusic Retake (Variations)

Same song, different take — variations without starting over

By hiroki-abe-58·Created 7 months ago·Updated 7 months ago· 42
AceMusic Retake (Variations)
  • model
  • audio
  • audio
retake_variance0.50
caption
lyrics
inference_steps27
seed-1

AceMusic Retake (Variations) is the "run it again, but different" node. You have a track you mostly like, but you want to hear the model take another swing at it - same structure, same bones, fresh details. In Suno terms it's the retake/re-roll button; locally, it's a one-node loop you can chain to generate a stack of takes and pick the best. If you've been deleting and re-generating whole songs just to get one better chorus, this is the node that stops that habit.

Inputs:

  • model - from the Model Loader.
  • audio - the track to vary.
  • retake_variance - 0 to 1, default 0.5, and the one that matters. 0 is essentially the original back; 1.0 keeps the structure but re-invents the details - different phrasing, ornaments, dynamics. The pack's docs describe it exactly that way: nearly identical at 0, completely re-interpreted at 1.

Optional: caption and lyrics to steer the variation, plus inference_steps and seed. Output is audio, same length as the input.

How it works

Here's the genuinely interesting bit, straight from the source: the pack doesn't use ACE-Step's own "retake" task, because that task doesn't accept a source audio file - the ACE-Step API asserts against it. So the author implemented Retake as a full-range "repaint": the pipeline is called with task="repaint", repaint_start=0, repaint_end=<full duration>, and the retake_variance knob passed along. Full-range repaint with the original as reference is functionally identical to a retake, and it sidesteps the engine's limitation. It's the kind of pragmatic hack that tells you the pack author actually read the upstream source. Knowing this also explains the semantics: variance controls how far the regenerated full pass can drift from the reference, which is why 0 ≈ same and 1 ≈ reinvention.

Installing it

Via ComfyUI Manager, search "ComfyUI-AceMusic", or:

cd ComfyUI/custom_nodes
git clone https://github.com/hiroki-abe-58/ComfyUI-AceMusic.git
cd ComfyUI-AceMusic
pip install -r requirements.txt
pip install git+https://github.com/ace-step/ACE-Step.git

Standard install story: pack deps are light, ACE-Step is the separate install, and its pinned == requirements are the usual crash site. Relax them to >= in a local clone if pip refuses.

Common issues

  • Every take comes out identical - retake_variance is too low, or your seed is fixed and you're expecting variation. Different seed or higher variance, or both.
  • Takes sound completely unrelated to the original - variance too high (toward 1.0), or you added a caption that describes a different song.
  • Nothing changes at all - if the original was already a full-range repaint output and the audio is near-stochastic, variance can barely move it. Feed it something with more structure.
  • The variation is slower than expected - full-range repaint is effectively a full regeneration, so budget compute like a full generation, not a partial one.

The workflow that makes this node shine: generate once, fan the output into two Retakes at different variances, compare, and keep the winner. Each take is cheap on a 4090 - roughly a couple of seconds per minute of audio - so the "generate a batch, pick a favorite" loop is the intended way to use it.

CategoryAceMusic/Generation

Inputs (7)

NameTypeDefaultDescription
modelACEMUSIC_MODEL
audioAUDIO
retake_varianceFLOAT0.500–1
captionoptSTRING
lyricsoptSTRING
inference_stepsoptINT271–100
seedoptINT-1-1–2147483647

Outputs (1)

NameTypeDescription
audioAUDIO