Nodes/ComfyUI-Apt_Preset/texture_Offset
ComfyUI Node

texture_Offset

Roll a texture around to check its seams — 50% by default

By cardenluo·Created 2 years ago·Updated about 14 hours ago· 324
texture_Offset
  • pixels
  • IMAGE
x_percent50
y_percent50

The classic way to test whether a texture actually tiles: offset it by half and look. If you can spot the seam, it isn't seamless. texture_Offset is exactly that operation - it rolls an image's pixels around by a percentage, with the wrap-around behavior that keeps the rolled result the same size. One input image, one shifted output, nothing fancy. But it's a workhorse in the texture pipeline, and here's why it earns a permanent spot.

It's one of the small nodes in ComfyUI-Apt_Preset's texture group, sitting alongside texture_create, texture_Ksampler, and texture_render. It looks trivial - and mechanically it is - but every texture baker needs it.

How it works

Under the hood it's a torch.roll along the height and width axes. x_percent shifts horizontally, y_percent vertically, each as a percentage of the image size. Default is 50 / 50: the image shifts half its width and half its height. Because it's a roll (not a crop), the pixels that fall off one edge reappear on the opposite edge - which is precisely why this is the seam test:

  • Shift 50% and inspect the middle of the output. If a visible seam runs through it, your texture doesn't tile.
  • Shift 50% and see nothing? Congratulations, your texture is seamless (or your texture_Ksampler circular-padding hack worked).
  • Run it through texture_create after an offset to bake from a different tiling phase.

It's also just a handy image-shift effect when you need a wrap-around pan without losing resolution.

Inputs and outputs

  • pixels - any IMAGE (batch-friendly; each frame in the batch is rolled independently).
  • x_percent - 0–100 horizontal roll (default 50).
  • y_percent - 0–100 vertical roll (default 50).
  • Output: IMAGE - the rolled result, same dimensions.

Installing it

Part of ComfyUI-Apt_Preset. ComfyUI Manager → search ComfyUI-Apt_Preset, or:

cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset

Restart; install.bat on Windows for the pack's requirements. No models, no GPU pressure - this node is pure tensor math.

Common issues

Honestly, not much to break. The one thing people expect and don't get: it does not resize or pad, so if your source isn't tileable in the first place, rolling it won't make it so - you've just moved the seam. Use it as the test, and pair it with texture_Ksampler (or a seamless bake) for the fix. Also, since it's percentage-based rather than pixel-based, 50% of a 256px texture is a different pixel shift than 50% of a 1024px one - that's usually fine for a seam check, but if you need exact pixel offsets, this isn't that node. Keep it simple and it'll never bite you.

CategoryApt_Preset/imgEffect/texture

Inputs (3)

NameTypeDefaultDescription
pixelsIMAGE
x_percentFLOAT500–100
y_percentFLOAT500–100

Outputs (1)

NameTypeDescription
IMAGEIMAGE