Nodes/ComfyUI-MakeSeamlessTexture/Seamless Texture Radial Mask
ComfyUI Node

Seamless Texture Radial Mask

The one you'll actually reach for — offset-and-blend that keeps the center

By SparknightLLC·Created 7 months ago·Updated 7 months ago· 26
Seamless Texture Radial Mask
  • image
  • texture
inner_radius0.85
outer_radius1.00
scatter_strength1.00
blend_curvecubic

This is the pack's flagship, and it earns it. The README is unambiguous: the radial mask mode is the one recommended for game assets, and it's an offline, open-source take on the technique behind the popular imgonline make-seamless-texture web tool. If you only remember one node from this pack, make it this one.

The idea is offset-and-blend, but done with a radial mask so the center of your image survives intact. The image is rolled by half - the continuous center content wraps to the edges, making them match - and then the original (center) is blended with the rolled copy (edges) across an elliptical zone. What you keep is the middle of your texture exactly as it was; what gets replaced is only the outer ring that would otherwise form the visible seam.

How it works

Two things set it apart from the Half Shift sibling. First, the blend zone is elliptical (a radial distance from the center) rather than a rounded square, so corner handling is more natural. Second - and this is the differentiator - scatter_strength adds wavy variation to the blend boundary using a stack of sine harmonics (angle × 5, 11, and 17, weighted 0.08/0.05/0.03). The boundary wobbles organically instead of reading as a perfect circle, which is the difference between "blended" and "there's a visible donut where I blended."

The inputs that matter

  • inner_radius (default 0.85) - where blending starts. Higher preserves more of the original center. This is the main lever for keeping your texture's core intact.
  • outer_radius (default 1.0) - where blending finishes. Values above 1 push the blend into the corners.
  • scatter_strength (default 1.0) - organic wobble on the boundary. 0 gives a smooth ellipse; 2 is heavily scattered. If you ever see a circular ring in the output, this is the knob to touch.
  • blend_curve (default cubic) - the easing across the transition. smootherstep is the gentlest.

Output is a single IMAGE (texture). The README's own recipe: generate a texture with a modern model (Flux Klein 4b or Z-Image Turbo) using a circular VAE decode from spinagon's ComfyUI-seamless-tiling, push it through the Pre-Processor to flatten lighting, then through this node, then verify with the Tiled Preview.

Installation

No models, no extra pip dependencies - pure torch:

cd ComfyUI/custom_nodes
git clone https://github.com/SparknightLLC/ComfyUI-MakeSeamlessTexture

or install "ComfyUI-MakeSeamlessTexture" via ComfyUI Manager, then restart.

Common issues

  • A visible circle or ring in the output. The blend boundary is showing. Bump scatter_strength to break up the edge, or widen the blend zone by lowering inner_radius / raising outer_radius.
  • Doubled or ghosted features. Anything strong crossing the blend ring gets softly duplicated because the shifted copy also contains it. Raise inner_radius to pull the ring closer to the edge.
  • Keep inner_radius below outer_radius. If you invert them, the blend logic degenerates and you get an almost fully rolled image - seamless, but the center preservation you wanted is gone.
  • It can't invent missing content. Like every node in this pack, it rearranges what's there. Strong gradients or a distinct subject at the edges still benefit from a Pre-Processor pass (or a better source) first.
Categoryimage/texture

Inputs (5)

NameTypeDefaultDescription
imageIMAGEImage to make seamless using the radial mask method.
inner_radiusFLOAT0.850–1.5Normalized radius where blending starts. 0 = center, 1 = edge. Higher values preserve more of the original center.
outer_radiusFLOAT1.000.1–2Normalized radius where blending ends. Values > 1 extend blending into corners.
scatter_strengthFLOAT1.000–2Amount of wavy variation in blend boundary. 0 = smooth ellipse, higher = more organic/scattered.
blend_curveCOMBOcubicBlend curve for the transition from center to edges.

Outputs (1)

NameTypeDescription
textureIMAGE