Nodes/ComfyUI-DynamiCrafterWrapper/DynamiCrafter LoadInitNoise
ComfyUI Node

DynamiCrafter LoadInitNoise

Structured starting noise for steadier motion

By kijai·Created 2 years ago·Updated about a year ago· 680
DynamiCrafter LoadInitNoise
  • model
  • init_noise
  • width
  • height
M1000
analytic_inittrue

This is an optional, advanced helper for the image-to-video path. Instead of letting DynamiCrafterI2V start from plain random noise, this node builds a structured initial noise tensor derived from the model, and hands it over. The payoff is steadier, less-flickery motion - the kind of temporal-consistency trick that video-diffusion pipelines borrow from research like FreeInit. It's firmly in the "reach for it when the default results are too jittery" category, not something a first workflow needs.

It's part of kijai's ComfyUI-DynamiCrafterWrapper, the ComfyUI port of the CUHK / Tencent AI Lab DynamiCrafter model.

How it works

Diffusion normally starts from pure Gaussian noise, which is fine for a single image but can make video temporally unstable - frames flicker because each denoise run starts from unrelated randomness. Analytic/structured initialization computes a starting noise with more useful low-frequency structure baked in, so the sampler begins closer to a coherent video and drifts less across frames. This node runs that computation against your loaded model and emits the result as a reusable noise object, plus the resolution it derived it at.

The inputs and outputs that matter

  • model - the DCMODEL you're animating with. The noise is derived to match it.
  • analytic_init - a boolean, default true. Left on, you get the analytic structured noise (the whole point of the node). Turn it off and you're closer to a plain noise baseline.
  • M - an integer up to 1000, default 1000. It controls how many steps go into deriving the noise; the default is the full amount. Leave it unless you're deliberately experimenting.

Three outputs: init_noise (type DCNOISE) → wires into the optional init_noise input on DynamiCrafterI2V; and width / height (INT) → convenient to route into wherever you're setting output resolution, so everything stays in sync with the noise you generated.

Installing it

Bundled with the pack. ComfyUI Manager → search ComfyUI-DynamiCrafterWrapper, or cd ComfyUI/custom_nodes && git clone https://github.com/kijai/ComfyUI-DynamiCrafterWrapper, then pip install -r requirements.txt and restart. It only makes sense alongside DynamiCrafterI2V and a loaded DynamiCrafter checkpoint.

Common issues

  • You don't need this to make video. The init_noise input on DynamiCrafterI2V is optional. Skip this node entirely and the sampler uses ordinary noise - perfectly fine for most shots. Only add it if you're fighting flicker.
  • No visible difference. On calm, low-motion clips the effect is subtle. Its value shows up most on dynamic motion where plain noise tends to jitter; on gentle animations you may not notice it.
  • Resolution mismatch. The node reports the width/height it derived the noise at for a reason - feed those through so your generation resolution matches. Generating at a different size than the noise was built for undercuts the benefit.
  • Extra compute. Deriving analytic noise isn't free; it adds a bit of time up front. Worth it when it fixes flicker, wasted when the defaults already looked fine.
CategoryDynamiCrafterWrapper

Inputs (3)

NameTypeDefaultDescription
modelDCMODEL
MINT10001–1000
analytic_initBOOLEANtrue

Outputs (3)

NameTypeDescription
init_noiseDCNOISE
widthINT
heightINT