Nodes/RyanOnTheInside/ACE-Step 1.5 Denoising Trajectory EQ (Experimental) βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

ACE-Step 1.5 Denoising Trajectory EQ (Experimental) βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

Steer what a song generates, not just how it sounds

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
ACE-Step 1.5 Denoising Trajectory EQ (Experimental) βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • model
  • temporal_mask
  • keystone_config
  • MODEL
β—„guidance_scale1.0β–Ί
β—„g0g4_gain1.00β–Ί
β—„g1_gain1.00β–Ί
β—„g5g6_gain1.00β–Ί
β—„g2_gain1.00β–Ί
β—„g3_gain1.00β–Ί
β—„g7_gain1.00β–Ί
β—„effect_start_pct0.00β–Ί
β—„effect_end_pct1.00β–Ί

Its own display name says "(Experimental)" and that's the honest framing to keep - this node isn't a mixing-desk EQ that reshapes a finished track's tone. Its own tooltip is explicit: it "changes what the model generates, not just how it sounds." It runs the ACE-Step 1.5 model twice per diffusion step and steers the generation along the difference between those two runs, nudging the trajectory of what gets generated in the first place. That's a meaningfully different, more experimental thing than post-processing EQ, and it costs an extra forward pass per step to do it.

How it works

ACE-Step's latent space groups into named channel bands, and this node exposes gain sliders for six of them - the pack author's own empirical mapping, documented right in the tooltips rather than left as a guess: g0g4_gain (channels 0-7 + 32-39, sensitivity 0.9, near-linear response), g1_gain (channels 8-15, inverted - sensitivity -0.5, but noted as producing the strongest spectral centroid shift of any group), g2_gain (channels 16-23, sensitivity 0.5, conservative but the largest perceptual distance of any group), g3_gain (channels 24-31, sensitivity 1.0, the strongest overall group by average effect - and explicitly flagged that boosting past 1.5 can cause pitch shifting), g5g6_gain (channels 40-55, sensitivity 1.0, direct response), and g7_gain (channels 56-63, inverted, sensitivity -1.0). All six default to 1.0, which is neutral - nothing changes until you move a slider off that.

The "inverted" groups are worth internalizing before you touch them: for g1_gain and g7_gain, pushing the slider up from 1.0 steers the effect in the opposite direction you'd intuitively expect from the other four bands. guidance_scale is the master strength control - 0 turns steering off entirely, positive values steer toward whatever emphasis the band gains encode, negative values steer away from it, and it accepts a list of floats if you want the strength itself to change over the course of generation. effect_start_pct/effect_end_pct window where in the denoising trajectory (0 to 1, start to end) the steering is active at all, and an optional temporal_mask blends the gains back toward neutral (1.0) wherever the mask is 0, giving you time-localized control without touching the sliders themselves. If you need finer control than six broad bands, the optional keystone_config input - built with this pack's Keystone Config node - multiplies six individual high-impact channels on top of the band gains.

Inputs and outputs

  • model (required, MODEL) - your ACE-Step 1.5 model; this node patches it rather than replacing it.
  • guidance_scale - overall steering strength, including direction (negative steers away).
  • The six *_gain sliders - the actual steering controls, 0 to 2, neutral at 1.0.
  • keystone_config (optional, KEYSTONE_CONFIG) - for surgical control on top of the band-level gains.
  • Output - a single MODEL, wired onward into your sampler/guider setup in place of the unpatched model.

Installing it

Install through ComfyUI Manager (search RyanOnTheInside) or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside

Then pip install -r requirements.txt and restart ComfyUI. You need an ACE-Step 1.5 checkpoint already set up separately - this node has nothing to steer without one, and it's specifically the 1.5 generation of the model, not earlier ACE-Step releases.

Common issues

The extra forward pass per denoising step is a real cost, not a rounding error - expect generation to take noticeably longer with this node active than with a plain guider, since every step now runs the model twice. If a generation comes out slower than expected and you didn't account for that, this is why.

Given the "Experimental" label and the author's own note that perceptual effects are content-dependent, don't expect the same slider value to produce the same result across different prompts or genres - treat the documented sensitivities as a starting map, not a guarantee, and start with small moves (the pack's own safe-zone guidance elsewhere in this family is roughly 0.75-1.25) before pushing toward the extremes where g3_gain in particular risks pitch shifting.

Categoryaudio/acestep

Inputs (12)

NameTypeDefaultDescription
modelMODELβ€”
guidance_scaleFLOAT1.0-5–5Guidance strength. 0=off, positive=steer toward emphasis, negative=steer away. Accepts a list of floats for temporal scheduling.
g0g4_gainFLOAT1.000–2Channels 0-7 + 32-39. Sensitivity: 0.9 (near-linear).
g1_gainFLOAT1.000–2Channels 8-15. INVERTED (sensitivity: -0.5). Strongest spectral centroid shift of any group.
g5g6_gainFLOAT1.000–2Channels 40-55. Sensitivity: 1.0 (direct).
g2_gainFLOAT1.000–2Channels 16-23. Sensitivity: 0.5 (conservative). Largest perceptual distance of any group.
g3_gainFLOAT1.000–2Channels 24-31. Sensitivity: 1.0. Strongest overall group by avg effect. Boost >1.5 reported to cause pitch shifting.
g7_gainFLOAT1.000–2Channels 56-63. INVERTED (sensitivity: -1.0).
effect_start_pctFLOAT0.000–1Denoising progress to start applying effect (0=from start)
effect_end_pctFLOAT1.000–1Denoising progress to stop applying effect (1=until end)
temporal_maskoptMASKBlends gains toward neutral (1.0) where mask is 0.
keystone_configoptKEYSTONE_CONFIGOptional keystone channel config. Multiplies on top of band gains.

Outputs (1)

NameTypeDescription
MODELMODELβ€”