Nodes/tiled_ksampler/Tiled KSampler
ComfyUI Node

Tiled KSampler

The Tiled KSampler, demystified

By FlyingFireCo·Created 3 years ago·Updated 2 years ago· 103
Tiled KSampler
  • model
  • positive
  • negative
  • latent_image
  • LATENT
seed0
tiling1
steps20
cfg8.00
sampler_name
scheduler
denoise1.00

If you came here hoping this node renders 4K on your 6GB card, stop - wrong node, wrong pack, sorry. The name collides with the "Tiled Diffusion" style of tiling that splits a huge render into chunks to save VRAM, and the confusion is so constant that people keep posting "Tiled KSampler - what's the actual use case?" threads in r/comfyui. This one is the opposite thing. It doesn't break a big image into pieces; it makes the image itself tileable, edge to edge, so you can repeat it forever without a seam.

What it's actually for

Seamless textures and repeating patterns. Game assets (albedo, normal maps, specular), wallpaper and fabric designs, tileable backgrounds, anything you're going to tile in an image editor or drop into a game engine. If the output is meant to be copied side by side and up and down with invisible joins, this is the node. It's a drop-in KSampler with one extra toggle, tiling, and the README states the contract plainly: when tiling = 1 it tiles, when tiling = 0 it behaves like a normal KSampler.

How it works

Straightforward and honest. The node walks every convolution layer in the UNet and sets its padding mode to circular. Circular padding means that when a convolution needs values from beyond the image border, it wraps around to the opposite edge, so the model genuinely believes the image continues on the other side. Result: the left edge learns what the right edge looks like, the top learns from the bottom, and the seam vanishes. With tiling = 0 it sets the padding back to zeros and calls the identical core sampling routine - literally a normal KSampler.

The inputs that matter

The full standard KSampler set, plus one:

  • model, seed, steps, cfg, sampler_name (all 34 samplers), scheduler (all 9), positive, negative, latent_image, denoise

The one that's unique to this node is tiling (0 or 1, default 1). That's the entire point of it. One output, LATENT, wired into a VAE Decode like any sampler - and for this workflow, the pack's Circular VAEDecode is the right decoder.

Installing it

No dependencies at all: no requirements.txt, no pip install, no model downloads. It only touches ComfyUI's own modules. Easiest route is ComfyUI Manager:

  1. Manager → Install Custom Nodes → search tiled_ksampler → Install → restart ComfyUI

Or clone by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/FlyingFireCo/tiled_ksampler.git

Restart, and it appears under Sampling/Tiled.

Where people get burned

  • "I wanted it to upscale, not make a pattern." Again: that's Tiled Diffusion, a different family of nodes entirely. This pack's name borrows the A1111 "tiling" checkbox idea, which is about seamlessness, not VRAM management. If you want chunked high-res rendering, look at Tiled Diffusion or Ultimate SD Upscale instead.
  • Seam returns after decode. The sampler wraps edges, but the VAE decoder pads normally and bleeds at the border. Use Circular VAEDecode after this node, not the stock one, or you'll be back to visible seams.
  • It quietly leaves the model wrapped. The code sets circular padding and, unlike the asymmetric sibling in this pack, doesn't restore it after sampling. The same loaded model keeps wrapping edges for the rest of the session - so a plain KSampler run right afterward will still come out seamless. Mostly harmless, but it explains "why did my next normal render wrap?" Reload the workflow if you want a truly default model.
  • Odd dimensions. Stick to multiples of 8 (so the latent maps cleanly through the VAE), and for a properly repeating tile, 1024x1024 is the boring, dependable choice.

There's no model file to fetch and no third-party library to break, which makes this one of the lower-maintenance nodes in the ecosystem. If you generate textures at all, it's worth the thirty seconds to install.

CategorySampling/Tiled

Inputs (11)

NameTypeDefaultDescription
modelMODEL
seedINT00–18446744073709550000
tilingINT10–1
stepsINT201–10000
cfgFLOAT8.000–100
sampler_nameCOMBO34 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +28
schedulerCOMBO9 options: normal, karras, exponential, sgm_uniform, simple, ddim_uniform, +3
positiveCONDITIONING
negativeCONDITIONING
latent_imageLATENT
denoiseFLOAT1.000–1

Outputs (1)

NameTypeDescription
LATENTLATENT