Zeta Scheduler Node
A custom noise schedule that wants to be the 'other Beta'
- model
- SIGMAS
The scheduler is the quieter half of the sampler/scheduler pair - it decides how much noise gets removed at each step, and it's the half most people never touch. This pack ships two custom schedulers, and Zeta is the one the author pitched as an "alternative" to the Beta scheduler, on a different distribution, with "good color depth." ZetaSchedulerNode is the standalone node for it: feed it a model and a step count, and it returns a SIGMAS tensor you can drop into a KSampler's scheduler input. It's a niche tool for people who treat noise schedules as a creative parameter - which is a real, growing community practice.
Why you'd reach for it
Two reasons. If you want the Zeta schedule specifically, this node gives you all its knobs, whereas the KSampler's built-in dropdown only exposes the default profile. And if you're doing systematic schedule comparisons - the same pattern that made RES4LYF and beta57 household names in the flow-matching era - a scheduler node with explicit parameters is how you set up a controlled A/B. The README's claim is that Zeta holds color depth well, which reads like the author's preferred setting for anime models rather than a universal rule. Treat it as a flavor worth tasting, not a replacement for your defaults.
How it works
The scheduler builds a power-law (zeta-distribution-like) curve: each step gets weight 1 / rank^alpha, where alpha drifts from x_start to x_end across the run. Those weights are normalized into a cumulative distribution, inverted, and mapped onto the model's sigma range (min to max). Because the front-loaded weights translate into big sigma drops in the first few steps, the schedule falls quickly from max sigma and then lingers in low-sigma territory - the fine-detail end of denoising, the same family of behavior as the Beta scheduler. The knobs tune the flavor:
- x_start / x_end - the drift of the exponent, default 2.75 → 3.2. Higher exponents concentrate weight on the earliest steps.
- path_type (linear, poly, cosine, exp) - how the exponent drifts: straight line, polynomial, cosine curve, or exponential. This is the biggest flavor lever.
- kappa - the exponent parameter for poly/cosine/exp paths.
- gamma - raises the whole weight curve to a power, reshaping it further.
- pivot - a mid-run anchor so the exponent drifts in two linear segments instead of one.
- clip_frac - clamps the sigmas to a band around min/max, keeping the curve from extremes.
- range_scale - scales the spread between sigma_min and sigma_max.
The denoise input trims the tail of the schedule for img2img use, which is the same convention other schedulers follow.
The inputs that matter
For a beginner, honestly: steps and denoise are all you need to start, and path_type is the first experiment knob. The defaults are sane. model (MODEL) is required because the node reads the model's actual sigma_min/sigma_max - so it's model-aware, like all good schedulers.
Installing it
The pack registers both Zeta and Zipf Linear into ComfyUI's scheduler list globally, plus four euler_extsig samplers. That's the whole install story:
cd ComfyUI/custom_nodes
git clone https://github.com/LaVie024/comfyui-lopi999-nodes
Restart ComfyUI. Manager's "comfyui-lopi999-nodes" search works too. The pack imports scipy and torchsde for its sampler machinery with no requirements.txt, so if the whole pack fails to load, pip install scipy torchsde is the fix.
Common issues
Here's the honest part: this pack patches ComfyUI internals - it appends zeta and zipf_linear to SCHEDULER_NAMES and registers samplers into KSampler.SAMPLERS at import time. That is exactly the kind of thing that breaks when ComfyUI updates, and it matches the community's experience that lopi999's workflows tend to break across ComfyUI versions. If Zeta disappears from your dropdown after an update, that's why. Also remember the flow-matching caveat from the sampler world: aggressive schedule reshaping is where it belongs on DDPM-style models (SDXL, Illustrious, NoobAI, Pony); on flow-matching models like Flux, heavily reshaped schedules can hurt. Zeta is a DDPM-era tool - use it there.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| steps | INT | 201–10000 | — |
| denoise | FLOAT | 1.000–1 | — |
| x_start | FLOAT | 2.75 | — |
| x_end | FLOAT | 3.20 | — |
| path_type | COMBO | 4 options: linear, poly, cosine, exp | |
| kappa | FLOAT | 1.00 | — |
| gamma | FLOAT | 1.00 | — |
| pivot | FLOAT | 0.000–0.99 | — |
| clip_frac | FLOAT | 0.00 | — |
| range_scale | FLOAT | 1.00 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |