51 Commits
Author SHA1 Message Date
blepping 6c4ae67e32 The sigmoid quantile norm mode was renamed to sigmoid_keepsign since that's what it was doing. There is a replacement sigmoid quantile norm mode that doesn't care about sign.
Quantile normalization can now take a negative quantile to consider values closest to zero the "extremes". Note: Experimental feature that may not be implemented correctly/subject to change.
`SonarShuffledNoise` node reworked. Unfortunately, this will break workflows. If anyone has a burning need for the old version, let me know and I can bring it back as a separate node. The new approach should be better in general though.
Fixed momentum sampler init parameter passing.
Added more Voronoi noise octave modes.
Added replace_2pt/3pt (and variants) quantile norm result modes that use multiple replacement values.
Internal cleanups/refactoring.
2025-08-08 10:02:20 -06:00
blepping cf90ae74e1 Input types refactor and wavelet CFG (#18)
* Added a `SonarResizedNoiseAdv` node that allows more control (and is more useful for models like ACE-Steps where you might want to deal with absolute sizes).
* Added a `SonarWaveletCFG` node which allows you use different CFG values for different frequencies.
* Added a `SonarCustomNoiseParameters` node that lets you set some parameters as well as override seed/device/dtype.
* Added `replace`, `replace_keepsign` and `replace_avoidsign` quantile norm modes.
* `SonarBlendedNoise` now has a `custom_noise_mask` input. When connected, it will generate noise with that, put it on a 0-1 scale and use that to control the blend.
* Added a `SonarAdvancedVoronoiNoise` node.
2025-08-05 17:07:29 -06:00
blepping 4a97ad3468 * Reorganized the node structure. This is an internal change and shouldn't affect users but please let me know if you notice anything weird.
* Added a `SonarLatentOperationAdvanced` node which allows more control over when individual latent operations are active and their effects get blended.
* Added a `SonarSplitNoiseChain` node. Can be useful if you want to have an item in the chain be a blended.
* Added a `SonarLatentOperationNoise` node that can be used to inject noise. You can also use the guided noise node to turn a reference into "noise".
* Expanded the functionality of the `SonarWaveletFilteredNoise` node. You can now attach two custom noise inputs to use for the high/low frequency parts of the wavelet as well as blend the wavelets.
* Added a `SonarNormalizeNoiseToScale` node that lets you normalize noise to specific value ranges.
* Added a `SonarPerDimNoise` node that lets you do stuff like call a noise sampler once per batch item (can be useful for 3D Perlin noise).
* Fixed an issue where the normalization parameter wasn't respected. This may change seeds.
* Added a `SonarLatentOperationFilteredNoise` node that allows you to run noise through a `LATENT_OPERATION`.
* Added a `SonarLatentOperationSetSeed` node that can be used to set the seed (mainly useful for running latent operations that add noise outside of sampling).
* Added a `SonarScatternetFilteredNoise` node that uses a scatternet to filter noise. Similar to wavelet filtering. Note: Very experimental, way not work properly.
* Fixed an issue with pattern break noise, this may change seeds for workflows using that noise type.
2025-07-05 04:11:18 -06:00
blepping c2a93d55cb Added SonarRippleFilteredNoise node.
Added `SonarApplyLatentOperationCFG` node, similar to the built-in `ApplyLatentOperationCFG` node with scheduling and a lot of different application modes.
Added a `SonarLatentOperationQuantileFilter` node that can be used to apply the quantile normalization functioen to the latent during sampling.
A bunch more quantile normalization modes.
Fixed broken quantile normalization dimension handling. Unfortunately this will likely change seeds.
2025-06-27 14:55:02 -06:00
blepping 2b2a76bcbe Rewrite Collatz noise.
Add (this time for real) wavelet noise.
More quantile normalization modes.
Other misc changes.
2025-06-12 09:37:19 -06:00
blepping 29ed97230e Fix broken calculation in Collatz noise 2025-06-02 08:04:50 -06:00
blepping c3d1149aff Added SonarPatternBreakNoise for breaking patterns in noise similar to Perlin
Added SonarShufflednoise that allows shuffling noise along configurable dimensions
Added strategy option to SonarQuantileFilteredNoise
Improved (hopefully) Collatz noise generation/expanded options
Added SonarNoiseImage node that allows generating noisy images/adding noise to images
2025-06-02 06:08:06 -06:00
blepping 83460f3b8f Added sigma override options that can be set to allow Brownian initial noise. See changelog.
Added experimental Collatz noise type.
Minor internal changes.
2025-05-28 16:20:41 -06:00
blepping 9dedbeb0b0 Fix power noise/power filter argument passing 2025-05-12 04:10:33 -06:00
blepping d25d01542e Added SonarQuantileFilteredNoise node.
Internal cleanups/compatibility changes.
2025-05-05 06:01:08 -06:00
blepping 1295521583 Fix (some) issues caused by recent ComfyUI frontend changes 2025-05-05 01:58:10 -06:00
blepping 607868c5c1 Fix Python 3.13 support hopefully without breaking other stuff 2025-03-06 07:46:31 -07:00
blepping 543f39ebf2 Fix dims order in pyramid noise generator 2025-03-03 04:40:39 -07:00
blepping a4fed311a8 Partial 5D latent support for custom noise types 2025-02-27 12:33:35 -07:00
blepping 2988afa34a Fix Bleh and Restart integration 2025-02-17 03:09:46 -07:00
blepping 68fc7418d1 Yet another noise generation refactor (#12)
* Refactor noise generation
Try to make option passing and CPU/GPU noise selection work
Add advanced custom noise node that allows for parameter passing
Add wavelet noise type

* Add WaveletFilteredNoise node, other fixes

* Fix Brownian arg passing

* Generalized distribution noise for most torch.distributions

* Distro noise improvements, add SonarAdvancedDistroNoise node

* More distributions!

* Add SonarResizedNoise node

* Momentum sampler refactor/improvements (I hope)

* Better approach to integration with external nodes
Documentation updates
Other cleanups

* Internal cleanups and refactoring.
Some integration improvements.
Bump date in changelog

* Add round and step to node FLOAT inputs that did not have it
2025-01-31 17:33:04 -07:00
blepping 6d15c0bbca Use ComfyUI union types for wildcard inputs when available 2024-12-05 03:57:16 -07:00
blepping 6369627e99 November 2024 mega update, see changelog for details 2024-11-30 00:59:08 -07:00
blepping 4f1934345a Fix an issue with NoisyLatentLike where it didn't correctly pass a seed to connected custom noise nodes (probably only affected Brownian)
Add normalize and cpu_noise parameters to NoisyLatentLike
2024-10-10 16:09:54 -06:00
asagi4 12ff37d8e3 Don't fail when self.guidance is None 2024-09-02 19:08:31 +03:00
blepping 55d9346713 Fix pink noise and batch sizes over 1 2024-09-01 18:11:21 -06:00
blepping 28b9d9c9c2 Add SonarAdvancedPyramidNoise node 2024-08-23 09:26:00 -06:00
blepping 1fa6b44c47 Add tooltips and descriptions for most nodes.
Add repeat_batch parameter to NoisyLatentLike node.
Add a node to convert SONAR_CUSTOM_NOISE to ComfyUI NOISE.
Various code cleanups and lint squashing.
2024-08-23 07:28:10 -06:00
blepping 5eacd52bbf Workaround for Python 3.10 compatibility 2024-05-21 10:35:30 -06:00
blepping 4844b7109e Mega update (#6)
Many new features, documentation reorganized.

* Add `SonarScheduledNoise`, `SonarCompositeNoise`, `SonarGuidedNoise`, `SonarRandomNoise` nodes.
* Add `SonarPowerFilterNoise`, `SonarPowerFilter`, `SonarPreviewFilter` nodes.
* Add `FreeUExtreme`, `FreeUExtremeConfig` nodes.
* Replace `pyramid` noise type with a (hopefully) more correct implementation. You can use `pyramid_old` for the previous behavior.
* Add more noise types and variations.
* The `NoisyLatentLike` node now allows using brownian noise if you connect a model and sigmas.
* Refactoring, cleanups, reorganization.
2024-05-21 07:06:46 -06:00
blepping 78e8451324 Feat modulated repeated noise (#5)
* Add modulated and repeated noise nodes
2024-05-06 16:51:23 -06:00
blepping b78cbe0b2a Fix NoisyLatentLike to work with recent ComfyUI changes 2024-04-05 12:57:02 -06:00
blepping 24e1536cb7 Various noise improvements (#4)
* Fixed issue when using Sonar samplers in normal sampling nodes/via stuff like `KSamplerSelect`.
* Add `pyramid` (non-high-res) noise type.
* Allow selecting `brownian` noise in custom noise nodes (but it won't work with `NoisyLatentLike`).
* Use `brownian` as the default noise type for `SamplerSonarDPMPP`.
* Make overriding the selected noise type in Sonar samplers a warning instead of a hard error.
* Improve noise scaling (may change seeds).
* Add `KRestartSamplerCustomNoise` if the user has a recent enough version of ComfyUI_restart_sampling installed.
2024-04-01 11:59:36 -06:00
blepping ecadbfcd19 Improvements to NoisyLatentLike node (#3)
* Improve NoisyLatentLike to allow calculating strength with sigmas and noise injection

* Update documentation for NoisyLatentLike changes + general improvements
2024-03-20 18:37:51 -06:00
elias-gaeros 52f929d54d SonarPowerNoise (#2)
* SonarPowerNoise: WIP

* don't allow highpass > lowpass

* fix filter unit gain

The filter was computed as an amplitude gain map. This change computes energy
gains instead. This makes easier to ensure unit-gain and makes the alpha values
more in line with literature where the power spectrum is obeying the power law.
new alpha = old alpha / 2

Also fixes the gain of common_mode.

* allow stretch < 1.0, paramter range fixes

* rename lowpass/highpass to min_freq/max_freq

* remove torch.no_grad wrappers

* add previews

* static seed for previews

* README: SonarPowerNoise documentation
2024-03-14 16:04:35 -06:00
blepping 090df2280d Make custom noise more extensible (internal change) 2024-03-02 04:48:54 -07:00
blepping a2fd7118b5 Noise refactor (#1)
* Refactor noise: stage 1

* Refactor noise: stage 2

* Refactor noise: stage 3

* Refactor noise: stage 4

* Update documentation and changelog
2024-02-27 02:42:19 -07:00
blepping a6f4249464 Fix perlin noise for Cascade, (hopefully) fix power noise for batch size > 1 2024-02-17 15:07:58 -07:00
blepping 227c9c99e5 Add SonarCustomNoise node + use it in other samplers 2024-02-10 20:38:03 -07:00
blepping d30b17148e Allow setting the RAND init noise type
Update README and add examples for new noise types
2024-02-07 11:01:55 -07:00
blepping 64910960ea Add green_test noise type 2024-02-06 17:30:27 -07:00
blepping 5fb82c7c4c Add power, laplacian and rainbow noise types 2024-02-06 12:44:18 -07:00
blepping 1dfdcfe933 Correctly update hd in dpmpp_sde sampler 2024-02-06 11:42:42 -07:00
blepping 1ad81de87f Attempt DPM++ SDE with momentum 2024-02-06 10:45:49 -07:00
blepping 430e1b999d Fix using Sonar samplers in normal sampler nodes 2024-02-06 07:04:58 -07:00
blepping 0fb3549e29 Add NoisyLatentLike node, further cleanups and refactoring 2024-02-06 06:46:53 -07:00
blepping 87c7309e45 Refactor guidance config and nodes 2024-02-06 04:19:51 -07:00
blepping ead5b6bcca Allow setting guidance range, other cleanups and fixes 2024-02-04 12:46:03 -07:00
blepping e38841d105 Initial implementation of guidance 2024-02-04 07:25:21 -07:00
blepping 569d685877 Add sonar samplers to the built in samplers list 2024-02-03 12:25:50 -07:00
blepping bc1358c106 Increase maximum possible direction value 2024-02-03 10:34:01 -07:00
blepping 79a5519a58 Cleanups and refactoring 2024-02-03 10:20:00 -07:00
blepping 347eb3f5cf Allow setting noise type for Euler A 2024-02-02 13:58:45 -07:00
blepping 3eb4e8292d Tweak parameter limits 2024-02-02 12:03:55 -07:00
blepping a48ff65b8d Cleanups, add direction parameter 2024-02-02 07:48:22 -07:00