Nodes/Deforum Nodes/(deforum) Diffusion Parameters
ComfyUI Node

(deforum) Diffusion Parameters

The schedule-driven sampler settings behind every frame

By XmYx·Created 3 years ago·Updated 3 months ago· 198
(deforum) Diffusion Parameters
  • deforum_data
  • deforum_data
noise_schedule0: (0.065)
strength_schedule0: (0.65)
contrast_schedule0: (1.0)
cfg_scale_schedule0: (7)
enable_steps_schedulingfalse
steps_schedule0: (25)
enable_ddim_eta_schedulingfalse
ddim_eta_schedule0:(0)
enable_ancestral_eta_schedulingfalse
ancestral_eta_schedule0:(1)

In a normal ComfyUI graph you set CFG, steps, and denoise once per sampler and move on. (deforum) Diffusion Parameters is the node that says "what if those values changed per frame?" Every field here is a keyframe schedule, so your animation can start with heavy denoising and low CFG, then lock down into tight, high-CFG frames as it settles. It's the difference between a wobbling morph and a confident evolution.

The inputs that matter

The core four are on by default:

  • noise_schedule (default 0: (0.065)) - the per-frame noise level. This is Deforum's flavor of the "how much noise per step" dial; it's what creates that signature shimmer when raised.
  • strength_schedule (default 0: (0.65)) - the per-frame denoise strength. 0.65 means each frame re-renders from 65% noise; higher = wilder, lower = more stable. This is the single most important number for animation coherence.
  • contrast_schedule (default 0: (1.0)) - per-frame contrast adjustment applied before sampling.
  • cfg_scale_schedule (default 0: (7)) - per-frame CFG. You can run CFG 7 for the opening and drop to 5 later, or the reverse.

The other three are gated behind enable toggles - they only apply if you switch them on, which keeps your graph clean if you don't need them:

  • enable_steps_scheduling + steps_schedule (default 0: (25)) - per-frame step count. Lower steps mid-animation for speed, bump near keyframes for quality.
  • enable_ddim_eta_scheduling + ddim_eta_schedule (default 0:(0)) - DDIM eta per frame (stochasticity of the DDIM sampler).
  • enable_ancestral_eta_scheduling + ancestral_eta_schedule (default 0:(1)) - eta for ancestral samplers (euler_a, dpm_2_a, etc.).

Output:

  • deforum_data - merged into the chain; the Iterator reads these schedules per frame.

How it works

Same DeforumDataBase pattern as the other parameter nodes - merge into deforum_data, last writer wins. The schedule strings use the frame:(expression) format with t standing for the current frame, so you can write 0:(0.7) 60:(0.5) 120:(0.3) or math like 0:(0.65+0.1*sin(t/20)). The actual per-frame value is resolved later by the Iterator's keyframe machinery, not by this node.

Installing this pack

Part of Deforum Nodes by XmYx. ComfyUI Manager: search Deforum Nodes, or:

cd ComfyUI/custom_nodes
git clone https://github.com/XmYx/deforum-comfy-nodes

Restart, let install.py pull the deforum-studio backend from GitHub plus the scientific-Python stack (numpy < 2.0, Python 3.10 required). Pure plumbing - no model downloads.

Common issues

  • Settings seem ignored. The three gated schedules do nothing until their enable_* toggle is on. Check that first.
  • Animation too chaotic / too static. Both are strength_schedule. Raise toward 1.0 for morphing energy, drop toward 0.3 for stability. Most people live between 0.5 and 0.8.
  • The schedule syntax errors. frame:(value) - colon and parens exact, valid Python math in the expression. Errors surface when the Iterator evaluates it, not in this node.
  • CFG wild swings. cfg_scale_schedule below ~4 or above ~12 across frames can push colors/saturation around. Keep it in a sane band unless the jump is deliberate.
Categorydeforum/parameters

Inputs (11)

NameTypeDefaultDescription
noise_scheduleSTRING0: (0.065)
strength_scheduleSTRING0: (0.65)
contrast_scheduleSTRING0: (1.0)
cfg_scale_scheduleSTRING0: (7)
enable_steps_schedulingBOOLEANfalse
steps_scheduleSTRING0: (25)
enable_ddim_eta_schedulingBOOLEANfalse
ddim_eta_scheduleSTRING0:(0)
enable_ancestral_eta_schedulingBOOLEANfalse
ancestral_eta_scheduleSTRING0:(1)
deforum_dataoptdeforum_data

Outputs (1)

NameTypeDescription
deforum_datadeforum_data