Create Sigma Schedule ππ π
Matching your noise schedule to your motion model
- SIGMA_SCHEDULE
This node is small - one dropdown, one output - but it's the settings knob behind half the README's "you must use X beta_schedule for Y model" warnings. If you've ever wondered where those beta_schedule choices actually live in the node graph, this is one of the places.
What it does
Diffusion sampling walks down a schedule of noise levels (sigmas) from fully noisy to clean. Which specific family of schedule to use - how the noise levels are spaced across the steps - is a property of how the underlying model was trained, not something you can pick freely without consequence. beta_schedule selects that family, and different AnimateDiff-related models were trained on different ones: HotshotXL wants autoselect or linear (HotshotXL/default), AnimateDiff-SDXL wants autoselect or linear (AnimateDiff-SDXL), AnimateLCM wants autoselect, lcm, or lcm[100_ots], and PIA wants autoselect or sqrt_linear (AnimateDiff). Pick the wrong one and nothing throws an error - the sampler just runs against a noise curve the model doesn't expect, and output quality suffers in ways that are easy to misdiagnose as something else entirely (a bad LoRA, wrong CFG, whatever).
This node lets Sample Settings override the schedule explicitly, rather than relying on whatever default the loader picked. The output, SIGMA_SCHEDULE, feeds into the Sample Settings node alongside things like Custom CFG.
The one input that matters
beta_schedule- the dropdown.autoselectis the safe default in most cases; it tries to infer the right schedule from the motion module you've loaded. Override it explicitly when the README calls for a specific one for the model type you're running (HotshotXL, AnimateDiff-SDXL, AnimateLCM, PIA), or when you're deliberately experimenting.
How to install it
Ships with the pack.
- ComfyUI Manager - search AnimateDiff Evolved by Kosinkadink, install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved, restart. - You'll need the motion module matching whatever schedule you're targeting - e.g.
hsxl_temporal_layers.safetensorsfor HotshotXL, orpia.ckptfor PIA.
Common issues & troubleshooting
Output looks washed out, grainy, or just "off" for no obvious reason. Before touching CFG or your prompt, check beta_schedule against what your motion model actually needs. This is the single most common invisible mismatch in AnimateDiff workflows that otherwise look correctly wired - everything connects fine, the graph runs, and the result is just subtly wrong.
Using HotshotXL and it doesn't behave like SD1.5 AnimateDiff. That's expected even with the right schedule - per the README, HotshotXL's sweet spot is 8 frames (not 16), and it needs an SDXL checkpoint underneath. The schedule is necessary but not sufficient; frame count and base checkpoint matter too.
AnimateLCM output looks over- or under-cooked. The schedule is only one piece of the LCM recipe. The README is explicit that you also need the matching LCM LoRA, the lcm sampler in your KSampler, CFG down around 1.0β2.0, and a much lower step count (as low as ~4) than a normal SD1.5 run - LCM converges faster, so your usual step count will overshoot.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| beta_schedule | COMBO | 11 options: sqrt_linear (AnimateDiff), linear (AnimateDiff-SDXL), linear (HotshotXL/default), avg(sqrt_linear,linear), lcm avg(sqrt_linear,linear), lcm, +5 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMA_SCHEDULE | SIGMA_SCHEDULE | β |