Fix JPEG Artifacts Before You Enlarge the Blocks
JPEG throws samples away in squares. Upscaling the squares without looking at them prints the damage larger and gives it a halo.
- No signup for the first three
- Deleted after 24 hours
JPEG, PNG, WebP, or AVIF. No account for the first three repairs.


Left: the lamp broken into blocks. Right: the clear photo.
JPEG artifacts
Three artifacts, three looks
Blocking is the 8×8 grid in a sky or a cheek. Ringing is a bright and dark echo along a high-contrast edge, like a roofline against blue. Mosquito noise is the shimmer around type and foliage where the compressor had no budget left. Film grain is shaped and chemical. Sensor noise is colored speckle in the shadows. If you name the JPEG ones as grain, you will denoise the wrong thing and leave the grid.
The damage stacks. Opening a low-quality JPEG, exporting it again at 60, and then asking for an upscale gives the model two generations of blocks. The second generation is harder because the edges of the first blocks have been quantized again. If you still have the camera original or the PNG, use that. If the chat copy is all you have, stop re-saving it and bring that single file.
Chroma subsampling is the color half. Reds and blues sit on a coarser grid than the brightness. A red sign can look soft when the brightness edge is sharp. Denoise will not repaint a color that was never stored. An upscale can make the brightness edge convincing and leave the color soft. That is an honest result. The slider is where you see it.
Which mode, and what it cannot undo
Hard stairs from a nearest-neighbor enlarge are the pixelation page, not this one. Speckle and mosquito noise can take denoise, one credit. A sky of blocks can take denoise too, and you should look at whether the grid became a smear. Do not sharpen first. Sharpening outlines the blocks and gives the model a counterfeit edge. Unblur is for a soft lens, not for a grid.
Nothing in this pipeline recovers the samples the quality slider deleted. If a small earring or a digit changes, keep the JPEG you uploaded. 2× after a successful denoise is reasonable when the file is also small. 4× of a badly blocked file is a larger blocked file with invented texture in the squares. Prove 2×. Guests can. The free download then caps at 3,200 px, so a result under that edge is kept whole.
Text inside a JPEG screenshot is the hostile case. The mosquito noise is around the stems, and a photo model will try to turn stems into branches. Crop the photograph out or retype the words. Read the blurry-text page before you spend a 4× credit on a UI.
Save once, deliver once, delete on our side
Save a new JPEG only when you must, and save it once, at a high quality. The result we hand back is a WebP prediction. If a marketplace demands JPEG, export that once from the WebP after you have accepted the slider. A second round trip through a tiny quality setting puts the blocks back and wastes the credit.
Commercial use is allowed on every plan when you have the rights. Free pages show ads. The preview is unmarked. Pro and Studio download the full file and can batch a set of recompressed frames after one sky has been judged. Failures return the credit. The subscription is not refunded. You can cancel anytime.
We delete the JPEG and the result after 24 hours. The camera roll is the archive. The API accepts the same JPEG and will not recover the pre-compression samples either. HEIC is not a way around the blocks. Export it properly or you will make a new small JPEG and call it the original.
A worked frame
A chat app sent a 900 px JPEG of a group. The sky is an 8×8 grid and a red shirt is softer than the brightness edge, which is chroma subsampling, not focus. Do not sharpen. Denoise once and look at whether the grid became a smear or actually quieted. Then, if the people are also too small, 2× makes 1800. 1800 is inside the 3200 px free download, so the cap does not trim this one. The shirt may stay a little soft. That is the color the compressor deleted, and no mode paints it back honestly. Colorize is not a fix for a subsampled red. If a face changes at 2×, keep the 900 px chat copy and ask someone for the camera file. A second export of our result through a quality-60 JPEG puts the blocks back and wastes the credit. Save once. We delete our copy after 24 hours anyway. The camera roll, if it still exists, was the whole solution. Ask for it before you spend the credit on the chat copy. The red shirt will not become more red because you asked twice.
Three steps on this file
01
Stop re-saving
Bring the earliest JPEG. A second export at a low quality adds a generation.
02
Denoise the grid, then look
Sky and a high-contrast edge. If the squares smeared, keep the original.
03
Enlarge only after the grid is quiet
2× is the test. Do not sharpen the blocks first.
Settings that matter here
- Ringing along a roof is JPEG, not focus.
- A red sign can stay soft. That is subsampling, not a bug.
- PNG of a screenshot beats a JPEG of a screenshot.
- The large file is a prediction. Keep the small JPEG.
Where this shows up
A chat-app recompress
The sky is tiled. Denoise or a careful 2× tells you whether the scene is still there.
A scan saved at quality 50
If the scanner can write it again, do that instead of paying us to guess.
Limits and formats
JPEG, PNG, WebP, and AVIF decode on the server. HEIC from a phone needs to be exported to JPEG first. The preview is not watermarked. Guest and Free plan downloads are capped at 3,200 px on the long edge. Pro and Studio download the full file. Nothing on this site is an ad.
Guest
- Price
- $0
- Credits
- 3 / day, no account
- Batch
- 1
- Upload
- 6 MB
- Long edge
- 2,000
- Download
- 3,200 px
Free
- Price
- $0
- Credits
- 3 repairs / day
- Batch
- 1
- Upload
- 8 MB
- Long edge
- 2,560
- Download
- 3,200 px
Pro
- Price
- $12/mo
- Credits
- 120 credits / month
- Batch
- 12
- Upload
- 20 MB
- Long edge
- 4,096
- Download
- Full size
Studio
- Price
- $29/mo
- Credits
- 500 credits / month
- Batch
- 40
- Upload
- 40 MB
- Long edge
- 8,192
- Download
- Full size
| Plan | Price | Credits | Batch | Upload | Long edge | Download |
|---|---|---|---|---|---|---|
| Guest | $0 | 3 / day, no account | 1 | 6 MB | 2,000 | 3,200 px |
| Free | $0 | 3 repairs / day | 1 | 8 MB | 2,560 | 3,200 px |
| Pro | $12/mo | 120 credits / month | 12 | 20 MB | 4,096 | Full size |
| Studio | $29/mo | 500 credits / month | 40 | 40 MB | 8,192 | Full size |
Questions worth asking first
Can I try this without an account?
Yes. Guests get 3 credits a day. 2×, denoise, and unblur cost one. Colorize costs two. 4× and face restore start on Pro. 8× is Studio.
Will you recover the original samples?
No. The quality slider deleted them. We can only make a cleaner prediction.
Is the preview watermarked?
No. Guest and Free plan downloads are capped at 3,200 px on the long edge. Pro and Studio download the full file.
What if the job fails?
The credit is returned. A failed job is not charged. A finished file you dislike does not return the credit or the subscription fee.
How long do you keep the upload?
Uploads and results are deleted 24 hours after the job is created.
Can I use the result commercially?
Yes, on every plan, including the free tool, when you have the rights to process the file.
Related tools
From the guides
Run it on the file you actually have
Three guest repairs a day, no card. If the slider invents a detail you cannot defend, do not download it. Paid plans cancel anytime and are not refunded. A failed job is not charged. The file is deleted after 24 hours.