Working With Old Funeral Home Photographs Is Messier Than You Think
I started digging through the Rea Funeral Home digital archive because I needed to verify a great-uncle's timeline for a family tree I'm building. The obituaries themselves are useful, but the real gold mine is the accompanying photographs. Most of these came from the 1940s through the early 1970s, and they are in rough shape. The Rea site has a dedicated obituary gallery section, and if you know how to pull the highest-resolution versions, you can actually recover usable faces from images that look like garbage at first glance. The basic workflow is straightforward, but the edge cases will eat your afternoon. First, grab the original scan, not the compressed web thumbnail. Rea Funeral Home's obituary pages serve a low-res version by default, usually around 600 pixels wide on the long edge. I use a browser developer tool to trace the image source URL, replace the size parameter, or just right-click and open in a new tab until I find the full-resolution file. Most of these originals sit around 2400 to 3200 pixels on the long edge. That matters a lot when you are running face detection. Once you have the full-size image, the next step is isolating the portrait. Funeral home obituary photos are usually inset into the text column or centered below the headline, and they are surrounded by borders, captions, or halftone print artifacts. I crop tight around the face area, leaving about ten percent margin for the shoulders. Then I run it through a dedicated face restoration pipeline. GFPGAN and CodeFormer are the two most reliable options right now, and both are available through a few free local installs or web interfaces. CodeFormer tends to be more aggressive with its reconstruction, which helps with heavily damaged prints. GFPGAN is slightly more conservative and sometimes looks more natural on moderately degraded photos.
Here is the part nobody warns you about. The Rea obituary photos go through two rounds of degradation: the original print age damage and then the halftone screening when the funeral home sent the image to the newspaper for the printed obituary. Those halftone dots create a moire pattern that confuses AI face restorers. If you just feed the raw cropped image into CodeFormer, you get weird smearing around the eyes and a plastic-looking jawline. I learned this the hard way on a 1958 photograph where the subject's left ear had melted into the background. My workaround involves a preprocessing step I now run before any face restoration. I convert the image to grayscale, apply a strong median filter to kill the halftone pattern, then convert back to color and run a subtle sharpening pass. This takes about two minutes per photo and completely changes the output quality. The face enhancer no longer sees those printed dots as texture, so it reconstructs skin tones instead of reproducing screen patterns. The whole pipeline from raw crop to restored face takes me roughly eight to twelve minutes per image on a decent consumer GPU. There are some important limitations you need to understand before you spend hours on this. AI face restoration is not truth reconstruction. It generates plausible facial features based on training data, and when the source is severely damaged, you are essentially getting a best-guess rendering, not a photograph. For genealogical purposes, this is fine when used carefully, but you should never present a restored face as an accurate visual record. I keep the original scan alongside every restored version and label the restored image as a reconstruction.
Another practical bottleneck: the Rea Funeral Home obituary database is not fully searchable by date range. You have to browse month by month through their online archive, which means scrolling through dozens of entries to find the person you need. I built a simple Python script that scrapes the published dates from each obituary page and exports them to a CSV file, then sorts by year. This cut my search time down from roughly forty-five minutes of manual browsing to about six minutes of targeted lookup. The script uses standard requests and BeautifulSoup and runs in under ten seconds per batch of twenty URLs. If your goal is just reading the obituary text, the website works fine as-is. But if you want to actually see the faces clearly, you need to export the images, preprocess them to remove print artifacts, and then run them through a face restoration model with conservative settings. The default strength on CodeFormer is usually around 0.7 for these kinds of historical photos. Going higher introduces more fabrication. Going lower leaves too much of the original degradation visible. I typically land between 0.6 and 0.75 depending on how badly the source photo is degraded. The results you can expect vary wildly by photo condition. A well-preserved 1965 portrait with minimal fading will come back looking almost photographic after restoration. A 1942 image with water stains, creases, and heavy halftone screening will still look obviously AI-enhanced even after careful preprocessing. Budget your time accordingly, and do not trust the first pass. Run the restoration twice with slightly different preprocessing parameters and compare the outputs before settling on a final version.
Get the Full Details
