Texture Tile Preview
See the seams before they embarrass you — a tiling preview node
- image
- image
- mask
- tile_preview_info
There's a very specific feeling of dread when you tile a texture in-engine and discover the seam you never saw in the flat preview. Texture Tile Preview exists to kill that moment: it tiles your image into a grid of repeats and draws the seam lines on top, so you can actually see where the tiles will meet - and where they'll betray you - before you commit. It's a preview node, not a fixer; pair it with the pack's Offset and Seamless nodes to close the loop.
How it works
The mechanism is refreshingly simple: tiles_x and tiles_y control how many repeats you get (default 3×3, the classic "three copies is enough to see the pattern" diagnostic), and the node tiles your source image with np.tile. Then, if show_seams is on, it draws the tile boundaries as a grid overlay - bright orange seams at seam_opacity, feathered by seam_softness. The result is a single image you can feed straight into a preview node or save.
The reason 3×3 matters: with a single tile you can't tell a repeating pattern from a unique image. With nine copies, your eye locks onto the repetition, and any place where the pattern doesn't continue across the boundary glows like a neon sign. That's the entire value of the node, and it's a big one.
The inputs that matter
Inputs: an image plus one settings_json text box (pack convention - JSON, not sliders). The knobs:
tiles_x/tiles_y- repeat count (3/3 default; 1×1 = just the source)show_seams- toggle the seam overlayseam_width/seam_opacity/seam_softness- how visible the boundary markers are
Outputs: image (the tiled preview, overlay included), mask (the seam grid as a mask), and tile_preview_info with resolved settings.
Installing it
Ships in MKRShift Nodes from criskb. ComfyUI Manager → "MKRShift Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes
Restart ComfyUI; it's under MKRShift Nodes → Surface → Texture. No models or extra deps.
Common gotchas
The pack is new with no community lore yet - the code is your best reference. Standard MKRShift traps: broken settings_json silently falls back to defaults, out-of-range values clamp. Two workflow notes from how it's built: the seam overlay is drawn at full seam_opacity regardless of the underlying image, so if you want a clean look at just the tiling (no markers), set show_seams to false - but then you lose the "where is the seam" guidance, so the defaults are a fair trade. And remember this is a diagnostic: if the preview shows a seam, the fix belongs in the texture (try the Seamless node, or regenerate tileable), not in here.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| settings_json | STRING | {"tiles_x":3,"tiles_y":3,"show_seams":true,"seam_width":2.0,"seam_opacity":0.65,"seam_softness":1.0} | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |
| tile_preview_info | STRING | — |