ComfyUI Node

Advanced Audio Noise Patterns

Pretty Music-Driven Noise — and Why It Can Eat Your RAM

By Kayarte·Created 2 years ago·Updated about a year ago· 3
Advanced Audio Noise Patterns
  • noise_params
  • analysis_type
  • LATENT
  • TIMESTAMPS
width512
height512
noise_type

This is the flashy one in the Kayarte audio pack. Where Audio Noise to Latent gives you plain gaussian/salt-and-pepper/Perlin noise, Advanced Audio Noise Patterns generates musical-visualization-style latents - simplex, cellular (that voronoi-ish bubble look), fractal Brownian motion, waves, and domain warping - with one frame per audio timestamp, so the pattern evolves as the track plays. It's the node you use when you want the noise itself to be the show.

Why the batch size is the trap

Read the README's warning before anything else, because this is where people get burned. There is no batch_size input. The batch size is the number of timestamps that came out of your analysis node - the node makes one latent per timestamp, and timestamps are noise_params["timestamps"], which the mapper passes straight through.

The README's measured counts for an 89-second track:

  • default: roughly 122,000 frames
  • mel / spectral / tempo: high, ~7,600 frames
  • onset: moderate, 60–500
  • beat: low, 14–168
  • second / half_second: ~track length / ~2× track length

A 122,000-frame latent batch isn't a "big batch," it's a different category of problem - instant OOM, hang, or a swap file that screams. The fix is upstream: run your Librosa Audio Analysis node with beat or onset analysis so you get a sparse, musical timestamp list. That's also the analysis that gives the best results here, so it's not even a sacrifice.

How it works

For each timestamp, the node derives an energy_factor from the intensity in your noise params - it grows over the track (there's a time_scale ** 0.3 term) - plus a chaos term that wobbles with sin(timestamp * 10). That pair then drives the pattern:

  • simplex - frequency scales up with energy, so more intense audio = finer, busier pattern.
  • cellular - the number of cell points grows with energy (up to 150+), giving that dissolving-bubbles effect.
  • fbm - layered noise: octaves, persistence, and lacunarity all scale with energy, so loud parts get crunchy fractal detail.
  • wave - standing waves whose frequency and phase both ride the timestamp (the phase is driven by timestamp * 8π), so the pattern visibly ripples over time.
  • domain_warp - warps simplex noise through a warped coordinate grid whose warp factor tracks energy; the trippy one.

Each frame is normalized, then spread across the 4 latent channels with a per-channel phase offset - that's the diffusion VAE's channel structure you're filling, so the sampler has distinct things to denoise per channel. Output runs on CPU, which is fine for the small latent sizes.

Inputs and outputs

Inputs: noise_params (from Audio To Noise Parameters), width and height (default 512, step 8 - the real resolution is these divided by 8), noise_type (the five above), and analysis_type (wire it through from the analysis node).

Outputs: a LATENT (batch = however many timestamps you fed in - see the trap above) and TIMESTAMPS, so you know which frame corresponds to which second of audio. The author's example workflow previews the latent directly with a TAESDXL preview node rather than going through a sampler - a cheap way to see the sequence before you spend GPU time on it. When you do sample, keep denoise low (<0.5) so the pattern structure survives.

Installing

ComfyUI Manager (search "AudioDriven Latent Space Tools") or:

cd ComfyUI/custom_nodes
git clone https://github.com/Kayarte/AudioDriven-Latent-Space-Tools-for-ComfyUI

then restart. The pack declares no dependencies, so if you get No module named 'librosa' on load, pip install librosa in your ComfyUI environment. No models to download, fully local.

One silver lining: unlike its sibling, this node degrades gracefully - if noise_params comes through empty it falls back to defaults (simplex, three dummy timestamps) instead of crashing. Which is nice, because the real failure mode you'll actually meet - the OOM - lives in the analysis choice, not here.

Categoryaudio/noise

Inputs (5)

NameTypeDefaultDescription
noise_paramsNOISE_PARAMS
widthINT51264–2048
heightINT51264–2048
noise_typeCOMBO5 options: simplex, cellular, fbm, wave, domain_warp
analysis_typeANALYSIS_TYPE

Outputs (2)

NameTypeDescription
LATENTLATENT
TIMESTAMPSTIMESTAMPS