Nodes/AnimateDiff Evolved/Noise Layer [Normalized Sum] πŸŽ­πŸ…πŸ…“
ComfyUI Node Runs on cloud

Noise Layer [Normalized Sum] πŸŽ­πŸ…πŸ…“

Stacking noise layers without babysitting the balance

By KosinkadinkΒ·Created 3 years agoΒ·Updated 8 days agoΒ· 3,519
Noise Layer [Normalized Sum] πŸŽ­πŸ…πŸ…“
  • prev_noise_layers
  • mask_optional
  • NOISE_LAYERS
β—„batch_offset0β–Ί
β—„noise_typeβ–Ύβ–Ί
β—„seed_gen_overrideβ–Ύβ–Ί
β—„seed_offset0β–Ί
β—„noise_weight0.500β–Ί
β—„seed_override0β–Ί

Noise Layers build the pack's custom noise scheduling - the README's line for it is "custom noise scheduling via Noise Types, Noise Layers, and seed_override/seed_offset/batch_offset." Chain a few of these together and you're composing a deliberate noise recipe instead of taking whatever single draw the sampler would otherwise give you. This is the "just works" member of the noise-layer family: it sums layers together with weights that stay automatically in proportion, so you don't have to manually rebalance the total the way its sibling, Noise Layer [Add Weighted], requires.

How it compares to its siblings

Three noise-layer nodes exist for three different jobs. Replace fully overrides a previous layer within its region - no blending at all. Add Weighted blends with an open-ended weight (up to 10) and needs a separate balance_multiplier afterward to keep the combined noise sane. This one, Normalized Sum, keeps noise_weight capped at a proper 0-to-1 fraction and normalizes the sum automatically, so mixing several layers together stays balanced without any extra rebalancing step. If you just want to combine two or three noise sources cleanly without thinking about variance math, this is the one to reach for.

The inputs and outputs that matter

Required: batch_offset (default 0) - shifts which frame this layer's pattern starts from, noise_type - the noise-generation strategy for this layer, seed_gen_override - how this layer derives its seed independent of the base sampling seed, seed_offset (default 0), and noise_weight (default 0.5, range 0–1) - this layer's proportional share of the combined mix.

Optional: prev_noise_layers (NOISE_LAYERS) to chain another layer underneath this one, mask_optional (MASK) to restrict this layer to a region, and seed_override (default 0) for a fully explicit seed rather than an offset.

Output is a single NOISE_LAYERS, which only fits Sample Settings' noise_layers input.

How to install it

ComfyUI Manager: search AnimateDiff Evolved, confirm the author is Kosinkadink, install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved

then restart. No model download tied to this node - pure noise configuration on top of whatever motion setup you already have working.

Common issues & troubleshooting

Added a layer and nothing visibly changed. Confirm the NOISE_LAYERS output reaches Sample Settings' noise_layers slot, and that Sample Settings itself feeds your loader or Use Evolved Sampling. This connector chain fails silently rather than throwing an error when left half-wired.

Layer's contribution feels weaker than expected even at noise_weight near 1. Because this node normalizes the sum across all your stacked layers, a single layer's actual influence depends on how many other layers and how much weight they're carrying too - 1.0 here isn't "full strength in isolation," it's "this layer's full proportional share of the mix."

Wanted more control over the exact blend ratio. That's the tradeoff for the automatic balancing - if you need an open-ended weight that can dominate the mix or a separate rebalancing dial, use Noise Layer [Add Weighted] instead. If you don't need blending at all and just want one layer to fully override another, use Replace.

CategoryAnimate Diff πŸŽ­πŸ…πŸ…“/noise layers

Inputs (8)

NameTypeDefaultDescription
batch_offsetINT00–9007199254740991β€”
noise_typeCOMBO5 options: default, constant, empty, repeated_context, FreeNoise
seed_gen_overrideCOMBO5 options: use existing, comfy, comfy [gpu], auto1111, auto1111 [gpu]
seed_offsetINT0-9007199254740991–9007199254740991β€”
noise_weightFLOAT0.5000–1β€”
prev_noise_layersoptNOISE_LAYERSβ€”
mask_optionaloptMASKβ€”
seed_overrideoptINT00–18446744073709550000β€”

Outputs (1)

NameTypeDescription
NOISE_LAYERSNOISE_LAYERSβ€”