Create Raw Sigma Schedule ππ π
Building a noise schedule from raw beta parameters
- SIGMA_SCHEDULE
Displayed as Create Raw Sigma Schedule, this builds a SIGMA_SCHEDULE object from the raw beta-curve math - the linear start/end values, the sampling formulation, whether you want zero-terminal-SNR - rather than picking one of the pack's named beta_schedule presets (autoselect, linear (AnimateDiff-SDXL), lcm, and so on) that show up on the loader nodes elsewhere. It's for the case where a named preset doesn't match what you need and you want to specify the schedule from first principles instead.
This is a power-user node. Most AnimateDiff workflows never touch it - they pick a named beta_schedule on a loader and move on. Reach for this specifically when you're replicating an exact training configuration (matching a specific motion model's original beta schedule precisely) or experimenting with a schedule that isn't one of the pack's presets.
How it works
Diffusion models are trained against a specific noise-variance curve defined by a handful of parameters: where the beta values start and end (linear_start/linear_end), what sampling formulation is used (sampling - epsilon-prediction, v-prediction, or an LCM-style variant), and whether zero-terminal-SNR correction is applied (zsnr). This node takes those raw parameters directly and packages them into a SIGMA_SCHEDULE object - nothing gets discretized into actual sigma values yet; that's ADE_SigmaScheduleToSigmas's job downstream, or the sigma_schedule slot on Sample Settings.
The inputs and outputs that matter
All required, no optional inputs:
raw_beta_schedule- which underlying schedule family/shape to build.linear_start(default 0.00085) andlinear_end(default 0.012) - Stable Diffusion 1.5's own defaults, worth recognizing if you've seen them before; change these only if you're deliberately replicating a different training configuration.sampling- the prediction formulation (eps/v-prediction/LCM-style, depending on what's in the dropdown).lcm_original_timesteps(default 50) - only relevant ifsamplingis an LCM variant.zsnr(boolean, default false) - zero-terminal-SNR correction.
Output is a single SIGMA_SCHEDULE, which feeds either ADE_SigmaScheduleToSigmas (to get a concrete SIGMAS list for a custom sampler) or the sigma_schedule slot on Sample Settings.
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 - this is pure math configuration.
Common issues & troubleshooting
Not sure what values to actually put in here. If you don't have a specific beta schedule you're trying to replicate, this is almost certainly the wrong node - go back to whichever loader you're using and pick a named beta_schedule preset instead. This node exists for when you already know the exact numbers you need, not for general tuning.
Built a schedule and downstream sampling looks broken. Double-check sampling matches what your model actually expects - feeding an LCM-formulated schedule into a non-LCM sampling setup (or vice versa) produces exactly the kind of degraded, off output that's easy to misdiagnose as something else entirely.
Wondering if you even need this over the simpler named presets. For the overwhelming majority of AnimateDiff workflows, you don't. This node is specifically for edge cases where the pack's built-in beta_schedule presets on the loader nodes don't cover what you're trying to do - it's genuinely one of the more obscure corners of the pack.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| raw_beta_schedule | COMBO | 5 options: linear, sqrt_linear, sqrt, cosine, squaredcos_cap_v2 | |
| linear_start | FLOAT | 0.00080β1 | β |
| linear_end | FLOAT | 0.01200β1 | β |
| sampling | COMBO | 3 options: eps, v_prediction, lcm | |
| lcm_original_timesteps | INT | 501β1000 | β |
| zsnr | BOOLEAN | false | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMA_SCHEDULE | SIGMA_SCHEDULE | β |