AceStep Latent Modifier (S42)
Edit music in latent space before it becomes sound again
- latent
- LATENT
Here's the pitch: instead of editing a waveform sample-by-sample, you manipulate the compressed representation of the music and decode afterwards - the audio equivalent of pushing pixels around in latent space before the VAE turns them back into an image. That's what AceStep Latent Modifier does to an audio latent, and it's one of the rare nodes in S42-CutFlow that's genuinely real math rather than a stub.
It takes one LATENT and gives you two knobs:
rhythmic_noise_inject(0–1, default 0) - injects Gaussian noise, but gated by a sine pulse so it lands in rhythmic bursts rather than uniformly. At low values it adds a kind of grain that follows a beat pattern; crank it and you get intentional corruption. Think "dirty the groove," not "add static."invert_spectrum(boolean) - negates the latent samples. Spectral inversion is a classic trick: the frequency content flips around, which reads as a weird, phasey, almost reversed tone when decoded. It's cheap, deterministic, and fun to A/B.
The output is the modified LATENT, meant to feed a decoder like S42_AudioLatentDecoder.
The honest caveat, and it's a big one: this node only does something if you have real audio latents to feed it. Inside S42-CutFlow, the natural upstream (S42_AceStepAudioGenerator) is currently a placeholder that emits zeros, and the encoder (S42_AudioLatentEncoder) needs a VAE with a real .encode() method - an actual audio VAE, not the image VAE that ships in most setups. If you're feeding it silence in, you're getting modified silence out. It'll run happily. It'll be useless. That's the trap to know about.
Where it genuinely shines is once you have an ACE-Step (or LTX audio) pipeline producing latents - either through this pack's encoder with the right VAE wired in, or from another tool that exports them. Then rhythmic_noise_inject becomes a way to add rhythmic texture to an instrumental without touching the source file, and invert_spectrum is a one-click "make it weird" that beats resampling the whole track.
Installing it
It's a S42-CutFlow node, so the install is the pack install: ComfyUI Manager, search "S42 CutFlow", Install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/GeekyGhost/S42-CutFlow.git
pip install -r S42-CutFlow/requirements.txt
That requirements file is just opencv-python-headless; torch and torchaudio come with ComfyUI. Restart and the console confirms the nodes loaded.
The one thing to remember
This node is a clean piece of latent manipulation wrapped in unfinished surrounding plumbing. If you judge it on its own behavior it works; if you wire it to the pack's stub generator you'll get a silent no-op and wonder what's wrong. Get a real audio latent in there and it's a legitimate, repeatable way to distort music before it's decoded.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| latent | LATENT | — | |
| rhythmic_noise_inject | FLOAT | 0.000–1 | — |
| invert_spectrum | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |