Tiling Options
Sample bigger than your VRAM without buying a new card
- options
- options
Tiled diffusion is the old, reliable trick for running an image whose latent won't fit in memory: cut the latent into overlapping chunks, evaluate the chunks, blend the results. In A1111 that lived in the Tiled Diffusion extension; in ComfyUI it usually means swapping in a separate "tiled KSampler" node. SimpleSyrup does it differently - the tiling lives in its own little node that you chain into a normal sampler, so the sampling controls stay where you left them.
That's the whole design of this pack's sampling side, and it's worth internalizing before you wire anything: Tiling Options is not a sampler. It's a settings node that outputs one options value which you plug into KSampler (SimpleSyrup), which then does the tiled sampling. Nothing happens until something downstream reads it.
What it actually does
Your latent gets divided into spatial tiles, each tile is evaluated with the same conditioning, and the predictions are combined during every denoising step. Two blend policies are on offer:
multidiffusion(the default) - averages overlapping predictions. This is the MultiDiffusion method, and it's the one to start with.mixture_of_diffusers- weights each tile's prediction toward its center with a Gaussian, so the middle of a tile counts for more than its edges. Sharper, slightly more opinionated about where detail comes from.
Tiling keeps each model evaluation small. It does not give the tiles any awareness of the picture as a whole, and that limitation is exactly why the same author built Contextual Diffusion as a separate node - if your tiles are producing a scene that reads like several different images stitched together, tiling is the wrong tool and no overlap value will save you.
The inputs that matter
Everything here is in latent pixels, not image pixels. With an 8x VAE that means latent_tile_width: 128 is a 1024-pixel-wide tile. Run the default 128×128 on a 1024×1024 latent and you have one tile covering the whole thing - congratulations, you turned tiling on and off in the same click. Tiles only do something when they're smaller than your latent.
latent_tile_width/latent_tile_height- 16 to 512, default 128. Smaller tiles buy VRAM headroom and cost you context; each tile sees less of the image.latent_tile_overlap- default 16, and it has to stay below the smaller tile dimension. More overlap means fewer seams and more total work.latent_tile_batch_size- default 4. How many tiles get evaluated together. Higher is faster if you have the memory for it.differential_diffusion- off by default. When on, the latent's noise mask varies denoising strength spatially, which is the behavior you want for masked/inpaint-style work. It preserves the model's existing mask behavior rather than replacing it.
The single output is options (type SIMPLE_SYRUP_SAMPLER_OPTIONS). Wire it into another options node or straight into the KSampler's options input, and connect the segs input on that KSampler if you want detected regions to steer where tiles land.
Install
Manager → Node Pack list → search SimpleSyrup → Install → restart. Or by hand:
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 python that runs ComfyUI
Windows portable users run that pip line with python_embeded\python.exe from the portable root. The requirements pull in TorchLanc, Ultralytics, ONNX Runtime, segment-anything, timm and friends - a real dependency footprint, because the pack also does detection and tagging. ComfyUI supplies PyTorch itself. The pack uses ComfyUI's v3 extension API, so an old install simply won't show the nodes.
Where people get burned
- UniPC is rejected. Pick
uni_pcoruni_pc_bh2with MultiDiffusion tiling and you get "Tiling and Contextual Diffusion do not support UniPC samplers." Use a different sampler. - ControlNet and regional conditioning are not supported yet. Conditioning carrying
control,areaorgligenkeys gets rejected outright on the tiled path. The author's own message - "does not support regional conditioning or ControlNet in the first implementation." - Two tiling nodes, one sampler. A second
Tiling Options(or aContextual Diffusion Optionson the same chain) throwsDuplicate sampler capability: tiling. Bypass or remove one node.If Contextual Diffusion is connected, it wins: your tiling settings are logged as ignored and replaced. Stacking them does not give you both. - Bypass is the off switch. The options nodes take and return the same type, so Ctrl+B on
Tiling Optionsremoves its contribution cleanly. Don't delete and rewire.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| 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. |
| differential_diffusion | BOOLEAN | false | Uses the noise mask to vary denoising strength spatially; preserves existing model mask behavior. |
| optionsopt | SIMPLE_SYRUP_SAMPLER_OPTIONS | Optional preceding sampler options; bypass this node to omit its contribution. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| options | SIMPLE_SYRUP_SAMPLER_OPTIONS | Combined sampler options; connect another options node or KSampler. |