Nodes/RyanOnTheInside/Latent Frequency Blender βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

Latent Frequency Blender βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

Blend latents using audio frequency bands (experimental)

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Latent Frequency Blender βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • images
  • vae
  • frequency_ranges
  • audio
  • LATENT
β—„feature_typeβ–Ύβ–Ί
β—„strength1.0β–Ί
β—„feature_moderelativeβ–Ί
β—„frame_rate30.0β–Ί
β—„nonlinear_transformnoneβ–Ί
β—„blending_modelinearβ–Ί

Lead with the label the pack itself gives this node: ExperimentalWIP. That's the author's own category, not my editorializing - treat it as a node that might change shape, break, or get replaced rather than something to build a production pipeline around today.

What it does when it works: you give it a batch of images and a VAE, it encodes them into latents, and then it blends those latents based on frequency-band analysis of an audio track - think "the bass hits, latent A dominates; the mid frequencies come up, latent B takes over." It's part of RyanOnTheInside's audio-reactive toolkit, the same broad family that lets video react to audio, motion, and proximity interchangeably via what the pack calls Flex Features.

How it works, roughly

You feed it images and a vae (encoded into latents internally), plus audio and a feature_type telling it what to measure from that audio - amplitude envelope, RMS energy, spectral flux, or zero-crossing rate, each a different way of turning a waveform into a per-frame number. frequency_ranges narrows that analysis to specific frequency bands rather than the whole spectrum. Those per-frame values then drive blending_mode (linear crossfade, spherical slerp, or a hard on/off hard_switch) between latents, with strength scaling how strongly the audio signal pushes the blend and nonlinear_transform letting you reshape the curve (square it, take a log, etc.) before it's applied.

The inputs that matter

  • images / vae - what gets encoded and blended.
  • audio - the source driving the blend.
  • feature_type - which audio characteristic to extract (amplitude_envelope, rms_energy, spectral_flux, zero_crossing_rate).
  • frequency_ranges - a FREQUENCY_RANGE-type input, meaning it comes from a separate frequency-band-selection node elsewhere in the pack, not a value you type here directly. If you don't already have that upstream node in your graph, this node can't run standalone - it's not optional despite there being no obvious widget for it.
  • strength (default 1, 0–10), blending_mode (linear/slerp/hard_switch), feature_mode (relative/absolute), and nonlinear_transform (none/square/sqrt/log/exp) - the shaping knobs, worth leaving at defaults on a first pass and adjusting one at a time once you see what the base blend looks like.

Output is a single LATENT - decode it through the same VAE to see the result.

How to install it

The README came back empty when I checked for pack-specific install notes, so use the standard path for the suite:

ComfyUI Manager: search "RyanOnTheInside", install, restart.

Manual:

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

Restart afterward. Given this node alone touches audio DSP and VAE encoding, expect the pack's dependency list to be on the heavier side - normal for a suite this broad.

Troubleshooting

The single biggest snag: frequency_ranges requires an upstream node that isn't obvious from this node alone. If ComfyUI complains about a missing or unconnected FREQUENCY_RANGE input, you're missing that companion node - look for it elsewhere in the pack's FlexFeatures category rather than assuming this node is broken. Beyond that, remember the ExperimentalWIP label is doing real work here: if a result looks off or a parameter behaves unexpectedly, that's consistent with the pack's own "work in progress" framing, not necessarily a mistake on your end. If you're chasing audio-reactive latent effects and this one feels too unstable for what you need, the pack's other audio-driven Flex Features nodes (feeding a manual or audio-derived FEATURE into a more standard node) are the more battle-tested route.

CategoryRyanOnTheInside/ExperimentalWIP

Inputs (10)

NameTypeDefaultDescription
imagesIMAGEInput images to be encoded into latents (IMAGE type)
vaeVAEVAE model for encoding images (VAE type)
frequency_rangesFREQUENCY_RANGEFrequency ranges to analyze (FREQUENCY_RANGE type, multi-select)
audioAUDIOAudio input for frequency analysis (AUDIO type)
feature_typeCOMBOType of audio feature to extract ('amplitude_envelope', 'rms_energy', 'spectral_flux', 'zero_crossing_rate')
strengthFLOAT1.00–10Overall strength of the blending effect (0.0 to 10.0)
feature_modeCOMBOrelativeHow features affect the blending ('relative' or 'absolute')
frame_rateFLOAT30.01–120Frame rate for audio analysis (1.0 to 120.0 fps)
nonlinear_transformCOMBOnoneTransform applied to feature values ('none', 'square', 'sqrt', 'log', 'exp')
blending_modeCOMBOlinearMethod for blending latents ('linear', 'slerp', 'hard_switch')

Outputs (1)

NameTypeDescription
LATENTLATENTβ€”