Image Tile Offset (mtb)
The Photoshop offset trick for checking seamless textures
- image
- IMAGE
Old-school texture artists will recognize this instantly. Image Tile Offset is the ComfyUI version of the classic Photoshop Offset filter - the one where you shift the image by half so the former edges meet in the middle, and suddenly any seam in your "seamless" texture is staring right at you. It's a diagnostic, plain and simple, and a genuinely handy one if you make tiling textures.
The problem it solves: when you generate a texture that's supposed to tile, the seams hide at the edges where you can't see them. Line the tiles up in a grid and then you'd notice, but that's fiddly. Offsetting wraps the edges into the center of a single image, so one glance tells you whether the texture actually loops or has an ugly line down the join.
How it works
It wraps the image around itself. Push everything over by a fraction of the width and height, and the pixels that fall off one side reappear on the other. The seams that lived at the borders are now in plain view in the middle. tilesX and tilesY control how the wrapping is divided - the default of 2 gives you the standard "shift by half" offset that puts all four former edges through the center.
The inputs and outputs that matter
image(IMAGE) - the texture you're checking.tilesX(INT, default 2, min 1) - horizontal division of the offset.tilesY(INT, default 2, min 1) - vertical division.
Output is a single IMAGE - the offset version. Wire it to a Preview and look at the middle for seams.
How to install it
Via ComfyUI Manager: search MTB Nodes, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/melMass/comfy_mtb
then restart. Pure Python, nothing to download.
Common issues & troubleshooting
It didn't fix my seam. It's not meant to - this node only reveals seams, it doesn't remove them. To actually make a texture tile, generate it seamlessly (MTB's Vae Decode with seamless_model on, plus a Model Patch Seamless during sampling) or paint out the seam by hand. Tile Offset is the "is it done yet?" check, not the fix.
I see a seam even on a good texture. Make sure you're checking a texture that was generated to tile. A normal image will always show a seam when offset - that's the whole point, it's showing you the truth. Only a genuinely seamless source will look continuous through the middle.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| tilesX | INT | 2 | — |
| tilesY | INT | 2 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |