Note, only relatively significant changes to user-visible functionality will be included here. Most recent changes at the top.
Aside from the sigmoid quantile mode change and SonarShuffledNoise, these changes should not break workflows. Let me know if you experience anything unusual.
- The
sigmoidquantile norm mode was renamed tosigmoid_keepsignsince that's what it was doing. There is a replacementsigmoidquantile 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.
SonarShuffledNoisenode 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.
Once again, large set of changes/internal reorganization which may break stuff. If you run into problems or experience anything weird, please create an issue.
- Added a
SonarResizedNoiseAdvnode that allows more control (and is more useful for models like ACE-Steps where you might want to deal with absolute sizes). - Added a
SonarWaveletCFGnode which allows you use different CFG values for different frequencies. - Added a
SonarCustomNoiseParametersnode that lets you set some parameters as well as override seed/device/dtype. - Added
replace,replace_keepsignandreplace_avoidsignquantile norm modes. SonarBlendedNoisenow has acustom_noise_maskinput. When connected, it will generate noise with that, put it on a 0-1 scale and use that to control the blend.- Added a
SonarAdvancedVoronoiNoisenode.
This is a large set of changes. Please let me know anything doesn't seem to be working properly.
- 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
SonarLatentOperationAdvancednode which allows more control over when individual latent operations are active and their effects get blended. - Added a
SonarSplitNoiseChainnode. Can be useful if you want to have an item in the chain be a blended. - Added a
SonarLatentOperationNoisenode 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
SonarWaveletFilteredNoisenode. 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
SonarNormalizeNoiseToScalenode that lets you normalize noise to specific value ranges. - Added a
SonarPerDimNoisenode 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
SonarLatentOperationFilteredNoisenode that allows you to run noise through aLATENT_OPERATION. - Added a
SonarLatentOperationSetSeednode that can be used to set the seed (mainly useful for running latent operations that add noise outside of sampling). - Added a
SonarScatternetFilteredNoisenode 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.
- Added
SonarRippleFilteredNoisenode. - Added
SonarApplyLatentOperationCFGnode, similar to the built-inApplyLatentOperationCFGnode with scheduling and a lot of different application modes. - Added a
SonarLatentOperationQuantileFilternode 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.
- Reimplemented Collatz noise with many new features. Unfortunately this breaks existing workflows. If anyone misses the old version, let me know and I can add it back in (might do that anyway).
- Added actual wavelet noise based on https://en.wikipedia.org/wiki/Wavelet_noise .
- Added
reverse_zero,scale_down,tanh,tanh_outliers,sigmoidandsigmoid_outliersquantile normalization limit modes.
- Fixed broken calculation for Collatz noise.
- Added
SonarPatternBreakNoisenode that allows breaking patterns in the noise. - Added
SonarShuffledNoisenode that allows shuffling elements along user-specified dimensions. - Added a strategy option to the
SonarQuantileFilteredNoisenode. - Added variants to Collatz noise. Variant one is maybe similar to the original iteration.
- Added
SonarNoiseImagenode that allows generating noisy images or adding noise to existing images.
- Added
override_sigma,override_sigma_next,override_sigma_minandoverride_sigma_maxoptions that can be set in theSonarCustomNoiseAdvnode YAML options. This enables using noise generators that require a sigma in stuff like initial noise (for example, Brownian). You will need to manually find and set the correct values yourself. - Added Collatz noise based on the Collatz conjecture. Very experimental, very slow, likely to change and quite possibly just plain bad. But you can try it.
- Added
SonarQuantileFilteredNoisenode. - Better compatibility with older Python versions.
- Add 5D latent (video models) support for most custom noise types.
Note: May change seeds.
This set of changes includes some pretty major internal refactoring. Definitely possible that I broke something, so please create an issue if you run into problems.
- Noise generation should now respect whether generating on CPU vs GPU is selected. Previously it likely was defaulting to generating on GPU. This may change seeds.
- Refactored momentum samplers, this may change seeds especially if you were using weird parameters like negative direction.
- Added some new parameters for momentum samplers.
- Removed the
s_noiseand churn parameters from the normal Sonar Euler sampler. May break workflows. (Churn was the predecessor to ancestral samplers and is basically obsolete.) - Added
waveletanddistronoise types. - Added
SonarCustomNoiseAdvnode that allows passing parameters via YAML. - Added
SonarResizedNoisenode that allows you to generate noise at a fixed size and then crop/resize it to match the generation. - Added
SonarAdvancedDistroNoisenode that allows generating noise with basically all the distributions PyTorch supports. - Added
SonarWaveletFilteredNoisenode that lets you filter another noise generator using wavelets.
Note: Contains some potentially workflow-breaking changes.
pinknoise type renamed topink_old- the implementation was incorrect.powernoise type renamed topower_old- the implementation was incorrect.- Added
onef_pinkish(higher frequencye) andonef_greenish(lower frequency) noise types. - Added
SonarAdvanced1fNoisenode andonef_pinkish,onef_greenish,onef_pinkish_mix,onef_greenish_mix, andonef_pinkishgreenishnoise types. - Added
SonarAdvancedPowerLawNoisenode andgrey,white,violetandvelvetnoise types. - The
SonarAdvancedPyramidNoisenode can now use upscale methods from my ComfyUI-bleh node pack if it is available. - Added the
SonarChannelNoiseandSonarBlendedNoisenodes. - Added the
SonarBlehOpsNoisenode. - Added advanced parameter input to the SampleConfigOverride node, you can now pass options directly to the wrapped sampler function.
- Custom noise inputs now are semi-wildcard and will accept
OCS_NOISEorSONAR_CUSTOM_NOISEinterchangeably.
- Added descriptions and tooltips for most nodes.
- Added
repeat_batchparameter toNoisyLatentLikenode. - Added a
SONAR_CUSTOM_NOISE to NOISEnode to allow converting from Sonar's custom noise type to the built in ComfyUINOISE(used bySamplerCustomAdvancedand possibly other nodes). - Added a
SonarAdvancedPyramidNoisenode that allows setting parameters for the pyramid noise variants.
Mega update! Many new features, documentation reorganized.
- Add
SonarScheduledNoise,SonarCompositeNoise,SonarGuidedNoise,SonarRandomNoisenodes. See Advanced Noise Nodes. - Add
SonarPowerFilterNoise,SonarPowerFilter,SonarPreviewFilternodes. See Advanced Power Noise. - Add
FreeUExtreme,FreeUExtremeConfignodes. See FreeU Extreme. - Replace
pyramidnoise type with a (hopefully) more correct implementation. You can usepyramid_oldfor the previous behavior. - Add more noise types and variations.
- The
NoisyLatentLikenode now allows using brownian noise if you connect a model and sigmas.
- Add
SonarModulatedNoiseandSonarRepeatedNoisenodes.
- Fixed issue when using Sonar samplers in normal sampling nodes/via stuff like
KSamplerSelect. - Add
pyramid(non-high-res) noise type. - Allow selecting
browniannoise in custom noise nodes (but it won't work withNoisyLatentLike). - Use
brownianas the default noise type forSamplerSonarDPMPP. - Make overriding the selected noise type in Sonar samplers a warning instead of a hard error.
- Improve noise scaling (may change seeds).
- Add
KRestartSamplerCustomNoiseif the user has a recent enough version of ComfyUI_restart_sampling installed.
NoisyLatentLikenode improved to allow calculating strength with sigmas and injecting noise itself.
SonarPowerNoisenode added.
- Refactored noise generation functions (will break seeds).
- Added
SamplerOverridenode. studenttnoise type replaced withstudentt_test(the more correct version).
- Added
SonarCustomNoisenode. - Changed existing sampler nodes and
NoisyLatentLikenodes to take an optionalSonarCustomNoise.