SonarRippleFilteredNoise
Give your noise a wave pattern
- custom_noise
- sonar_custom_noise_opt
- SONAR_CUSTOM_NOISE
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 optionalsonar_custom_noise_optsecond input for more chain items).mode(sin / cos / cos default) - the wave function. The_copysignvariants 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.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| factor | FLOAT | 1.000-10000–10000 | Scaling factor for the generated noise of this type. |
| rescale | FLOAT | 0.0000–10000 | When 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_noise | SONAR_CUSTOM_NOISE,OCS_NOISE | Allows connecting a custom noise chain. The following input types are supported: SONAR_CUSTOM_NOISE, OCS_NOISE | |
| mode | COMBO | cos | Function 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. |
| dim | INT | -1-100–100 | Dimension to use for the ripple effect. Negative dimensions count from the end where -1 is the last dimension. |
| flatten | BOOLEAN | false | When enabled, the noise will be flattened starting from (and including) the specified dimension. |
| offset | FLOAT | 0.000-10000–10000 | Simple addition to the base value used for the wave. |
| roll | FLOAT | 0.000-10000–10000 | Rolls the wave by this many elements each time the noise generator is called. Negative values roll backward. |
| amplitude_high | FLOAT | 0.250-10000–10000 | Scale 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_low | FLOAT | 0.150-10000–10000 | Scale 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. |
| period | FLOAT | 3.000-10000–10000 | Number of oscillations along the specified dimension. |
| normalize_noise | BOOLEAN | false | Controls whether the noise source is normalized before wavelet filtering occurs. |
| normalize | COMBO | default | Controls whether the generated noise is normalized to 1.0 strength. |
| sonar_custom_noise_optopt | SONAR_CUSTOM_NOISE,OCS_NOISE | Optional input for more custom noise items. The following input types are supported: SONAR_CUSTOM_NOISE, OCS_NOISE |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SONAR_CUSTOM_NOISE | SONAR_CUSTOM_NOISE | A custom noise chain. |