KSampler (SimpleSyrup)
The sampler that reads your options chain
- model
- positive
- latent_image
- negative
- options
- segs
- region_masks
- latent
This is the consumer end of SimpleSyrup's sampling design. On its own it looks like a stock KSampler with two extra sockets. Everything interesting arrives through the options input, where you chain up to four small settings nodes:
- Tiling Options - MultiDiffusion / Mixture of Diffusers tiled sampling.
- Contextual Diffusion Options - the author's high-resolution edit method; overrides tiling when both are present.
- Noise Inversion Options - derive your starting noise from the image instead of a seed.
- Attention Coupling Options - route a global-first conditioning batch to ordered regions.
The chain is order-independent and each node appends one capability, so the graph reads like a settings panel you can bypass piece by piece. The pack enforces "one setting per feature": connect two nodes claiming the same capability and sampling stops with Duplicate sampler capability: tiling. Bypass or remove one node. That's deliberate, not a bug to work around.
One practical consequence of the design: all four nodes take and return the same type. So Ctrl+B on any options node cleanly removes its contribution, and bypassing the whole chain gives you plain sampling. Use bypass, not deletion.
The inputs that matter
model- the diffusion model being denoised. Regional LoRAs patched here (and Prompt Control model LoRAs on conditioning entry 0) apply across the whole image.positive/negative- both accept either ordinaryCONDITIONINGor aCONDITIONING_BATCH.negativeis optional; disconnect it and you get positive-only sampling with no CFG pass, which is what you want on guidance-distilled models that expect guidance 1. Leave it connected andcfgbehaves normally.latent_image,denoise,seed,steps(default 20),cfg(default 8).options- the chain described above. Bypass it and none of this exists.segs- guides where local windows fall, but only when Tiling or Contextual Diffusion options are connected. Ignored otherwise.region_masks- ordered masks paired with a global-first conditioning batch, but only when Attention Coupling options are connected. Ignored otherwise.
The output is one latent socket - into VAE Decode, or into more latent processing. There's no separate "tiled" and "regional" variant to learn; you configure this one.
Where it earns its place: the sampler list
The sampler_name dropdown is ComfyUI's core list plus euler_a_a1111 (A1111's ancestral Euler behavior, which people coming from WebUI miss immediately) plus the 118 RES4LYF methods vendored into the pack. The scheduler dropdown adds AYS SD1, AYS SDXL, GITS, beta57, bong_tangent and automatic_a1111 on top of Comfy's own.
That's the genuinely useful part. RES4LYF is where sampler tuning happens in 2026 - the beta57 schedule that anime and realism workflows now name by default, plus the high-order solvers - and burying that list inside a pack you can install through Manager is a real convenience. It's also the heavier kind of dependency: SimpleSyrup vendors RES4LYF's code, including that project's license copy with its upstream commercial-service paragraph, so if you're shipping a workflow commercially, read the third-party notice before you assume the AGPL is the whole story.
Install
Manager → Node Pack list → search SimpleSyrup → Install, then restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Artificial-Sweetener/SimpleSyrup.git
cd SimpleSyrup
python -m pip install -r requirements.txt
Use the same interpreter ComfyUI runs on (portable builds: python_embeded\python.exe). It's a large-ish requirements file - Ultralytics, ONNX Runtime, segment-anything, TorchLanc, Hugging Face Hub, keyring - because the same pack does detection, tagging and GPU Lanczos resizing. The nodes only appear on a current ComfyUI, since the pack uses the v3 extension API.
Troubleshooting the things that actually go wrong
- "My masks/segs do nothing." They're capability-gated.
region_maskswithout Attention Coupling connected, orsegswithout Tiling/Contextual connected, is silently ignored - that's in the tooltips and it's the most common way to lose twenty minutes here. - Half a regional setup is an error, not a fallback. A
CONDITIONING_BATCHwith no masks raises "Attention Coupling conditioning batches require region_masks," and masks with no batch raises the mirror-image error. Connect both or neither. - UniPC plus tiling is a hard stop. Tiling and Contextual Diffusion reject
uni_pcanduni_pc_bh2. - ControlNet and
area/gligenregional conditioning are rejected on the tiled paths - the author hasn't validated them across multiple contexts yet. - Dependency roulette. Custom nodes share one Python environment with no isolation; this pack brings Ultralytics, which is AGPL and which had a December 2024 cryptominer release that reached ComfyUI users through a node pack's dependency chain. Nothing about this pack is unusual there - it's the ecosystem's structural problem - but if a fresh install mysteriously breaks other packs, this is why the KB tells people to install one pack at a time and read the console.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | Diffusion model used to denoise the input latent. | |
| seed | INT | 00–18446744073709550000 | Seed used to create sampling noise. Reusing it with matching settings makes results repeatable. |
| steps | INT | 201–10000 | Number of denoising steps. More steps can add refinement but take longer. |
| cfg | FLOAT | 8.00–100 | Prompt guidance strength. Higher values follow the positive prompt more strongly but can look overcooked. |
| sampler_name | COMBO | Sampling algorithm. It affects the image's look, speed, and stability. | |
| scheduler | COMBO | Noise schedule used during sampling. It changes how quickly structure and detail form. | |
| positive | CONDITIONING,CONDITIONING_BATCH | Positive conditioning that guides what the sampler should add. | |
| latent_image | LATENT | Latent input whose samples will be denoised. | |
| denoise | FLOAT | 1.000–1 | Sampling strength. Lower values preserve the input more; higher values allow larger changes. |
| negativeopt | CONDITIONING,CONDITIONING_BATCH | Optional conditioning that guides what the sampler should avoid. Leave disconnected for positive-only sampling without CFG. | |
| optionsopt | SIMPLE_SYRUP_SAMPLER_OPTIONS | Optional preceding sampler options; bypass this node to omit its contribution. | |
| segsopt | SEGS | Guides local sampling regions when Tiling or Contextual Diffusion options are connected; ignored otherwise. | |
| region_masksopt | MASK | Ordered masks paired with global-first conditioning batches when Attention Coupling options are connected; ignored otherwise. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | Denoised latent for VAE decode or more latent processing. |