SonarPatternBreakNoise
When your noise keeps repeating itself, shuffle it
- custom_noise
- SONAR_CUSTOM_NOISE
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, orsubtract_b. Defaultlerp. If you have the author'sComfyUI-blehpack 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.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| factor | FLOAT | 1.000-10000–10000 | Scaling factor for the generated noise of this type. |
| custom_noise | SONAR_CUSTOM_NOISE,OCS_NOISE | Custom noise type to filter. The following input types are supported: SONAR_CUSTOM_NOISE, OCS_NOISE | |
| detail_level | FLOAT | 0.000-10000–10000 | Controls the detail level of the noise when break_pattern is non-zero. No effect when strength is 0. |
| blend_mode | COMBO | lerp | Function 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. |
| percentage | FLOAT | 1.0000–1 | Percentage of elements to shuffle in the specified dimensions. |
| restore_scale | BOOLEAN | true | Controls whether the original min/max values get preserved. Not sure which is better, it is slightly slower to do this though. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SONAR_CUSTOM_NOISE | SONAR_CUSTOM_NOISE | A custom noise chain. |