Unified Parallel SamplerCustom (Advance)
Data-parallel power with a custom schedule
- ray_actors
- noise_list
- positive
- negative
- sampler
- sigmas
- latent_image
- latent
- ray_actors
Take the Unified Parallel Sampler's superpower - running USP, FSDP, CFG, and data-parallel all at once, with a list of per-GPU prompts and seeds - and swap its built-in sampler/scheduler dropdowns for a hand-built SAMPLER + SIGMAS chain, and you've got Unified Parallel SamplerCustom. It's the node for people who want the full parallel mix and a custom noise schedule, instead of trusting the scheduler defaults.
Raylight is Komikndr's multi-GPU pack for ComfyUI - "two 5070s instead of a 5090." This node lives under Raylight/extra/custom_sampling/samplers, and it's the distributed version of ComfyUI's SamplerCustom: you bring your own sampler object and sigmas schedule, the node brings the multi-GPU and multi-prompt machinery.
How it works
Inputs: ray_actors, add_noise (boolean), noise_list, cfg, positive, negative, sampler, sigmas, and latent_image. Outputs: latent (a list, one per DP group) and the ray_actors passthrough.
The data-parallel list inputs are the whole point, same as the non-custom Unified sampler: noise_list is the list of seeds per DP group (from "Data Parallel Noise List"), and positive/negative/latent_image can each be lists too (build them with "Data Parallel Conditioning List" / "Data Parallel Latent List"). Each group gets its own slot in the schedule. What's different from the plain Unified sampler is that sampler_name/scheduler dropdowns are gone - you feed a sampler object and a sigmas schedule from the native custom-sampling nodes, which is exactly what you want when you need a non-default scheduler (say, a custom Karras or an exponential schedule) or a specific sampler-scheduler pairing.
The inputs that matter
- noise_list - the seed list. One item shares the seed across all groups; multiple items diversify.
- cfg - a single value applied across all groups. For distilled video models that's usually 1.
- sampler / sigmas - your custom chain. If a scheduler outputs something the workers can't consume, you'll see it fail here.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/komikndr/raylight
cd raylight
<your_python> -m pip install -r requirements.txt
or ComfyUI Manager → search raylight.
Common issues
The usual list-output gotcha applies: the latent output is a list, so pull the one you want with an index node before decoding. And the config-math validation from the Unified family is here too - Ulysses × Ring × CFG × DP must equal your GPU count or the sampler refuses to run. If your custom SIGMAS chain worked in native ComfyUI but fails here, the first thing to check is whether you're on a stale cluster after changing the parallel config - re-init and rebuild the sampler chain, because a fresh worker set means a fresh graph.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| ray_actors | RAY_ACTORS | — | |
| add_noise | BOOLEAN | true | — |
| noise_list | NOISE | — | |
| cfg | FLOAT | 8.00–100 | — |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| sampler | SAMPLER | — | |
| sigmas | SIGMAS | — | |
| latent_image | LATENT | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |
| ray_actors | RAY_ACTORS | — |