Upscayl is a FOSS project that runs as an Electron application and utilizes a dGPU and machine learning to increase the resolution of photos, adding geometry via AI. I tried it out this weekend on a few old Facebook photos, and the results were interesting.
First, Upscayl does not run on iGPUs, so I had to cart out my old GAMING LAPTOP with an nVidia GTX970M to try it out on. I first tried to run the application on Linux as the project touts itself as Linux-first, but unfortunately - probably due to limitations in Electron - it was unable to detect the nVidia GPU, so I had to reboot into Windows.
I'm not sure if some of the results I'm seeing are down to how incredibly old my GPU is, the fact that I couldn't get the most up-to-date drivers installed (ran out of disk space on the Windows partition), or if these are representative samples of what the project will usually produce, but I thought they were interesting. I had the best luck with selecting some very old photos downloaded from my Facebook - these are both heavily-compressed by Facebook upon upload, and some of these are very old, so adding resolution had dramatic effects. I was not able to see any improvement in quality from attempting to use Upscayl on photos taken with my modern phone that were heavily zoomed-in - Upscayl does not have the ability to infer and add geometry to an already large-resolution photo, just blow up a photo to a much larger resolution and fill in the geometry.
For our first example, let's take a look at a human subject, this photo of me from high school (I've cropped another subject out of the photo after the upscaling).
And then let's quickly move on, because that's horrifying. The next thing I noticed is that Upscayl can't do much about heavily backlit and/or washed-out photos. You can particularly see some AI-y tell-tale signs when the router (? I'm not actually sure what that is) underneath the monitor on the left-hand side rapidly fades into nothingness.
Clicking into these galleries will give you an inkling of exactly how much resolution is being added to these photos, but to really appreciate it, right-click on each image, open them in a new tab, and make sure you click into the upscaled photos to view them at full-size. The above image on the left is 604x453 and the right is 2416x1812 - especially viewed zoomed-out, this extra resolution actually adds a surprising amount of clarity to the images. Speaking of the AI-y tell-tale signs, check out this photo set of Sutro Tower in San Francisco rising out of the fog.
The upscaled photo is actually a less-foggy day, with the spires extended further into the sky - slightly unrealistically, geometrically-speaking - and the sky is more uniformly blue and clear above the layer of fog rolling in off the ocean. Particularly impressive, though, is the clarity of the buildings and particularly the windows in the middle-distance, and the tree in the foreground is really great. The best example of what Upscayl can do, however, is in this photo set from a tiny 2008-era Samsung flip-phone. This is my favorite use-case of Upscayl, which is photo preservation. At 604x503, the original photo just isn't much to look at on a modern resolution screen - although I'm sure my eeePC made it look pretty good at the time. The upscaled photo definitely preserves the pretty-bad focus of the original, but is a much better capture of this memory.
Finally, let's take a look at a little bit of loss of detail. While the original photo has a lot more texture to the waves themselves, Upscayl has smoothed over the geometry, added a lot of bloom, and while it's still a nice-looking picture, it's not necessarily a faithful representation of the original photo's mood and sense of movement.
One other hitch I experienced was that batch-upscaling didn't seem to do anything - Upscayl will start "processing" and then show a progress bar, but I never got into the progress bar in batch-mode when upscaling these photos selected out of a folder. I had to process them one at a time. It's impressively fast, taking about or a little less than a minute to generate most of these photos. Since I have a bulk copy of all my Facebook photos locally, and if I can get my Windows installation a little less-broken, I might try out the next version with working drivers sometime and see if I can get a separate folder to preserve these kinds of low-resolution shots. Or at least to get a bit of a laugh at how some of the upscales turn out.