Nodes/ComfyUI-sonar/SonarPatternBreakNoise
ComfyUI Node

SonarPatternBreakNoise

When your noise keeps repeating itself, shuffle it

By blepping·Created 3 years ago·Updated 14 days ago· 49
SonarPatternBreakNoise
  • custom_noise
  • SONAR_CUSTOM_NOISE
factor1.000
detail_level0.000
blend_modelerp
percentage1.000
restore_scaletrue

SonarPatternBreakNoise fixes a specific, annoying failure: noise that repeats. Some noise types - pyramid noise especially - build up strong periodic structure, and that periodicity can leak into the final image as tiling, checkerboarding, or repeating blobs. This node shuffles elements of the noise to break those patterns apart, with a strength control so you don't have to nuke the character entirely.

How it works

The algorithm is adapted from Extraltodeus's noise_latent_perlinpinpin pattern-break idea, per the README credits. Feed it a custom_noise chain, and it reshuffles a percentage of the noise's elements within the specified dimensions, destroying the regularity that makes patterns repeat. The inputs are all about how much disruption:

  • percentage - the fraction of elements shuffled, 0 to 1. Default 1 means everything gets shuffled, which maximally breaks patterns. Dial down to keep some structure.
  • detail_level - controls the detail level of the noise while breaking patterns. No effect at strength 0.
  • blend_mode - how the pattern-broken noise combines with the original: lerp, inject, or subtract_b. Default lerp. If you have the author's ComfyUI-bleh pack installed, you get many more blend modes here.
  • restore_scale - default true, preserves the original min/max values after shuffling. Slightly slower, but keeps the noise's magnitude honest.

Plus the standard factor scaling. Output is SONAR_CUSTOM_NOISE, chaining into the rest of the pack.

Where you'd reach for it

Two classic spots. First, right after a pyramid or other structured noise type that's showing periodicity - shuffle just enough to break the repeat while keeping the multiscale character. Second, in high-resolution work where tiling shows up in the early steps: pattern-broken starting noise is a genuinely different fix than "add more steps," because it removes the source of the repeat instead of just averaging it out.

The tuning trap

percentage at 1 is the blunt setting. If you shuffle everything, you also lose whatever deliberate structure the noise type gave you - which can quietly erase the reason you used a structured noise in the first place. The skill is finding the percentage where the repeat dies but the character survives. Start at 0.5 and look for the point where tiling stops being visible. And if you're not seeing any effect, check your blend_mode - lerp at default settings blends heavily back toward the original, which can mask the shuffle.

Install

ComfyUI Manager → search "ComfyUI-sonar" → Install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/blepping/ComfyUI-sonar

No models, no extra deps. Usual pack caveats: inputs shift between versions, and noise seeds can differ between GPU models. Worth noting this node pairs well with the pack's own SonarPerDimNoise when you're doing video/batch work where per-frame noise independence is the goal.

Categoryadvanced/noise

Inputs (6)

NameTypeDefaultDescription
factorFLOAT1.000-10000–10000Scaling factor for the generated noise of this type.
custom_noiseSONAR_CUSTOM_NOISE,OCS_NOISECustom noise type to filter. The following input types are supported: SONAR_CUSTOM_NOISE, OCS_NOISE
detail_levelFLOAT0.000-10000–10000Controls the detail level of the noise when break_pattern is non-zero. No effect when strength is 0.
blend_modeCOMBOlerpFunction to use for blending original noise with pattern broken noise. If you have ComfyUI-bleh then you will have access to many more blend modes.
percentageFLOAT1.0000–1Percentage of elements to shuffle in the specified dimensions.
restore_scaleBOOLEANtrueControls whether the original min/max values get preserved. Not sure which is better, it is slightly slower to do this though.

Outputs (1)

NameTypeDescription
SONAR_CUSTOM_NOISESONAR_CUSTOM_NOISEA custom noise chain.