SharkChainsampler
Hand a half-sampled latent to the next sampler and change the rules
- model
- positive
- negative
- sampler
- sigmas
- latent_image
- options_group
- output
- denoised
- options
Normally a sampler runs your whole schedule start to finish and spits out a finished latent. SharkChainsampler runs part of it, then passes the in-progress latent to the next chainsampler, which can pick up with a different sampler, CFG, or conditioning. String several together and you can change the rules partway through a single generation - different solver for the coarse structure than for the fine detail, or a prompt swap mid-run.
"Chainsamplers" are one of the tricks the RES4LYF README explicitly shows off as a workflow enhancer, and they're a natural fit for the pack's philosophy: a big chunk of its quality gains come from modulating parameters against time, and chaining is the blunt, legible way to do that. Instead of one monolithic sampler node you get a relay of them, each owning a slice of the denoising process.
How it works
Each chainsampler runs for steps_to_run steps of the schedule at its own CFG and mode, then emits the partially denoised latent for the next link. The default sampler_mode of resample is the giveaway that this is designed for multi-stage and unsampling-style pipelines. Set steps_to_run to -1 (the default) to run whatever's left of the schedule. Options flow through the group input so shared settings ride along the chain.
The inputs and outputs that matter
steps_to_run(default -1) - how many steps this link handles; -1 means "the rest."cfg(default 5.5) - guidance for this segment. Different links can run different CFG, which is the point.sampler_mode(defaultresample) - the stage this link is operating in.- Optional
model,positive,negative,sampler,sigmas,latent_image- the first link in a chain supplies these; later links inherit the running latent. Swappingpositivebetween links is how you get a mid-generation prompt change.
Outputs: output (LATENT, the running latent to pass onward), denoised (LATENT, the current clean estimate), and options (OPTIONS) to carry settings to the next link.
How to install it
Ships with RES4LYF. ComfyUI Manager: search RES4LYF, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/ClownsharkBatwing/RES4LYF/
cd RES4LYF
pip install -r requirements.txt
Portable builds use the embedded pip. Restart, hard-refresh (F5). Grab rgthree-comfy too so the sampler menus nest correctly.
Common issues
The step accounting is where chains go wrong. Each link consumes part of one shared schedule, so if your total across links doesn't line up with the sigmas you're feeding, you either run out of schedule early or leave the image under-denoised. Think of the whole chain as one schedule split into segments. Second, this is genuinely advanced and under-documented - the pack's own community keeps asking for a guide - so build up from a single link that just runs the whole schedule (steps_to_run = -1) and confirm it matches a normal sampler before you start splitting. Finally it's the "Beta" line, meaning the current experimental generation; inputs can shift on a pack update, so re-verify a chain after upgrading rather than assuming it survived.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| steps_to_run | INT | -1-1–10000 | — |
| cfg | FLOAT | 5.50-10000–10000 | Negative values use channelwise CFG. |
| sampler_mode | COMBO | resample | 2 options: unsample, resample |
| modelopt | MODEL | — | |
| positiveopt | CONDITIONING | — | |
| negativeopt | CONDITIONING | — | |
| sampleropt | SAMPLER | — | |
| sigmasopt | SIGMAS | — | |
| latent_imageopt | LATENT | — | |
| options_groupopt | COMFY_AUTOGROW_V3 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| output | LATENT | — |
| denoised | LATENT | — |
| options | OPTIONS | — |