KSampler (Tiled Diffusion)
Sample Huge Latents Tile by Tile — the Direct Approach
- model
- positive
- negative
- latent_image
- segs
- LATENT
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_sizefirst; 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.
Inputs (16)
| 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. | |
| negative | CONDITIONING,CONDITIONING_BATCH | Negative conditioning that guides what the sampler should avoid. | |
| 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. |
| diffusion_mode | COMBO | multidiffusion | Tile overlap blend. MultiDiffusion averages predictions; Mixture of Diffusers gives tile centers more influence. |
| latent_tile_width | INT | 12816–512 | Width of each latent tile. Larger tiles see more context but use more memory. |
| latent_tile_height | INT | 12816–512 | Height of each latent tile. Larger tiles see more context but use more memory. |
| latent_tile_overlap | INT | 160–256 | Overlap between latent tiles. Larger overlaps reduce seams but increase sampling work. |
| latent_tile_batch_size | INT | 41–8 | Number of latent tiles sampled together. Higher values can be faster but use more memory. |
| segsopt | SEGS | Optional image regions that guide irregular tile boundaries while preserving the configured overlap. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | Denoised latent for VAE decode or more latent processing. |