Nodes/CRT-Nodes/Flux2Klein Seamless Tile (CRT)
ComfyUI Node

Flux2Klein Seamless Tile (CRT)

Make Flux 2 Klein output tileable, seams and all

By PGCRT·Created 2 years ago·Updated 2 months ago· 123
Flux2Klein Seamless Tile (CRT)
  • model
  • vae
  • model
  • vae
bypassfalse
tiling
blend_width0

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:

  1. Circular convolution padding. The node swaps the model's conv2d for 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.
  2. Edge blending. A cross-fade ramps each edge into its opposite edge over blend_width pixels, 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), or y_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_width is 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_only vs y_only isn'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.

CategoryCRT/Flux2

Inputs (5)

NameTypeDefaultDescription
modelMODEL
vaeVAE
bypassBOOLEANfalse
tilingCOMBO3 options: both, x_only, y_only
blend_widthINT00–256

Outputs (2)

NameTypeDescription
modelMODEL
vaeVAE