Sampler Custom XY ๐
Running a whole parameter grid through one sampler node
- model_xy
- positive
- negative
- sampler
- sigmas
- latent_image
- output
- denoised_output
ComfyUI has no built-in equivalent of Automatic1111's XYZ Plot script, so any grid comparison - LoRA strength across rows, CFG across columns, that kind of sweep - has to be assembled by hand. Sampler Custom XY is the sampling half of cgem156's homegrown version of that workflow: instead of taking a single MODEL, it takes model_xy, an XY_MODEL - a grid of models, presumably one per combination of whatever's being swept - and runs the sampling pass across the entire grid in one node, instead of you re-running the graph once per combination by hand.
Worth flagging honestly: whatever builds an XY_MODEL isn't part of this batch of node writeups, so its exact schema isn't something verified here directly. Everything below covers what this node does with that grid once it has one.
The inputs that matter
Beyond model_xy, this is otherwise a fairly ordinary "assemble your own sampler" node:
add_noise- whether to add fresh initial noise, or treatlatent_imageas already partially denoised and sample from there as-is.noise_seed- standard seed, feeding whatever initial noise gets added.cfg(0โ100, default 8) - classifier-free guidance strength, same meaning as on any sampler.positive/negative- yourCONDITIONING, i.e. your prompts.sampler- aSAMPLERobject; this pack'sTCDSamplerorSamplerEulerAncestralFixedNoiseplug in here, or any of ComfyUI's stock samplers viaKSamplerSelect.sigmas- aSIGMASschedule; this pack'sTextSchedulercan supply one if you want an exact hand-typed schedule instead of a preset.latent_image- your starting latent.
Outputs are output and denoised_output (both LATENT) - the grid's worth of resulting latents. Decode them to images and feed the batch, along with whatever xy_list your grid-builder produced, into this pack's PreviewXY to see the labeled comparison.
Using it
This node isn't usable on its own - it's the middle piece of a three-part flow: something builds an XY_MODEL (and typically an XY_LIST for labeling), this node samples across it, and PreviewXY renders the result as a grid. If you don't already have a grid-builder feeding model_xy, this node has nothing to chew on.
Installing it
Via ComfyUI Manager: search cgem156-ComfyUI, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/laksjdjf/cgem156-ComfyUI
Restart afterward. No model downloads for the node itself - you'll need whatever LoRAs or checkpoints your actual sweep is comparing, same as any normal generation.
Common issues & troubleshooting
Nothing to connect to model_xy. You need the pack's grid-builder node upstream first - this sampler doesn't create the sweep, it only runs it.
Grid runs but PreviewXY output looks misaligned. Check that the image batch you decode from output/denoised_output stays in the same order as the xy_list your grid-builder produced - reordering or filtering the batch anywhere in between will desync the labels from the images.
Slow generation. Expected - this node is sampling an entire grid of combinations in one pass, which is inherently N-times the compute of a single generation, where N is your grid's cell count.
You were hoping for a polished, documented XYZ-plot feature. This corner of the pack (lora_xy) is functional but self-assembled and thin on documentation - there's no README section for it and effectively no community discussion. If you just need occasional side-by-side comparisons rather than a repeatable grid tool, manually queueing a few runs and comparing outputs by eye may honestly be less friction than wiring up this toolchain.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model_xy | XY_MODEL | โ | |
| add_noise | BOOLEAN | true | โ |
| noise_seed | INT | 00โ18446744073709550000 | โ |
| cfg | FLOAT | 8.00โ100 | โ |
| positive | CONDITIONING | โ | |
| negative | CONDITIONING | โ | |
| sampler | SAMPLER | โ | |
| sigmas | SIGMAS | โ | |
| latent_image | LATENT | โ |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| output | LATENT | โ |
| denoised_output | LATENT | โ |