Nodes/SimpleSyrup/KSampler (Tiled Diffusion)
ComfyUI Node

KSampler (Tiled Diffusion)

Sample Huge Latents Tile by Tile — the Direct Approach

By Artificial-Sweetener·Created 3 months ago·Updated 12 days ago· 2
KSampler (Tiled Diffusion)
  • model
  • positive
  • negative
  • latent_image
  • segs
  • LATENT
seed0
steps20
cfg8.0
sampler_name
scheduler
denoise1.00
diffusion_modemultidiffusion
latent_tile_width128
latent_tile_height128
latent_tile_overlap16
latent_tile_batch_size4

At some point every ComfyUI user hits the wall: the latent is too big to sample in one shot, and the options are "crop the canvas" or "learn to love low resolution." Tiled diffusion is the third way - divide the latent into overlapping contexts, evaluate them in batches, and combine the predictions on every denoising step. KSampler (Tiled Diffusion) is SimpleSyrup's direct implementation of that, with the two classic blend strategies selectable and an optional SEGS input that lets you bend the tile boundaries around actual image regions.

How it works

Each denoising step, the latent is split into overlapping tiles, each tile is evaluated by the model, and the predictions are merged. The merge is where the two diffusion_mode options differ:

  • multidiffusion (default): averages the overlapping predictions. Steady and predictable - the safe default, and the one most tiled-upscale workflows in the WebUI world used.
  • Mixture of Diffusers: uses Gaussian weights that favor each tile's center. Softer blending that can look nicer when tile seams are the complaint.

The tile knobs: latent_tile_width / latent_tile_height (128×128), latent_tile_overlap (16), and latent_tile_batch_size (4). Bigger tiles see more context but cost more VRAM; more overlap kills seams but adds compute; higher batch size is faster but thirstier. Everything else is a normal KSampler - model, seed, steps (20), cfg (8), sampler/scheduler, positive/negative, denoise (1) - and the output is a standard LATENT.

The optional segs input is the interesting extra: instead of a regular grid, the tile boundaries follow the supplied SEGS regions (with the configured overlap preserved). If your large image has a few well-defined subjects, region-guided tiles can place the context where it matters.

The honest ceiling

Tiling keeps each evaluation small, but it doesn't make the tiles understand the same complete image. On very large canvases, adjacent tiles can disagree about what the scene is - the seams stay smooth while the content quietly changes. That's exactly the failure that Contextual Diffusion was built to fix: same tiled path, plus a whole-image correction branch for edits where composition must survive. So the honest guidance is: use this node when local consistency and tile blending are enough for your image (big upscales, high-res re-sampling where the composition is already fixed), and reach for Contextual Diffusion when you're editing a large canvas and the scene itself must stay coherent.

Install

Ships in the SimpleSyrup pack. ComfyUI Manager → search SimpleSyrup → Install → restart, or:

Set-Location ComfyUI\custom_nodes
git clone https://github.com/Artificial-Sweetener/SimpleSyrup.git
Set-Location SimpleSyrup
..\..\venv\Scripts\python.exe -m pip install -r requirements.txt

Restart ComfyUI; current build required (v3 extension API).

Common issues

  • Seams between tiles - raise latent_tile_overlap, or try Mixture of Diffusers.
  • Out of VRAM - reduce tile size and latent_tile_batch_size first; those are the memory levers.
  • Scene drifts between tiles - that's the tiling comprehension limit, not a bug; bigger tiles help, Contextual Diffusion fixes it.
  • Node missing - update ComfyUI before blaming the pack.

It's the direct, no-frills tiled sampler: the default choice when your only problem is size.

CategorySimpleSyrup/Sampling

Inputs (16)

NameTypeDefaultDescription
modelMODELDiffusion model used to denoise the input latent.
seedINT00–18446744073709550000Seed used to create sampling noise. Reusing it with matching settings makes results repeatable.
stepsINT201–10000Number of denoising steps. More steps can add refinement but take longer.
cfgFLOAT8.00–100Prompt guidance strength. Higher values follow the positive prompt more strongly but can look overcooked.
sampler_nameCOMBOSampling algorithm. It affects the image's look, speed, and stability.
schedulerCOMBONoise schedule used during sampling. It changes how quickly structure and detail form.
positiveCONDITIONING,CONDITIONING_BATCHPositive conditioning that guides what the sampler should add.
negativeCONDITIONING,CONDITIONING_BATCHNegative conditioning that guides what the sampler should avoid.
latent_imageLATENTLatent input whose samples will be denoised.
denoiseFLOAT1.000–1Sampling strength. Lower values preserve the input more; higher values allow larger changes.
diffusion_modeCOMBOmultidiffusionTile overlap blend. MultiDiffusion averages predictions; Mixture of Diffusers gives tile centers more influence.
latent_tile_widthINT12816–512Width of each latent tile. Larger tiles see more context but use more memory.
latent_tile_heightINT12816–512Height of each latent tile. Larger tiles see more context but use more memory.
latent_tile_overlapINT160–256Overlap between latent tiles. Larger overlaps reduce seams but increase sampling work.
latent_tile_batch_sizeINT41–8Number of latent tiles sampled together. Higher values can be faster but use more memory.
segsoptSEGSOptional image regions that guide irregular tile boundaries while preserving the configured overlap.

Outputs (1)

NameTypeDescription
LATENTLATENTDenoised latent for VAE decode or more latent processing.