FixPhotoQuality

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
Set the mode

JPEG, PNG, WebP, or AVIF. No account for the first three repairs.

Left: the lamp broken into blocks. Right: the clear photo.

JPEG artifacts

Mode

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

  1. 01

    Stop re-saving

    Bring the earliest JPEG. A second export at a low quality adds a generation.

  2. 02

    Denoise the grid, then look

    Sky and a high-contrast edge. If the squares smeared, keep the original.

  3. 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

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.