Horror environments lean on a few surfaces: stained concrete, rusted metal, flaking plaster. With generative AI banned here, many entries will be textured from phone photos, tiled by hand. The tiling is where it usually falls apart, so here are the checks I run, in the order the problems show up.
1. Light before seams. Shoot flat-on under even light (overcast, or indoors away from a window). A photo with a brightness gradient tiles into a checkerboard of light and dark squares, and no seam fix hides that. If you already have the photo, a large-radius high-pass or "divide by a heavy blur" in GIMP or Krita flattens it.
2. The half-offset test. Shift the image by half its width and half its height with wrap-around (GIMP: Layer > Transform > Offset, "Wrap around"; Krita: toggle wrap-around mode with W). The original edges now cross in the middle, and any seam shows as a cross.
3. Tile it 3x3 and look from far away. At game distance the seam is rarely what gives it away. A single stain, bolt or crack repeating on a grid is. Paint that feature out or pick a calmer crop.
4. Judge the seam against the texture, not against zero. Rough concrete has hard edges everywhere, so a seam that is "big" in absolute terms can still disappear. What matters is how much stronger the wrap edge is than an ordinary edge inside the same texture. From my own measurements in grey levels out of 255: under about 2 above a normal edge you will not see it, over about 6 you will.
For the record, I sell a small tool that does steps 2 to 4 in one pass: you click the four corners of the wall in the photo, it removes the perspective, wraps the edges and prints that seam number. Texture Forge, 3.00 EUR, one HTML file that runs offline in a browser: https://listwright.itch.io/texture-forge
It only transforms your own photo, nothing is generated. Its code was written by a language model, which the page states. It is the wrong tool for a texture with one large unique feature (a sign, a single wide crack): those ghost and the number will not warn you. Everything above works in GIMP or Krita without it.

