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

Noise Layer [Add] πŸŽ­πŸ…πŸ…“

Stacking extra noise into specific parts of your frame

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

Displayed as Noise Layer [Add], this is a building block in the pack's custom noise-scheduling system - one of the things the README means by "custom noise scheduling via Noise Types, Noise Layers, and seed_override/seed_offset/batch_offset in Sample Settings and related nodes." A single ADE_NoiseLayerAdd mixes in an extra layer of noise on top of the base sampling noise, with its own seed behavior and - via an optional mask - its own region of the frame to affect. Chain several together and you're composing a custom noise recipe rather than accepting whatever the sampler generates by default.

This is deep-end tuning. It exists for a real, specific problem: getting more per-frame variation without losing overall coherence, or targeting extra noise (and therefore extra detail/variation) at a masked region while leaving the rest of the frame stable. If you haven't hit that problem yet, you don't need this node.

How it works

The output type is NOISE_LAYERS, and it only fits one place: the noise_layers input on Sample Settings (ADE_AnimateDiffSamplingSettings), which in turn feeds a loader or Use Evolved Sampling. Each layer you add contributes its own noise on top of whatever came before it in the chain - noise_weight sets how strongly, mask_optional restricts where, and the seed-related fields control whether that layer's noise is deterministic or varies from your base seed.

The inputs and outputs that matter

Required: batch_offset (default 0, shifts which frame in the batch this layer's noise pattern starts from), noise_type (a dropdown - the same family of noise-generation strategies referenced elsewhere in the pack's Sample Settings), seed_gen_override (a dropdown for how this layer derives its seed, independent of the base sampling seed if you want it to be), seed_offset (default 0), and noise_weight (default 0.5, range 0–10 - how strongly this layer's noise blends in; the default of 0.5 is already a meaningful contribution, not a token amount).

Optional: prev_noise_layers (type NOISE_LAYERS) - chain another ADE_NoiseLayerAdd's output in here to stack layers, mask_optional (type MASK) to restrict this layer to a region, and seed_override (default 0, a full explicit seed rather than an offset from the base). Output is a single NOISE_LAYERS.

How to install it

Standard for the pack - ComfyUI Manager, search AnimateDiff Evolved by Kosinkadink, or:

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

No model download tied to this node specifically - it's pure noise configuration on top of whatever motion setup you already have working.

Common issues & troubleshooting

Added a layer and nothing visibly changed. Confirm this node's NOISE_LAYERS output actually reaches Sample Settings' noise_layers slot, and that Sample Settings itself is wired into your loader or Use Evolved Sampling. It's an easy chain to leave half-connected, since none of these nodes error loudly when unplugged.

Output got noisier or flickerier, not more coherent. That's expected if noise_weight is pushed high - this node adds noise, it doesn't smooth anything out. If you're actually chasing consistency rather than variation, this is the wrong tool; look at ADE_IterationOptsFreeInit or a cleaner context-window setup instead.

Not sure this is worth the complexity. Fair - it usually isn't, for a first AnimateDiff workflow. Get a plain motion module producing coherent output first. Reach for noise layers specifically once you have a concrete ask, like "I want more variation in this masked region without disturbing the rest of the frame," that a flat seed can't give you.

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–10β€”
prev_noise_layersoptNOISE_LAYERSβ€”
mask_optionaloptMASKβ€”
seed_overrideoptINT00–18446744073709550000β€”

Outputs (1)

NameTypeDescription
NOISE_LAYERSNOISE_LAYERSβ€”