Nodes/ComfyUI-Texturaizer/Seamless Tiling Patch (Texturaizer)
ComfyUI Node

Seamless Tiling Patch (Texturaizer)

The classic circular-padding hack, with a step window

By LatentSpaceDirective·Created 2 years ago·Updated 9 months ago· 22
Seamless Tiling Patch (Texturaizer)
  • model
  • MODEL
startStep0
stopStep999
tilingXtrue
tilingYtrue

Textures tile. Walls, floors, fabric, game assets - the whole reason you're using a Blender-to-AI pipeline is often to generate a seamless texture you can wrap around a 3D object. Generate with a normal sampler and you get visible seams where the tile edges meet. Seamless Tiling Patch is the node that fixes that the old-school way: it rewrites the model's convolution padding to circular, so the left edge of the latent wraps around to the right edge, and your output tiles seamlessly.

Context: Texturaizer is a paid Blender addon by Luke Kratsios (LatentSpaceDirective); this node is part of its free ComfyUI pack. The source itself labels the approach "the SD seamless-tiling hack" and marks it experimental - that's the honest framing, so keep expectations calibrated.

Inputs

  • model (MODEL) - the model to patch. It's patched in place, and you get the same model object back.
  • startStep / stopStep (INT) - the step window during which circular padding is active. Outside it, padding falls back to constant (normal). Default 0999 means "all steps"; narrow the window if you want the tile to form early and the model to sample normally afterward.
  • tilingX / tilingY (BOOLEAN) - which axes tile. Both on for full 2D tiling; for a strip or a single-direction pattern, turn one off.

Output: MODEL, ready to feed a sampler.

How it works

This is the seamless-tiling patch that's been floating around the Stable Diffusion ecosystem for years, reimplemented cleanly. It walks the model's Conv2d layers and swaps the padding mode for circular on each axis, splitting the pad tuple into X and Y components so it can do asymmetric tiling. Crucially, it also tracks a per-layer timestep counter and checks it against startStep/stopStep on every forward pass, so the circular padding is only in effect inside your chosen window. If you've used the A1111 "seamless" checkbox or any of the ComfyUI tiling-patch nodes, this is the same trick with a schedule on top.

It patches the model, not the VAE - note there's a separate CircularVAEDecode sibling in this pack for the decode side, because if only the sampler tiles and the VAE doesn't, the decode can still reintroduce edge artifacts. For fully seamless results you typically want both halves.

Install and the honest caveats

Pack-level install:

cd ComfyUI/custom_nodes
git clone https://github.com/LatentSpaceDirective/ComfyUI-Texturaizer

or search "Texturaizer" in ComfyUI Manager and restart. Stock dependencies, no models.

Two honest caveats. First, the "experimental" label is earned: patching every Conv2d in a model is a blunt instrument, and different architectures (SD 1.5 vs SDXL, not to mention Flux-era) behave very differently under circular padding. What's seamless on one checkpoint can smear or degrade another. Test per model. Second, tiling is usually a lower-quality trade: circular padding fights the model's learned behavior, so seams vanish but texture coherence can dip. For most texture work that's an acceptable deal; if the tile quality collapses, the common fix is narrowing the step window (tile early, sample normally late) rather than abandoning the node. And remember the VAE-decode side - tile both ends or expect a surprise seam.

CategoryTexturaizer

Inputs (5)

NameTypeDefaultDescription
modelMODEL
startStepINT0
stopStepINT999
tilingXBOOLEANtrue
tilingYBOOLEANtrue

Outputs (1)

NameTypeDescription
MODELMODEL