About
Why Sunday Album?
Every family has a box of albums. Pages of yellowed, glare-covered prints slowly fading behind plastic sleeves. Sunday Album was built to fix that.
The problem isn't just that old photos fade — it's that digitizing them is genuinely hard. A phone camera pointed at an album page produces one photo: a wide shot of 3 or 4 smaller photos, all behind plastic that throws glare everywhere, with yellowed colors and slightly crooked compositions.
Existing tools solve part of it. Google PhotoScan reduces glare by combining multiple shots. Mobile scanning apps straighten documents. AI upscalers sharpen individual photos. But nobody built the full pipeline — take one photo of the album page, get clean individual digital photos out the other end.
Sunday Album does exactly that. Page detection, perspective correction, multi-photo splitting, AI glare removal via OpenAI diffusion inpainting, color restoration, and auto-orientation — all in sequence, all automated. The same pipeline runs locally on the Mac app and in the cloud on the web app.
It's not a subscription service. The Mac app is free and runs offline. The web app has a free tier and supports BYOK (bring your own API keys) for unlimited usage.
The processing pipeline
- 1Load — Decode HEIC, JPEG, PNG, or DNG — apply EXIF orientation
- 2Normalize — Resize to working resolution; generate thumbnail
- 3Page detect — GrabCut segmentation finds the album page boundary
- 4Perspective — Homographic warp to fronto-parallel view
- 5Photo detect — Contour detection finds individual photo boundaries
- 6Photo split — Extract each photo as its own crop
- 7AI orient — Claude Haiku detects rotation and gets a scene description
- 8Glare remove — OpenAI diffusion inpainting removes glare; OpenCV fallback available
- 9Color restore — White-balance → deyellow → adaptive brightness lift → sharpen
Open, inspectable stack
The processing engine is Python — OpenCV for computer vision, Pillow for image I/O, NumPy for array operations. The web app is Next.js on AWS (App Runner + Step Functions + Lambda). The Mac app is SwiftUI wrapping the same Python CLI.
AI steps use Claude Haiku (Anthropic) for orientation and GPT-image-1.5 (OpenAI) for glare removal. Both steps degrade gracefully when keys are absent — pass-through for orientation, OpenCV fallback for glare.
Questions or feedback?
Sunday Album is a small project. Feedback on what works and what doesn't is genuinely helpful.