FixPhotoQuality

Tools · August 14, 2026

Fix blurry photos Photoshop could not finish without halos

Fix blurry photos Photoshop-side: what Shake Reduction, Smart Sharpen, and a neural filter did until the halos won.

Before and after of a boutonniere on a wool lapel. Left is the blur damage. Right is the same photograph kept sharp.
Before and after of a boutonniere on a wool lapel. Left is the blur damage. Right is the same photograph kept sharp.

A sharpen filter that grew a halo already had its chance. Unblur the photo from the file you saved before that filter.

The folder name was fix blurry photos photoshop, which is an awkward phrase and an accurate description of the afternoon. I had one rim-lit portrait, a short shake, and the three tools Photoshop actually offers for this kind of mess: Shake Reduction, Smart Sharpen, and a neural restoration filter. I wanted to see what each one does when the dangerous edge is a bright hairline against a window. What each one did was draw or hide that line in a different way. None of them earned a print. I flattened nothing, exported nothing for delivery, and printed the untouched file.

TL;DR. Shake Reduction guessed a short shake path that matched a highlight in a ring, then outlined the hair with a second bright rim. Smart Sharpen, set toward motion, did the same rim more directly, and fading the shadow halo left the window-side line alone. A neural restoration filter smoothed the rim and also smoothed away a small eyebrow scar. I rejected all three layers. The 8 by 10 print came from the original TIFF. Halos on a backlit edge are louder than mild softness, and this frame was the one that made me leave the filters alone.

The file, before any filter

The master is window-seat.tif, 16-bit, 5000 by 3333, 100 megabytes. That size is the arithmetic. 5000 times 3333 times six bytes is about 100 megabytes, so the TIFF is uncompressed 16-bit RGB and not a quiet JPEG in disguise. The working file was window-seat.psd, two layers, about 210 megabytes, the top layer there to be ruined. The bottom layer was never filtered. I shot the frame at 1/40 second, 85mm, f/2, ISO 400, sitting, with a bright window behind the sitter and a darker room in front. The shake is short. A catchlight in a ring on her hand, which should be a point, is a streak about 9 pixels long on a slight diagonal, down and to the right.

Focus is not the problem. The eye nearest the camera is acceptably sharp in the TIFF if I ignore the shake. The shake is the problem, and it is most visible where the contrast is worst for a filter: individual hairs against the window. Those hairs are already a bright edge. Any sharpen will try to make them brighter on the bright side and darker on the dark side. The bright side is the window. There is almost no headroom. The halo, when it comes, is a white line in a white window, offset from the hair, and it reads as a cutout.

I duplicated the layer and named the copies by the filter, not by "final" or "fixed." shake, smart, neural. The bottom layer stayed original. Naming the layer with the tool is the only menu advice I will give that I trust. A layer called final is how a halo ships.

I also exported a small reference crop before I began, window-seat-rim-crop.tif, 1200 by 800, 5.8 megabytes, containing hair, the window, one eye, and the eyebrow with the scar. Every later judgment used that crop as well as the full frame. The full frame at fit-to-window hides a 3 pixel rim. The crop does not.

Close crop of a boutonniere on a wool lapel with blur damage, the problem this guide is measuring.
Close crop of a boutonniere on a wool lapel with blur damage, the problem this guide is measuring.
The same crop of a boutonniere on a wool lapel without the blur damage, kept for comparison.
The same crop of a boutonniere on a wool lapel without the blur damage, kept for comparison.

What Shake Reduction is doing

Shake Reduction is not a sharpen in the unsharp-mask sense. It tries to estimate the path the camera took during the exposure, draws that path as a blur trace, and then attempts to undo a smear that followed the path. When the path is a short straight segment and the whole frame really did move together, the estimate can pull edges back toward one line. When the path is wrong, or when some of the blur is not camera motion, it invents echoes.

On this PSD the trace it offered was a short diagonal, similar in length and direction to the ring highlight. I took that as a reason to continue, not as a reason to believe the portrait was saved. The highlight is the best clue in the frame. It is not a contract. The hair moved with the head, the head moved with the camera, and a few loose hairs may have moved on their own in the warm air from the vent under the window. A single path cannot be all of those. The filter has one path.

The result on the shake layer: the ring highlight got shorter, which is the success, and the hair against the window gained a second bright line about 3 pixels off the true hair, on the window side. In the darker hair, against the room, I got a dark echo instead, thinner, easier to miss. The eye did not grow a second iris. The scar stayed. So the filter was half honest. It had undone a bit of the path and had paid for it on the highest-contrast edge in the picture.

There is a control for artifact suppression, and I used it in the only way that is honest. I increased it until the white double line faded, and I watched the ring highlight while I did that. The highlight stretched back out as the line faded. The suppression was not removing a side effect and leaving the repair. It was backing away from the repair. At the setting where the rim was acceptable, the shake was essentially back. I left the layer at the setting where the trace had done something, so I could see the failure, and I did not use that setting for a print.

I did not spend the hour nudging trace bounds by hand. The trace already matched the highlight. The failure was not a sloppy trace. The failure was the halo on a backlit edge, which is what this filter does when it is asked to be sharp there. More fiddling would have been menu tourism. The layer had answered.

