Nodes/raylight/Unified Parallel SamplerCustom Advanced
ComfyUI Node

Unified Parallel SamplerCustom Advanced

The most flexible sampler Raylight ships

By komikndr·Created about a year ago·Updated 2 days ago· 409
Unified Parallel SamplerCustom Advanced
  • noise_list
  • guider
  • sampler
  • sigmas
  • latent_image
  • output
  • denoised_output
  • ray_actors
add_noisetrue

This is the top of the Raylight sampler food chain: a custom-sampling sampler that combines the Unified parallel machinery (USP + FSDP + CFG + data-parallel in one graph) with a guider-based CFG system and a hand-built SIGMAS schedule. If you're running a serious multi-GPU setup and want per-GPU prompts and a custom schedule and guider-level CFG control, this is the node. It's also the most complex, so don't start here.

Raylight is Komikndr's multi-GPU pack - the "why buy a 5090 when two 5070s" crowd. Under Raylight/extra/custom_sampling/samplers, this is the Advanced sibling of Unified Parallel SamplerCustom: same list-based data-parallel inputs, but instead of positive/negative/cfg floats, CFG is delegated to a guider object.

How it works

Inputs: add_noise (boolean), noise_list, guider, sampler, sigmas, and latent_image. Outputs: output (the sampled latent, as a list per DP group), denoised_output (the model's denoised prediction, also a list), and the ray_actors passthrough.

There's no ray_actors input because the guider carries the model chain - you build it with Raylight's guider nodes under Raylight/extra/custom_sampling/guiders: Ray Basic Guider, Ray CFG Guider (positive/negative/cfg), or Ray DualCFG Guider (two conditionings at independent scales, regular or nested style). Feed that plus a sampler object and sigmas schedule, and each data-parallel group gets run through the full parallel machinery with its own slot in noise_list.

The denoised_output is the genuinely useful extra here: it's the model's clean prediction before renoising, which is what you want for noise-injection tricks, guidance rescaling, or just inspecting what the model thinks the image is. The plain samplers don't hand that to you.

The inputs that matter

  • guider - CFG control lives here, including DualCFG if your workflow runs two scales at once.
  • noise_list - per-DP-group seeds; one item shares a seed across groups.
  • sampler / sigmas - your custom chain, same as any custom-sampling node.

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

Three layers of things to get wrong, in increasing order of pain: output lists (index before decoding), the parallel-config math (Ulysses × Ring × CFG × DP must equal your GPU count), and the guider itself - it must be a Raylight RAY_GUIDER, and since it carries the model chain, a stale guider after a re-init will silently talk to a dead cluster. Build it as: re-init actors → rebuild guider → feed sampler. If you only need one prompt per generation with a custom schedule, the simpler XFuser SamplerCustom Advanced covers you without the list machinery.

CategoryRaylight/extra/custom_sampling/samplers

Inputs (6)

NameTypeDefaultDescription
add_noiseBOOLEANtrue
noise_listNOISE
guiderRAY_GUIDER
samplerSAMPLER
sigmasSIGMAS
latent_imageLATENT

Outputs (3)

NameTypeDescription
outputLATENT
denoised_outputLATENT
ray_actorsRAY_ACTORS