Nodes/ComfyUI-sonar/SonarAdvancedPyramidNoise
ComfyUI Node

SonarAdvancedPyramidNoise

The multi-resolution detail trick hiding in plain sight

By blepping·Created 3 years ago·Updated 8 days ago· 49
SonarAdvancedPyramidNoise
  • sonar_custom_noise_opt
  • SONAR_CUSTOM_NOISE
factor1.000
rescale0.000
varianthighres_pyramid
iterations-1
discount0.000
upscale_modedefault

If you've ever seen a workflow boast about "highres pyramid noise" as the secret ingredient, this is the node behind it. Pyramid (multi-resolution) noise builds up a noise field one octave at a time - generate coarse noise, upsample it, add the next finer layer, repeat - so you get structure at every scale instead of flat white static. Blepping's implementation is based on Jonathan Whitaker's multi-resolution noise write-up, which is a well-known resource in the noise-nerd corner of the community.

That coarse-to-fine structure is exactly why pyramid noise became the high-resolution fix crowd's favorite. During a second-pass upsample, you want the sampler to fill in detail without re-rolling the whole composition; a noise that already has structure across scales gives it a better starting skeleton than gaussian static does. People reach for the highres_pyramid variant specifically for this. It's a "reasonably well-known good idea" node rather than a pure curiosity - the noise_type dropdowns elsewhere in the pack (like SamplerConfigOverride) even list highres_pyramid as a built-in option.

Inputs worth knowing:

  • variant - highres_pyramid (the one people actually use), pyramid, and pyramid_old. Different flavor, same family.
  • iterations - number of octaves, -1 for the variant default. More octaves = more fine detail = slower.
  • discount - how much each successive octave's amplitude is scaled down, 0 for the variant default. This is the lever that controls how far the fine detail reaches.
  • upscale_mode - how each octave is resized to the next level: bilinear, bicubic, nearest, area, bislerp, adaptive_avg_pool2d, or default. This changes the character of the detail noticeably.
  • factor / rescale - the pack-wide strength controls.

Output is SONAR_CUSTOM_NOISE, chainable via sonar_custom_noise_opt, and consumed by any custom noise input. The standard one-liner installs it with no model files:

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

Two things to get right. First, as with all the noise-injection nodes, it shows up on samplers that actually add noise - ancestral, SDE, or the sonar momentum samplers. Second, if you're using it in the high-res-fix sense, it's the initial latent that matters: it works well as your second-pass starting noise at moderate-to-low denoise, where gaussian would otherwise fight the existing image structure. Start with highres_pyramid, leave iterations and discount on defaults, and only touch upscale_mode once you've seen the base effect. It's the one "advanced noise" node in this pack with a genuinely mainstream use, and it earns the hype it gets in those workflow descriptions.

Categoryadvanced/noise

Inputs (7)

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.
variantCOMBOhighres_pyramidSets the Pyramid noise variant to generate.
iterationsINT-1-1–8When set to -1 will use the variant default.
discountFLOAT0.000-10000–10000When set to 0 will use the variant default.
upscale_modeCOMBOdefaultAllows setting the scaling mode for Pyramid noise. Leave on default to use the variant default.
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.