AI image upscaler — free & private
Enlarge and sharpen photos, art and product shots 2×–4× with an ESRGAN AI image upscaler in your browser — no upload, no watermark, no credit limit.
This upscaler enlarges an image 2×, 3× or 4× with the slim ESRGAN models from UpscalerJS, running on TensorFlow.js inside your browser tab: WebGL puts the work on your graphics chip, with the CPU as the fallback. Your picture is never sent anywhere. What does travel is the model: the first time you use a scale, its weights (just under 1 MB, one model per scale) are fetched from the jsDelivr CDN, with unpkg as the fallback. The image is processed in 64-pixel tiles, and the result is a PNG at exactly the chosen multiple of the original size. Because the whole output has to be held in memory, the tool checks it before you start: over 12 megapixels it warns that the job will take a while, and over 40 megapixels it warns that the tab will probably run out of memory and names the largest scale that fits, or tells you to resize first. It warns rather than blocks, and when an image loads it preselects the largest scale inside that budget, or 2× if none fits.
What you can do
- Three slim ESRGAN models from UpscalerJS, one each for 2×, 3× and 4×, each just under 1 MB of weights and fetched from jsDelivr the first time that scale is used
- Runs on TensorFlow.js in the tab: WebGL on the graphics chip where the browser offers it, the CPU otherwise
- Works through the image in 64-pixel tiles and shows a live percentage, moving from “Loading the model…” to “Enlarging tile by tile…”
- Checks the output before you run: “That is a big output.” above 12 megapixels, “This will probably not finish.” above 40 megapixels, with the largest scale that fits
- Preselects the largest scale whose output stays within 40 megapixels when an image loads (2× when none does); every scale stays one click away
- “Before & after” panes side by side, with one Zoom slider from 100% to 800% for both
- Saves a PNG at the exact multiple of the original width and height, named after your file with -2x, -3x or -4x
How to use ai image upscaler
- “Drop an image to upscale” or click “Choose image”Drag in a JPG, PNG, WebP or any other image your browser can display, or click to pick one. The tool reads its size and preselects the largest scale whose output stays within 40 megapixels.
- Pick a “Scale”: 2×, 3× or 4×The output size in pixels appears beside the buttons. Past 12 megapixels a note says the job will take a while; past 40 the tool warns it will probably not finish and names a scale that fits, or tells you to resize first.
- Press “Upscale 4×” (the button follows the scale you picked)The first run at each scale fetches that scale's model, then the bar shows a percentage as the tiles are enlarged. Keep the tab open until the result appears.
- Compare in “Before & after”Drag the Zoom slider, from 100% up to 800%, to inspect the same detail in the original and the upscaled pane.
- Click “Download PNG”The result is saved as a PNG named after your file with -2x, -3x or -4x added, at exactly that multiple of the original size.
FAQ
Is my image uploaded to a server?
No. Your browser decodes the image, the model runs on it inside the tab, and the PNG is built on the page before your browser saves it. The upscaler's only third-party requests are for the model files, fetched from the jsDelivr CDN (or unpkg if that fails), and they carry nothing from your image.
Which scale should I choose, 2×, 3× or 4×?
When an image loads, the tool preselects the largest scale whose output stays within 40 megapixels, falling back to 2× if none does. A 1920×1080 screenshot, for example, can go to 4× (7680×4320, about 33 megapixels), with a note that it will take a while. The output size is shown beside the scale buttons before you run, and each scale uses its own model.
What is the largest image I can upscale?
The limit is on output pixels, because the whole result has to be held in memory. Above 40 megapixels the tool warns that the job will probably not finish, which puts the ceiling at about 10 megapixels of input at 2×, 4.4 at 3× and 2.5 at 4×. A 12-megapixel phone photo (4000×3000) is already 48 megapixels at 2×, so the tool suggests resizing it smaller first. These are warnings, not blocks: a desktop with plenty of memory may finish a larger job, and a phone may give up sooner.
Why does it say my device ran out of memory?
Every failed run shows the same message: the input size, the output in megapixels and “Try a lower scale.” Usually memory is the cause, and a lower scale or a smaller input fixes it. On the first run at a scale, a model that could not be fetched from the CDN produces the same message, so check your connection, and reload the page before trying that scale again.
Will it fix a blurry or pixelated photo?
It enlarges the image by running every tile through the neural network, but it is not a deblurring tool: the model definitions for the slim ESRGAN weights used here set both sharpening and artifact reduction to false. Motion blur, missed focus and JPEG blocks stay in the picture. Start from the cleanest, largest copy you have.
Does the upscaler keep a transparent background?
No. The model reads only the red, green and blue channels, and the PNG it returns is fully opaque, so the transparent areas of a logo or cut-out come back solid. For a flat logo, the Image to SVG tool traces it into a vector that can be scaled to any size instead.
What exactly do I get when I download?
A PNG at exactly 2, 3 or 4 times the original width and height, named after your file with -2x, -3x or -4x added. It is drawn fresh from the model's output on a canvas, so none of the original's camera metadata comes with it.