Nodes/raylight/BasicScheduler (Ray)
ComfyUI Node

BasicScheduler (Ray)

Pick your sigma curve, on the cluster

By komikndr·Created about a year ago·Updated 2 days ago· 409
BasicScheduler (Ray)
  • ray_actors
  • SIGMAS
scheduler
steps20
denoise1.00

Every sampler needs a schedule - the list of noise levels it walks down from pure static to clean output. RayBasicScheduler is the node that builds that schedule on the Ray cluster, the distributed twin of core ComfyUI's BasicScheduler. If you're assembling a custom sampling graph with the Ray nodes, this is where the sigmas come from.

The inputs that matter. Three knobs, all required:

  • ray_actors - the initializer chain.
  • scheduler - the curve, and this is where the variety lives. Nine options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, normal, linear_quadratic, and kl_optimal. For SD-class models, karras remains the default flavor of choice for most people; for video and distilled models, the defaults in the workflows you've downloaded are usually right, so don't go fiddling for sport.
  • steps - how many sampling steps the schedule covers (default 20).
  • denoise - how much of the schedule to use, 0–1 (default 1). At 0.5 you're only walking the second half of the curve, which is the img2img-refinement move.

Output. A single SIGMAS object, which feeds the sigmas input on RayAddNoise, DPSamplerCustom, or DPSamplerCustomAdvanced. That's the whole contract: scheduler in, schedule out, wire it downstream.

Why it exists. In the custom-sampling stack, the schedule is a first-class object you can inspect, split, and hand around. The Ray version exists because the workers - not the host - do the sampling, so the schedule needs to be computed in a way the distributed stack understands and can broadcast to every rank. Same curves as the core node, one extra ray_actors wire, no surprises.

Where people get burned. Mostly by assuming the schedule is somehow GPU-specific. It isn't - every worker in the group consumes the same sigmas; what varies across GPUs is the seed (via DPNoiseList), not the schedule. The other frequent stumble is pairing this with the wrong sampler family: this feeds the custom-sampling nodes (DPSamplerCustom / DPSamplerCustomAdvanced), not the all-in-one DPKSamplerAdvanced, which has its own built-in scheduler dropdown. Trying to jam SIGMAS into that node is a type error you'll see in the console before you see it in the graph.

For LTX models specifically, note that the beta scheduler in this list exists because LTX wants it - but if that's your target, RayBetaSamplingScheduler is the more faithful option with the shape knobs built in.

Install. Part of the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/komikndr/raylight
cd raylight
pip install -r requirements.txt

or ComfyUI Manager → search "raylight" → Install, restart. xfuser is the big dependency; FlashAttention is optional; Windows means WSL2.

If you've used core BasicScheduler, this is a one-line mental diff: same nine curves, same defaults, ray_actors added, and the whole thing computed on the cluster instead of your host process.

CategoryRaylight/extra/custom_sampling/schedulers

Inputs (4)

NameTypeDefaultDescription
ray_actorsRAY_ACTORS
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
stepsINT201–10000
denoiseFLOAT1.000–1

Outputs (1)

NameTypeDescription
SIGMASSIGMAS