WAVESPEED AI · Seamless Texture Maker Done in your browser. Your textures are not uploaded.
100% FREE

Seamless Texture MakerTileable textures and PBR maps.

Turn a photo or an AI texture into a tile with no visible seams, then make height, normal, roughness and ambient occlusion maps from it.
Check the seams in a live 2×2 to 4×4 preview and on a 3D sphere, and download every map as PNG or one ZIP.

Seamless tilesNormal, height, roughness, AODone in your browser
No sign-up No upload No watermark

Make any texture tile seamlessly

Upload, paste or drop a photo or an AI texture. Get a seamless tile plus height, normal, roughness and ambient occlusion maps.

JPG, PNG, WebP or AVIF, up to 50 MB. Top-down photos with even light work best.
Or try an example
No texture yet?Describe a material and generate a flat, top-down texture with the AI Image Generator, then bring it back here.Generate a texture
Every map is made on your device. Nothing is uploaded.More game tools: AI Game Asset GallerySprite Sheet MakerPixel Art Converter
EXAMPLES

Try six example textures.

Each one opens in the maker above with its full PBR set. Your own photos work the same way.

THREE SIMPLE STEPS

How do I make a seamless texture?

01

Add a texture

Upload, paste or drop a top-down photo, or start from one of the examples. No texture yet? Generate one with the AI Image Generator.

02

Make it tile

Pick smart seam, cross-fade or mirror, set the blend width and size, and check the joins in the 2×2 to 4×4 preview.

03

Tune and download maps

Adjust height, normal, roughness and AO, look at the material in 3D, then save each PNG or all maps in one ZIP.

What maps do I get?

A full set for a physically based (PBR) material, all the same size and all seamless, so they line up in any engine.

Base color (albedo)
The seamless colour texture itself. Use the even-lighting slider to flatten a vignette or a bright corner first.
Height
Greyscale, white is high. Made from brightness with contrast and smoothing controls; use it for displacement or parallax.
Normal
Surface direction for lighting detail, with an OpenGL or DirectX green channel and a strength control.
Roughness
White is matte, black is glossy. A base value plus variation from the texture's light and dark areas.
Ambient occlusion
Soft shadow in gaps and dents, from the height map at two scales.
TIPS

How to get a texture that tiles well

Shoot straight down

Hold the camera parallel to the surface. Perspective makes the far edge smaller than the near one, and no seam method can hide that.

Use soft, even light

Overcast daylight or shade is best. Hard shadows and bright spots repeat across every tile and give false bumps in the height map.

Pick the right method

Smart seam for stones, bricks and planks; cross-fade for soft patterns; mirror for noise-like surfaces such as sand, grass or concrete.

Watch for repeats

Look at the 4×4 preview from a distance. A single standout stain or knot shows as a pattern; choose another crop or source.

Keep the scale real

Know roughly how big one tile is (say 1 m of floor) and set the UV scale in your engine to match, so bricks and grass look the right size.

Check the height direction

If gaps look raised in 3D, tick Invert on the height map. Bright mortar and pale cracks often need it.

Normal maps in Unity, Unreal, Godot and Blender

Engines read the normal map's green channel in one of two ways. Pick the matching option before you download; every other map is the same everywhere.

Unity
OpenGL (Y+). Import the normal PNG with Texture Type set to Normal map. Its Lit shader expects smoothness, the opposite of roughness, so invert the roughness PNG (a One Minus node in Shader Graph does it).
Unreal Engine
DirectX (Y−). The normal texture gets the Normalmap compression setting on import; height, roughness and AO should have sRGB turned off.
Godot
OpenGL (Y+). Use the maps in a StandardMaterial3D: Albedo, Normal Map, Roughness, Ambient Occlusion and Height (for parallax).
Blender
OpenGL (Y+). Load the normal map through a Normal Map node with the image set to Non-Color; do the same for roughness, height and AO.

Building a game? More free tools

Make the rest of your art with tools that also run in your browser.

WaveSpeed AI

Need a texture to start from?

Describe a material and get a flat, top-down texture from WaveSpeed AI, then make it seamless here.

  • 1,000+ AI models
  • Image, video and 3D
  • Pay as you go

$1 in free credits for eligible new accounts. No card needed. Generators have separate account and credit requirements. The Seamless Texture Maker is free.

Seamless Texture Maker · FAQ

How do I make a texture seamless?

Add a top-down photo, keep the smart seam method and check the 3×3 preview. The tool shifts the picture by half a tile and joins the halves along the path where they already match best, so the edges continue into each other.

What is the difference between smart seam, cross-fade and mirror?

Smart seam cuts along the best-matching path and keeps details sharp. Cross-fade blends the borders smoothly but can double busy detail. Mirror reflects the picture into a 2×2 block: always seamless, but the symmetry is visible.

Can I make a normal map from a photo?

Yes. The normal map is computed from the height map, which comes from the texture's brightness. Adjust strength and smoothing until the 3D preview looks right.

OpenGL or DirectX normal map: which one do I need?

Blender, Godot, Unity and three.js use OpenGL (Y+); Unreal Engine uses DirectX (Y−). If bumps look dented in your engine, switch the option and download again.

Which output size should I pick?

1024 px is a good default for games. Use 2048 for close-up surfaces and 512 for mobile or small props. Square power-of-two sizes work with mipmaps in every engine.

Are my textures uploaded?

No. All processing runs on your device in a background thread of the browser. Nothing is sent to a server, and the downloads have no watermark.

Can I use the maps in commercial games?

Yes, the maps you make here are yours to use. Make sure you have the rights to the photo you start from.

Why does the height map look inverted?

Height is read from brightness, so pale gaps such as mortar read as high. Tick Invert in the height settings and the normal and AO maps follow.

All Free Tools

Make your next texture tile

Seamless tiles and a full PBR set, free in your browser.

Make a seamless texture