Nodes/ComfyUI-sonar/SonarRippleFilteredNoise
ComfyUI Node

SonarRippleFilteredNoise

Give your noise a wave pattern

By blepping·Created 3 years ago·Updated 14 days ago· 49
SonarRippleFilteredNoise
  • custom_noise
  • sonar_custom_noise_opt
  • SONAR_CUSTOM_NOISE
factor1.000
rescale0.000
modecos
dim-1
flattenfalse
offset0.000
roll0.000
amplitude_high0.250
amplitude_low0.150
period3.000
normalize_noisefalse
normalizedefault

Most noise filters change the noise globally - this one changes it as a function of position. SonarRippleFilteredNoise applies a sin or cos wave along a dimension of your noise, scaling it up at the wave's peaks and down in the troughs. The result is noise that carries a striped, rippled structure: bands of strong noise alternating with bands of weak noise across the latent.

Think of it as sculpting your starting noise into zones. Where the wave is high, the noise arrives at full strength; where it's low, it gets damped. That spatial structure then becomes a bias in what the sampler sees first - which is how you end up with directional texture, banding, or organic stripe effects instead of uniform static.

The inputs that matter

  • custom_noise - the noise to ripple (plus an optional sonar_custom_noise_opt second input for more chain items).
  • mode (sin / cos / cos default) - the wave function. The _copysign variants are the ones to be careful with: they force the noise to the sign of the wave, which the author says has "an extremely strong effect." If you must try them, he suggests at least a 1:16 ratio of noise to start.
  • period (default 3) - how many oscillations along the chosen dimension. Lower = coarser bands, higher = finer stripes.
  • amplitude_high (default 0.25) - scale for noise at the wave's peak. It adds to the base, so 0.25 gives you noise × 1.25 there. Negative values flip the noise's sign at the peak - yes, that's a thing.
  • amplitude_low (default 0.15) - scale at the trough, subtracted from the base. 0.25 gives noise × 0.75 at the low points.
  • dim (default -1) - which dimension the wave runs along. Negative counts from the end, so -1 is the last dimension (columns for an image latent). This is the choice that decides whether your stripes run vertically or horizontally.
  • offset - a simple addition to the wave's base value; roll - shifts the wave by N elements each time the noise generator is called, which is how you get the ripple to travel between steps. Negative rolls backward.
  • flatten - flattens the noise starting from the specified dimension before applying the wave.
  • factor, normalize_noise, normalize - the usual strength and rebalance controls.

Output is a SONAR_CUSTOM_NOISE, so it chains into a Sonar sampler, SamplerConfigOverride, or NoisyLatentLike like any other noise item.

Honest expectations

This is a "weird effects" node, and the strongest effects are the most dangerous - the copysign modes can utterly dominate a generation. Start with small amplitudes (±0.1–0.25), pick dim to control stripe orientation, and combine it with a schedule so the ripple only owns part of the sampling range rather than the whole run. If the result looks like harsh banding, drop amplitude_high/amplitude_low, not the period.

Installing

Part of ComfyUI-sonar - install the pack once via ComfyUI Manager (search "ComfyUI-sonar") or git clone https://github.com/blepping/ComfyUI-sonar into custom_nodes/, then restart. No extra Python dependencies for this node. And the usual pack caveat applies: inputs have shifted between releases, so pin the git revision if you want a look to stay reproducible.

Categoryadvanced/noise

Inputs (14)

NameTypeDefaultDescription
factorFLOAT1.000-10000–10000Scaling factor for the generated noise of this type.
rescaleFLOAT0.0000–10000When non-zero, this custom noise item and other custom noise items items connected to it will have their factor scaled to add up to the specified rescale value. When set to 0, rescaling is disabled.
custom_noiseSONAR_CUSTOM_NOISE,OCS_NOISEAllows connecting a custom noise chain. The following input types are supported: SONAR_CUSTOM_NOISE, OCS_NOISE
modeCOMBOcosFunction to use for rippling. The copysign variations are not recommended, they will force the noise to the sign of the wave (whether it's above or below the midline) which has an extremely strong effect. If you want to try it, use something like a 1:16 ratio or higher with normal noise.
dimINT-1-100–100Dimension to use for the ripple effect. Negative dimensions count from the end where -1 is the last dimension.
flattenBOOLEANfalseWhen enabled, the noise will be flattened starting from (and including) the specified dimension.
offsetFLOAT0.000-10000–10000Simple addition to the base value used for the wave.
rollFLOAT0.000-10000–10000Rolls the wave by this many elements each time the noise generator is called. Negative values roll backward.
amplitude_highFLOAT0.250-10000–10000Scale for noise at the highest point of the wave. This adds to the base value (respecting sign). For example, if set to 0.25 you will get noise * 1.25 at that point. It's also possible to use negative values, -0.25 will result in noise * -1.25.
amplitude_lowFLOAT0.150-10000–10000Scale for noise at the lowest point of the wave. This subtracts from the base value (respecting sign). For example, if set to 0.25 you will get noise * 0.75 at that point. It's also possible to use negative values, -0.25 will result in noise * -0.75.
periodFLOAT3.000-10000–10000Number of oscillations along the specified dimension.
normalize_noiseBOOLEANfalseControls whether the noise source is normalized before wavelet filtering occurs.
normalizeCOMBOdefaultControls whether the generated noise is normalized to 1.0 strength.
sonar_custom_noise_optoptSONAR_CUSTOM_NOISE,OCS_NOISEOptional input for more custom noise items. The following input types are supported: SONAR_CUSTOM_NOISE, OCS_NOISE

Outputs (1)

NameTypeDescription
SONAR_CUSTOM_NOISESONAR_CUSTOM_NOISEA custom noise chain.