AI Texture Upscaler

A texture upscaler makes a small or blurry texture larger and sharper. Upload a PNG, JPG or WebP (or a GLB model), pick 2x or 4x, and Real-ESRGAN AI rebuilds the detail. Big textures are split into tiles with overlap, seamless textures stay tileable, and you download a PNG or the GLB with its new textures.

Loading the texture upscaler...

How to upscale a texture with AI

  1. 1

    Upload a texture or a GLB

    Drop a PNG, JPG or WebP texture, or open the 3D model tab and load a GLB to see every texture inside it.

  2. 2

    Choose 2x or 4x

    Pick the scale. Tick "Seamless" for a tiling texture so its edges still match, and "Normal map" for normal maps so the result stays a valid normal map.

  3. 3

    Check the credits and upscale

    The tool shows how many tiles your texture needs before you start: 1 credit per tile of up to 1440 px. Sign in, press Upscale and watch each tile finish.

  4. 4

    Compare and download

    Drag the before/after slider to check the result, then download the PNG, or the GLB with the upscaled textures written back in.

Upscale textures in the browser or on the desktop

Upscayl and chaiNNer are free desktop apps and a good choice if you have a supported graphics card and want offline batch work. This page needs no install or GPU and writes the upscaled maps back into your GLB.

This page (in the browser)Upscayl (desktop)chaiNNer (desktop)
Where it runsAny modern web browserDesktop app for Linux, macOS 12+ and Windows 10+Desktop app for Windows, macOS and Linux
InstallNoneInstall the appInstall the app, then its Dependency Manager
Graphics cardNot needed: the AI runs on a server GPUNeeds a Vulkan-compatible GPU (many integrated GPUs do not work)NVIDIA, AMD, Apple Silicon or Intel GPU, or a CPU-only mode
AI modelsReal-ESRGANReal-ESRGAN family (via upscayl-ncnn)Many model types (PyTorch, NCNN, ONNX, TensorRT)
How you use itUpload, pick 2x/4x, downloadPick an image, a model and a scaleBuild a node chain (it started as an AI upscaling app)
BatchAll chosen textures of one GLB at onceBatch upscalingFolder processing in a node chain
Textures inside a GLBUpscaled and written back into the GLBImage filesImage files
Cost and licence1 credit per tile, sign-in neededFree and open source (AGPL-3.0)Free and open source (GPL-3.0)

Sources (checked 18 October 2026): Upscayl · chaiNNer · Real-ESRGAN on Replicate (nightmareai/real-esrgan) · Real-ESRGAN code (BSD-3-Clause)

More texture tools

Need a new texture, not a bigger one? Paint a whole model from a prompt in the AI 3D Texturing Studio. Need a normal map from a photo? Make one with the normal map generator, then upscale it here.

Frequently Asked Questions

Yes, when you tick "Seamless". Each tile is sent with a border copied from the opposite edge of the texture, so the AI sees what really sits next to the edge. The left edge then matches the right edge and the top matches the bottom, just as in your original.
Yes. Tick "Normal map" (the 3D model tab ticks it for normal maps on its own). After the AI upscales it, every pixel is turned back into a unit-length normal, so lighting on the upscaled map stays correct.
One credit per tile. The AI takes up to 1440 px per side in one go, so a 1024 px texture is 1 tile and a 2048 px texture is 4 tiles. The tool shows the total before you start. If a tile fails or takes too long, its credits are refunded automatically.
Yes. Open the 3D model tab and load a GLB (or a .gltf with embedded textures). It lists the base colour, normal, roughness/metalness, occlusion and emissive maps; upscale the ones you want and download a new GLB with them inside. Draco or meshopt mesh compression is not kept, so the file can get bigger.
PNG, JPG and WebP textures from 16 to 4096 px per side, up to 30 MB, at 2x or 4x, with a result of up to 8192 px per side (4096 px inside a GLB). Transparency is kept: the colour is upscaled by the AI and the alpha channel is resized smoothly. Tiles are sent to our server and the Replicate AI service to be upscaled.