π± CR Seamless Checker
Tile your texture in-node and see the seams before anyone else does
- image
- show_help
If you're generating tileable textures - for a game asset, a repeating background, a fabric pattern - the only real test is seeing several copies of the image butted up against each other. A single generated tile can look perfectly fine and still have an obvious seam the moment it repeats. CR Seamless Checker does exactly that check, right inside your graph: feed it an image, and it tiles it into a grid so you can spot the seams at a glance instead of exporting and checking in an image editor.
How it works
Give it an image and pick a grid_options size - 2x2 up through 6x6 - and it repeats the image that many times across and down, rescaling the whole tiled result by rescale_factor so a 6x6 grid doesn't blow past your screen. The result renders directly in the node itself. There's no image output socket to wire anywhere - this is a preview-only node, the same pattern as CR Thumbnail Preview elsewhere in the pack: you look at it, decide if the tile works, and go back to fix the source image if it doesn't.
The inputs and outputs that matter
image- the tile you're checking. This is the whole point of the node.rescale_factor(0.1β1.0, default 0.25) - how much to shrink the tiled grid for display. Lower it if a bigger grid option is running off the edge of your screen.grid_options(2x2through6x6) - how many repeats to show. Start with2x2or3x3- that's usually enough to catch an obvious seam without cluttering the preview.
Output: just show_help, a wiki link. There's no image to chain onward from - this node is a dead end by design, meant to end the branch and just show you something.
How to install it
Comfyroll Studio (Suzie1 and RockOfFire), a mature utility pack - no models, no heavy dependencies.
- ComfyUI Manager - search "Comfyroll Studio," install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git, then restart.
Common issues & troubleshooting
You wired it into something and nothing happened downstream. Nothing's wrong - there's genuinely no output to chain from. This is a look-and-verify node, not a processing step. If you need the tiled composite as an actual image asset, this isn't the tool; you'd build that with a proper image-tiling/compositing node.
The image doesn't actually tile seamlessly even though the seams "look okay" at low rescale. Shrinking the preview hides fine detail along the seam line - bump rescale_factor up (closer to 1.0) or drop to a smaller grid so each tile renders larger, and you'll see finer mismatches that a heavily downscaled 6x6 grid smooths over.
Your source image was never generated to tile in the first place. This node only checks tiling - it doesn't create it. If your image has no seamless intent baked in (no circular/offset generation, no wraparound blending), tiling it here will always show seams because there genuinely are seams. You need a tiling-aware generation or post-process step upstream of this check.
Comfyroll nodes missing entirely. A pack-wide load failure shows as Comfyroll Studio: Failed to load Graphics nodes and a trailing NameError: name 'CR_HalftoneGrid' is not defined in your startup log - worth noting that error specifically comes from the Graphics group this node lives in. It's a symptom of an earlier import failure, usually a Pillow version conflict from another custom node. Force-reinstall Pillow (pip install --upgrade --force-reinstall pillow) and restart.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| rescale_factor | FLOAT | 0.250.1β1 | β |
| grid_options | COMBO | 5 options: 2x2, 3x3, 4x4, 5x5, 6x6 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| show_help | STRING | β |