🧩 Seamless Tile Fixer
Make any image tileable in one pass — the 50% offset trick explained
- image
- 无缝贴图
- 平铺预览
Seamless textures are the backbone of a lot of generation: game assets, materials for 3D, tileable pattern fills, tiled wallpapers. And almost nothing you generate is tileable by default - the left edge and right edge of a render never line up, so the moment you repeat it, you see the seam. The classic fix is the offset trick: shift the image 50% in both directions so the old seam lands in the center, then blend across the new center seam so both edges become internally continuous.
🧩 Seamless Tile Fixer does exactly that, keeps your original dimensions, and throws in a tiled preview so you can see the seamlessness before you commit to it.
The mechanism
Under the hood it's the textbook implementation. The image is rolled by half its height and half its width (np.roll), which moves the seam to the middle of the frame. Then it cross-blends along the horizontal and vertical seam lines with a cosine-weighted falloff - right at the seam the two sides are averaged 50/50 (so the transition is perfectly continuous), and the blend weight fades to zero as you move away from it. The result: all four edges now tile seamlessly, and the only visible blending is a soft band down the center that's usually imperceptible on textured material.
The controls are honest about being simple:
方法- one option: "偏移混合法(保持尺寸)" (offset-blend method, keeps size). There's nothing to choose because there's only one method; the choice was already made for you.混合强度- 柔和/标准/强/极强 (soft/standard/strong/very strong), which sets the blend band width as a fraction of the image: 10%, 18%, 30%, 45%. Standard is a good default; strong if the seam still ghosts through.预览格数- the preview grid, from 1×1 up to 4×4. Set to 3×3 and the second output is your texture tiled 3×3 (scaled to fit 1024px), so you can judge it at a glance.
The two outputs
无缝贴图- the fixed, same-size tileable texture. This is the one you actually use.平铺预览- the N×N tiled preview image for eyeballing.
Where it fits
Wire it after any generation whose output you intend to repeat - a "marble" or "brick" or "fabric" render, then feed the seamless output to your saver. It pairs naturally with generation workflows where you generate, fix, then use the tile in a game or material tool. It also composes with this pack's Batch Image Saver if you're fixing a whole folder of textures.
Installing it
Part of the Louis Use pack:
cd ComfyUI/custom_nodes
git clone https://github.com/LouisLU1997/ComfyUI-louis-use Louis_use
Or "Louis Use" in ComfyUI Manager, then restart. Pure numpy - no models, no downloads.
The honest limit
Offset-blend is a mechanical fix, not a content-aware one. It makes edges continuous, but it can't remove a big object that happens to sit across the seam - you'll get a soft ghost of it in the blend band, and strong blending can soften texture. For simple materials (stone, fabric, noise-like patterns) it's near-perfect in one pass. For busy scenes with distinct subjects, you'll still want to generate deliberately edge-matched content or inpaint the center seam. Know which job you have and this node is genuinely great at its half.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| 方法 | COMBO | 偏移混合法(保持尺寸) | 1 options: 偏移混合法(保持尺寸) |
| 预览格数 | COMBO | 3×3 | 6 options: 1×1, 1×2, 2×1, 2×2, 3×3, 4×4 |
| 混合强度 | COMBO | 标准 | 4 options: 柔和, 标准, 强, 极强 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| 无缝贴图 | IMAGE | — |
| 平铺预览 | IMAGE | — |