Flux2Klein Seamless Tile (CRT)
Make Flux 2 Klein output tileable, seams and all
- model
- vae
- model
- vae
If you've ever generated a texture and tried to tile it - only to see a hard seam where the edges meet - you know the fix is usually a post-process blur that also blurs your detail. Flux2KleinSeamlessTile does it the right way: it patches the model itself so the generation comes out tileable, no after-the-fact cleanup. It's a Flux 2 Klein-specific tiling node, and for pattern, texture, and wrap work it's the difference between "good enough" and "actually seamless."
The mechanism
Two things happen under the hood, and both are smart:
- Circular convolution padding. The node swaps the model's
conv2dfor a circular-padding version, so when the network needs pixels beyond an edge, it wraps around to the opposite edge. The model literally thinks the image is a cylinder - that's the real seam fix, and it happens during sampling, not after. - Edge blending. A cross-fade ramps each edge into its opposite edge over
blend_widthpixels, which kills any residual boundary artifact without a destructive post-pass.
Because it works on the model, everything downstream of it - the sampler, the VAE decode - inherits the tiling. That's why it patches both: it outputs a patched model and passes the vae through so the whole chain stays consistent.
The inputs
model/vae- your Flux 2 Klein model and VAE. Outputs the patched model and the (unchanged) VAE.bypass- off by default. Flip it on to pass model/VAE straight through untouched - handy for A/B comparing tiled vs. not.tiling-both(seamless in X and Y),x_only(repeat horizontally, useful for panoramic strips), ory_only.blend_width- pixels of edge cross-fade, 0 to disable blending. Default 0 means pure circular padding; raise it only if you see a faint seam.
Where you'd reach for it
Textures, tiling wallpapers, seamless patterns, ground planes, and HDRI-adjacent work - anything where the output has to wrap. It pairs naturally with the CRT pack's Flux2Klein AutoDL stack, and if you're doing 360°/panoramic work there's also the CRTAutoDLFlux2KleinHDRILoRA in the same family for the HDRI angle.
Gotchas
- It's Klein-specific. The patch is written for the Flux 2 Klein model. Feeding it a different model may produce garbage or silently do nothing useful - don't reuse it across architectures.
blend_widthis a sledgehammer. Cross-fading edges changes the image content near the borders. Start at 0 (pure circular padding), and only add blend if you can actually see a seam.- X/Y tiling choices change the result.
x_onlyvsy_onlyisn't just a performance option - it changes what kind of texture you get. Pick based on the surface, not convenience.
Install CRT-Nodes via ComfyUI Manager (CRT-Nodes) or git clone https://github.com/plugcrypt/CRT-Nodes.git into custom_nodes, install requirements.txt, restart.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| vae | VAE | — | |
| bypass | BOOLEAN | false | — |
| tiling | COMBO | 3 options: both, x_only, y_only | |
| blend_width | INT | 00–256 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| vae | VAE | — |