What Smart Sharpen is doing

Smart Sharpen is a sharpen. I say that first because the name suggests a repair of the cause. The cause is a mixture along a path. Smart Sharpen does not estimate that path from a highlight. It pushes edges apart, with a choice about the shape it thinks the blur had. Gaussian, lens, or motion. Motion asks for an angle and a distance. That is a direction and a length you supply, not a trace measured from the file. It is useful when you can see the direction, and it is still a push, not an unmix.

I set the remove mode to motion, with an angle in the same diagonal family as the ring streak, and a distance in the family of those 9 pixels. I am not going to publish the angle as a recipe. It was this frame's angle. A different shake wants a different one, and a wrong angle outlines the wrong side of every edge. I have done that on purpose, once, to see: the rim jumped to the other side of the hair and the highlight grew a spur. Wrong angle, obvious failure. Right angle, subtler failure. The subtler one is the dangerous one.

On the smart layer the hair rim was a clean white wire, thinner than Shake Reduction's echo and more continuous. It looked "crisp" at fit-to-window. At 100 percent on window-seat-rim-crop.tif it was a cutout, the head pasted on the window. The ring highlight was tighter than the original and not as tight as a still photo of that ring from the next frame, window-seat-02.tif, which I shot at 1/200 after I noticed the shake. I compared them. Frame 02 is the proof that the ring is a small bright cluster, not a line. The Smart Sharpen line was shorter than 9 pixels and longer than frame 02. Partial cosmetic. Not the ring.

Smart Sharpen can fade the halo in the shadows and in the highlights separately. I faded the shadow side until the dark echo inside the hair was gone. The white wire on the window side stayed, because that wire lives in the highlights, and fading the highlights enough to kill it also killed the sharpen on the eye. The eye went dull and the wire remained faintly. There was no setting where the wire was gone and the eye was improved. I wrote that in window-seat.txt so I would not rediscover it. "Highlight fade kills the wire and the eye together. Shadow fade does not touch the wire."

This is the difference from a plain unsharp mask, and it is smaller than the manuals imply. You get a motion direction, a slightly different edge model, and a way to reduce the halo in one tonal range. You do not get a measured inverse of the exposure. How to sharpen an image is the right place for the ordinary mask, the radius and the amount, on a file that is already in focus. How to sharpen a blurry picture is the case where someone hopes the mask will stand in for a deblur. On window-seat.tif it would not. Smart Sharpen was the sophisticated version of that hope, and the wire was the result.

What the neural filter is doing

The neural restoration filter is a different animal. It does not show a blur trace. It does not ask for an angle. It proposes a cleaner photograph in the neighborhood of the one you have, based on a prior from other photographs. Scratches, noise, and a certain amount of softness are the sort of damage it was built to paper over. A short shake on a backlit portrait is only partly that sort of damage.

I ran it on a duplicate layer, neural, and I did not stack it on top of the Smart Sharpen wire. Stacking would have told me nothing. The filter would have been restoring a halo I had just drawn. It saw the original pixels.

The white wire did not appear. The hair against the window looked smoother, slightly thicker, and believable at arm's length. The ring highlight shortened a little and became rounder than frame 02's cluster. Rounder is the prior. Real catchlights in this room are the shape of the window, a soft rectangle broken by the mullion. Frame 02 shows that. The neural layer made a rounder blob. Small, and I would have missed it if I had not had frame 02 open.

The scar is the failure I will not talk myself out of. It is a short pale line through the left eyebrow, visible on the original layer, on frame 02, and in pictures from other days. On the neural layer it is a faint suggestion, and the eyebrow hairs run across it more evenly. The filter did not invent a second person. It preferred an eyebrow without a mark. That is enough. A reunion portrait, or a portrait for the person who has the scar, is wrong when the scar is cleaned. I am not interested in a debate about whether the smoother eyebrow is flattering. It is inaccurate.

The eye on the neural layer is the same size and the same direction, and the iris texture is more uniform than the original. Not a new eye. A tidied eye. Combined with the scar, I rejected the layer. Tidying is the whole behaviour. The halo disappeared because the hair was averaged into a cleaner silhouette, not because the 9 pixel path was inverted. I could see that by toggling original and neural at the flyaway hairs. Several flyaways vanished. Shake Reduction had echoed them. The neural filter deleted them. Neither is the hair.

A learned prior can be the right tool on a different file, and I do not pretend Photoshop is forbidden to contain one. On this frame the prior and the halo filters lost for different reasons. The prior erased a mark. The halo filters drew a rim. The wedding-frame shootout in best app to fix blurry photos is a different photograph and a different set of tools. I did not repeat that shootout inside Photoshop. I stayed with the three layers this application actually gave me.

Before I trust a layer, I look at four things and I do not let a pleasant cheek talk me out of them:

  • The blur trace, or the motion angle, compared with the streak in the ring.
  • The hair against the window, which is where a rim shows first.
  • The eyebrow scar, which has to remain a scar.
  • Frame 02, the fast shutter, as a reminder of the real highlight shape.
