Nodes/ComfyUI SKBundle/Seamless Texture
ComfyUI Node

Seamless Texture

Seamless Texture (SKBundle)

By SKBv0·Created 2 years ago·Updated 3 months ago· 125
Seamless Texture
  • image
  • IMAGE
tile_size512
overlap64
pattern_typesimple
interpolationbilinear
repeat_count1
texture_directionhorizontal
detail_level1.0
edge_padding0
edge_blur0
edge_fade0
color_correctionfalse
color_correction_strength0.5
color_correction_clip_limit0.03
light_equalization0
gradient_removal0

Seamless Texture takes one image and turns it into a texture that tiles cleanly - the edges wrap so it repeats without an obvious seam. It's not the same "tiling" you've been warned about elsewhere: generating above a model's native resolution causing unwanted repeated patterns is a bug you fix. This node does the same wrapping trick on purpose, for material and pattern work - fabric, stone, wallpaper, game-ready textures - where you want the image to repeat.

Why you'd reach for it

Making a genuinely seamless tile by hand is fiddly: you need the opposite edges to match, the lighting to be even across the whole thing, and no obvious repeat pattern once it's tiled a few times over. This node automates that - feed it a source image (an AI-generated material concept, a photographed swatch, whatever) and it handles the edge-blending and cleanup work that would otherwise mean round-tripping through an image editor with the offset filter and a lot of manual cloning.

How it works

The core knobs are tile_size (how big a chunk of the source counts as one repeatable tile, 64–2048px) and overlap (how much of the edges blend into each other to hide the seam, 0–256px) - overlap needs to be meaningfully smaller than tile_size but nonzero, or the seam stays visible. pattern_type picks the wrapping strategy: simple wraps the tile directly, mirror flips alternate copies to break up an obvious repeat, and rotate rotates alternate tiles for the same reason - mirror or rotate tend to hide repetition better on irregular textures like foliage or stone, where simple is fine on things that are already uniform. texture_direction (horizontal, vertical, diagonal) sets which axis gets the seamless treatment, and repeat_count (1–10) tiles the output that many times so you can actually see the pattern repeat in the preview rather than judging a single tile in isolation.

interpolation controls resampling quality when the node resizes internally - nearest is blocky and fast, bilinear (the default) is a reasonable middle ground, bicubic is the smoothest. Then there's a cluster of cleanup settings that matter more than they look like they would: edge_padding, edge_blur, and edge_fade soften the seam boundary further, and color_correction (with its own color_correction_strength and color_correction_clip_limit) evens out color differences across the tile. light_equalization and gradient_removal deal with the single most common reason a "seamless" texture still looks obviously repeated: a source photo with directional lighting baked in - a bright side and a shadowed side - that gives the tile away the moment it repeats, no matter how good the edge blending is.

Inputs and outputs

image is your source. The settings worth dialing in first are tile_size, overlap, and pattern_type - get those roughly right before touching the cleanup knobs. Output is a single IMAGE: your seamless (or tiled-preview, depending on repeat_count) texture, ready to save or feed into further processing.

Installing it

Part of ComfyUI SKBundle, u/skbphy's personal collection of workflow nodes - built with Cursor AI's help by someone who's been open about not being a career programmer, inspired by rgthree and mxToolkit. Through ComfyUI Manager, search ComfyUI SKBundle. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/SKBv0/ComfyUI_SKBundle.git
pip install -r requirements.txt

Restart ComfyUI. No model downloads - this is classical image processing, not inference.

Common issues

The most common "why does this still look tiled" problem isn't overlap or tile_size - it's uneven lighting in the source image. If you photographed or generated a material with any directional light on it, the tile will visibly repeat once placed side by side no matter how clean the seam blending is, because the eye catches the light gradient jumping, not the edge itself. light_equalization and gradient_removal both default to 0 (off) - if your source has any visible directional lighting, turn those up before assuming the node isn't working. Second most common: overlap set too close to tile_size, which crops away most of your actual texture detail trying to blend a seam that didn't need that much help - start small and increase only if the seam is still visible at higher repeat_count. And don't confuse this with fixing an unwanted repetition artifact from generating above your model's native resolution - that's a sampling problem solved with hires fix or a tiled upscale, not with this node.

CategorySKB/display

Inputs (16)

NameTypeDefaultDescription
imageIMAGE
tile_sizeINT51264–2048
overlapINT640–256
pattern_typeCOMBOsimple3 options: simple, mirror, rotate
interpolationCOMBObilinear3 options: nearest, bilinear, bicubic
repeat_countINT11–10
texture_directionCOMBOhorizontal3 options: horizontal, vertical, diagonal
detail_levelFLOAT1.00.1–2
edge_paddingINT00–128
edge_blurFLOAT00–100
edge_fadeFLOAT00–100
color_correctionBOOLEANfalse
color_correction_strengthFLOAT0.50–1
color_correction_clip_limitFLOAT0.030.01–0.1
light_equalizationFLOAT00–100
gradient_removalFLOAT00–100

Outputs (1)

NameTypeDescription
IMAGEIMAGE