SonarWaveletFilteredNoise
Separate your noise into low and high frequency — and mix them differently
- sonar_custom_noise_opt
- custom_noise
- custom_noise_high
- SONAR_CUSTOM_NOISE
Wavelet decomposition splits a signal into a low-frequency part (the smooth, coarse structure) and a high-frequency part (the fine detail). SonarWaveletFilteredNoise applies that split to your noise and lets you treat the two halves differently - damp the low end, boost the high end, or even use entirely different noise sources for each side. It's a frequency-domain equalizer for the chaos your sampler starts from.
Where the pack's simpler SonarWaveletNoise just sharpens noise by subtracting a blurred copy, this node does a real wavelet decomposition and gives you control over the bands. That's the difference between a one-knob effect and an actual mixing desk.
Requirements first
This node needs the pytorch_wavelets package in the same Python environment ComfyUI runs in - same as SonarWaveletCFG and SonarScatternetFilteredNoise. If ComfyUI is in a venv or portable build, install there:
/path/to/your/python -m pip install pytorch_wavelets
Without it, the node errors when it tries to run.
The inputs that matter
custom_noise(optional) - the source noise. Unconnected defaults to Gaussian.custom_noise_high(optional) - the interesting one. If you connect it, this noise is used for the high-frequency side of the wavelet whilecustom_noiseprovides the low-frequency side. That means you can literally run a smooth, low-frequency noise type on the bottom end and a wild, high-frequency type on top - a way to build hybrid noise that no single generator produces. Unconnected, the high side just reuses the same source.normalize_noise- normalize the source before filtering.normalize- the standard default/forced/disabled rebalance control.yaml_parameters- a text input for the wavelet config (wavelet type, level, padding mode, how the bands get scaled and blended). There's no hand-holding here: the tooltip notes "there is generally not much error checking." If you're not ready for YAML, leave it empty and use the defaults.
Output is a SONAR_CUSTOM_NOISE feeding a Sonar sampler, SamplerConfigOverride, or NoisyLatentLike.
Where it fits
This is the practical middle ground of the pack's wavelet family. SonarScatternetFilteredNoise is more powerful but slow, experimental, and image-only; SonarWaveletNoise is a blunt sharpening tool. This node is the one to reach for when you want frequency control without the scatternet's complexity - especially the dual-noise trick, which is genuinely its own thing and hard to replicate any other way. The wavelet lineage here traces back to the same ideas RES4LYF popularized for sampler-side detail work, so if you already like that school of "shape the noise, shape the image," you'll feel at home.
Installing
It ships with ComfyUI-sonar. Install the pack via ComfyUI Manager (search "ComfyUI-sonar") or git clone https://github.com/blepping/ComfyUI-sonar into custom_nodes/, restart, then add pytorch_wavelets as above. No model files.
Inputs (8)
| 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. |
| 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 | |
| custom_noiseopt | SONAR_CUSTOM_NOISE,OCS_NOISE | Optional: Custom noise input. If unconnected will default to Gaussian noise. The following input types are supported: SONAR_CUSTOM_NOISE, OCS_NOISE | |
| custom_noise_highopt | SONAR_CUSTOM_NOISE,OCS_NOISE | Optional: Custom noise input. If unconnected will use the same noise generator as custom_noise. However, if you do connect it this noise will be used for the high-frequency side of the wavelet. The following input types are supported: SONAR_CUSTOM_NOISE, OCS_NOISE | |
| yaml_parametersopt | STRING | Allows specifying custom parameters via YAML. Note: When specifying paramaters this way, there is generally not much error checking. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SONAR_CUSTOM_NOISE | SONAR_CUSTOM_NOISE | A custom noise chain. |