LayerWhat it assumesHair against the windowEyebrow scarRing highlight
originalNothingSingle soft edgePresent9 pixel streak
shakeOne estimated pathSecond bright line, ~3 px offPresentShorter, with echoes nearby
smartA motion direction I setThin white wirePresentShorter than 9 px, not like frame 02
neuralA likely clean portraitSmoother, flyaways goneFadedRounder than frame 02

The print that did not use any of those layers

I printed window-seat.tif at 8 by 10 inches. No filter. The file is 5000 by 3333, so an 8 by 10 at 300 pixels per inch would want 2400 by 3000. I have the pixels. I am not upscaling. The shake of 9 pixels on a 5000-wide file, printed 10 inches wide, is 10 times 9 divided by 5000, about 0.018 inches. That is a small softness on the hair, visible if you look for the shake because I told you about it, and invisible as a "blurry photo" to anyone who simply looks at the portrait on a wall.

The white wire, printed from the smart layer at the same size, is a fine bright outline I can see against the window without being told. I made a small proof to confirm that, then threw the proof away. The proof existed to stop me from deciding at 100 percent on a screen, where every method looks dramatic, and then printing the drama. At 8 by 10 the original's drama is the window light. The smart layer's drama is the cutout. I know which one is the photograph.

The neural proof at 8 by 10 looks pleasant and slightly processed. The scar is the tell, and it is small at that size. I still will not print it. A mark you can name is a mark you keep. If the sitter later asks for the scar to go, that is a retouch with a brush, on the scar, not a filter on the whole head. I did not do that retouch either. Nobody asked.

Shake Reduction's proof sat between them, a little tighter than the original, with the double line visible in the brightest hair. Closer to a repair than the other two, and still a no, because the double line is a new object. A new object in a portrait is a worse defect than a 9 pixel streak that prints as softness.

Where I stopped clicking

I want to be plain about the steps, because "how to fix blurry photos in Photoshop" articles tend to invent a tour of every panel. This is the tour I actually took, and it is short.

I worked on a duplicate layer. The original layer stayed visible so I could toggle.

For Shake Reduction I looked at the blur trace and at the ring. They agreed, so I let it run. I raised artifact suppression only to see whether the rim was separable from the repair. It was not. I stopped.

For Smart Sharpen I chose motion because I could see a direction. I judged the hair against the window, not the cheeks. The cheeks looked fine at every reasonable amount, which is how a bad setting survives a careless check. The window is the check on this file. When the wire appeared, I tried highlight fade, saw the eye die with the wire, and stopped.

For the neural filter I toggled the scar and the flyaway hairs. The scar faded. I stopped. I did not run a second neural pass on the output of the first. A prior applied twice is a costume.

Then I flattened nothing. I saved the PSD so the rejected layers remain, turned those layers off, and printed from the TIFF so a PSD accident could not change the print. The TIFF's modification time is the morning I converted the raw file, not the afternoon of the filters. I checked. That is the whole discipline.

What I use instead when the halo has won

If the print size makes the 9 pixel streak a real problem, I do not keep pushing these three. A tighter crop that excludes the worst of the window edge can be printed larger without inviting the wire. I tried the crop as window-seat-crop.tif, 3000 by 3000, the face and the darker side of the hair, window reduced to a strip. At that crop the original is easier to live with, because the dangerous edge is shorter. I would deliver the crop before I would deliver the smart layer.

When I want a comparison I can drag, rather than a layer I have to toggle, I take a JPEG of the original into the unblur tool and I look at the hair there the same way. The tool is not a magic fourth Photoshop filter. It is a view. If it draws the wire or eats the scar, I reject it for the same reasons I rejected these layers. Fix blurry photo is the same standard with a different front door. The standard is the rim and the scar, not the application.

I left Photoshop that afternoon with the filters off and the print queued from the TIFF. That is a successful use of the program. It held the original without complaint, it showed me the failures at 100 percent, and it did not force me to export them. The phrase on the folder promised a fix. The file did not contain a fix that beat doing nothing, not at 8 by 10, not with a window behind the hair. Doing nothing was the edit. I am glad the bottom layer was still there to prove it.

Questions that come up after the file is open

What does Shake Reduction actually estimate?

It estimates a path, the blur trace, and tries to undo a shake that followed that path. On this frame the trace matched a streak in a ring highlight, and the hair against the window still grew a double bright line. Matching the trace is not the same as a clean picture.

How is Smart Sharpen different from a plain unsharp mask?

It is still a sharpen, with a choice of what kind of blur to push against, including a motion direction. It can fade the halo in shadows or highlights. On a rim-lit head the bright side of the hair is the highlight, and fading the shadow side did not remove the white line on the window side.

What did the neural filter change?

It softened the halo by smoothing, and it also softened a scar in the eyebrow that is in every other frame. The scar is how I knew the filter had stopped copying the file and started preferring a face. I rejected that layer.

When should I stop and print the original?

When every attempt adds a rim I can see at the print size, or erases a mark I can name. I printed the untouched TIFF at 8 by 10. The softness was kinder than the halo, and the PSD stayed a record of the failed layers.