Nodes/S42 CutFlow/🫨 Audio Latent Wobble (S42)
ComfyUI Node

🫨 Audio Latent Wobble (S42)

Make your image or video latent throb to the music — no audio VAE required

By GeekyGhost·Created 6 months ago·Updated 4 months ago· 3
🫨 Audio Latent Wobble (S42)
  • latent
  • LATENT
audio_curve
intensity0.5
channel_offset0

Now this one's fun, and it's also the rare audio node in this pack that works with machinery you already own. AudioLatentWobble takes an ordinary image or video latent - the kind any normal VAE produces - and pulses one of its channels in time with an audio curve. No audio VAE, no silent-latent traps, just beat-reactive distortion before your sampler runs. That's the whole trick: it doesn't touch audio at all, it uses an audio-derived curve to deform visual latents.

You feed it four things:

  • latent - an image latent (4D B,C,H,W) or video latent (5D B,C,F,H,W) from any VAE encode.
  • audio_curve - connect a bass, mid, or treble curve from S42_AudioFrequencyExtractor. Bass makes the kick drum drive the wobble; treble makes it twitchy and hi-hat driven. Your choice of band changes the feel completely.
  • intensity (0–5, default 0.5) - how hard the beat multiplies the channel. The effect is channel *= 1 + (energy × intensity), so 0.5 is a gentle pulse and 3+ is where things visibly distort.
  • channel_offset (0–15, default 0) - which latent channel gets hit. The tooltip's framing is right: different channels control different structural or color elements, so this is a "try each and see what moves" dial.

The mechanism adapts to your latent's shape, which is a genuinely nice touch. For a 4D image latent it takes the average energy across the whole clip and applies it once - your image latent pulses uniformly. For a 5D video latent it samples the curve per frame, so each frame gets the energy of the audio moment it lands on - that's the one that makes footage visibly breathe with the music.

Because this multiplies a channel in latent space before sampling, the result is not predictable like a filter. You won't be able to say "this channel controls brightness" with confidence - latent channels encode a messy mixture of semantics, and the tooltip admits as much. Expect to sweep channel_offset and find that one setting does something lovely and the rest do nothing visible. That's normal, not a bug.

It lives under the Experimental category for a reason. The pack author is clearly exploring audio-reactive generation, and this is the most usable fruit of that exploration: cheap, deterministic, and it doesn't require you to own any audio model beyond a waveform. It's the node I'd start a "beat-reactive music video" experiment with.

Installing it

Standard S42-CutFlow 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

Only hard dependency is opencv-python-headless; the wobble math is pure torch. Look for the "[S42 CutFlow] Loaded ..." console line after restart.

Where you'll use it

Right after a VAE Encode, before the KSampler, with a Frequency Extractor's bass curve wired in. Pick a channel, pick an intensity, and let the kick drum push the latent around. It's experimental, results vary, and it's one of the few genuinely novel things in the pack.

CategoryS42 CutFlow/Audio/Latent/Experimental

Inputs (4)

NameTypeDefaultDescription
latentLATENTImage or Video latent to be modulated.
audio_curveFLOATConnect the bass, mid, or treble curve from the Frequency Extractor.
intensityFLOAT0.50–5How intensely the beat distorts the latent channels.
channel_offsetINT00–15Which latent channel to target. Different channels control different structural or color elements.

Outputs (1)

NameTypeDescription
LATENTLATENT