Noticed: a quiet photo diary with captions from a local AI
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass What I Built Noticed is a quiet photo diary that runs entirely on your own computer. Once a day you step outside, take one photo of whatever catches your eye, and add it to the app. A local open-source vision model (Gemma 3 through Ollama) writes a one-line caption, and over time you build a gallery of small…
Noticed is a personal photo diary that runs completely on your own computer. Each day, you capture a single photo of something that catches your attention and add it to the app. A local open-source vision model, Gemma 3 through Ollama, generates a concise caption for the image. Over time, the app builds a collection of small moments rather than a continuously scrolling feed.
Demonstrated at the Hacktoberfest Open-Source AI Challenge Week 1, Noticed is a quiet photo diary that operates locally, without any external accounts or costs. The app is built around a simple rule: one photo per day. Photos and captions never leave your computer, and location data (EXIF/GPS) is excluded.
The app consists of three main components: the model (Gemma 3 4B), the backend (Python and Flask), and the frontend (plain HTML, CSS, and JavaScript). When you add a photo, Pillow straightens it, resizes it to a maximum of 2560 pixels, and saves a new JPG without metadata. The image is also reduced to a single pixel to extract its average color, which contributes to the top strip of colors in the diary.
Caption generation occurs when the cleaned photo is sent to Gemma 3 4B through Ollama, using a brief prompt for a dreamy or witty line that focuses on what is visible in the image. The model's response is trimmed, and if the model is unavailable, the entry is saved with an empty caption instead of causing an error. The diary is stored in a plain JSON file, rendered with Jinja templates, and displayed in a grid format with no backend database or framework.
The upload button appears as an empty tile at the start of the grid, which locks while the model processes the image to prevent mid-caption submissions. Each entry displays the date, caption, and accompanying color strip, providing a quick visual summary of your days.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.
