DEV Community

Aiman Fazal
Aiman Fazal

Posted on

Photo Proof πŸ“Έ

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission πŸ’Έ

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle

PhotoProof πŸ“Έ β€” Find the Photo You Remember, Not the Filename You Forgot

What I Built

Ever tried to find a photo buried somewhere in thousands of images? You might remember what was in it, but not its filename, folder, or the date you took it.

PhotoProof solves this with AI-powered semantic photo search.

Instead of manually browsing folders or tagging every picture, you can describe what you're looking for in plain English, such as:

  • "A dog running on the beach at sunset"
  • "A mountain landscape covered in snow"
  • "Photos similar to this one"

PhotoProof uses OpenCLIP to understand the visual content of images and text, turning photos into numerical embeddings that can be searched by meaning rather than filename alone.

What it can do

  • Natural-language search: Find photos by describing their content.
  • Search by image: Upload an image to find visually relevant photos in your library.
  • Similar-photo discovery: Find images that look similar to an existing indexed photo.
  • Incremental indexing: Skip unchanged photos instead of processing everything again.
  • Search filters and CSV export: Refine results and export them for further use.
  • Local AI inference: Generate image and text embeddings on your own machine, without paying a hosted model API for every query.

Who would pay for it?

PhotoProof could be useful for photographers, content creators, designers, researchers, and small businesses managing large image collections. It could eventually become a paid desktop tool or a specialized photo-management product.

The problem is simple: as photo libraries grow, finding the right image becomes increasingly difficult. PhotoProof makes those collections searchable by what the images actually contain.

Demo

GitHub repository: https://github.com/aimanfazal/photo-proof

Local demo: Run the application locally to explore the interface and search your own photo library.

git clone https://github.com/aimanfazal/photo-proof.git
cd photo-proof
make install
Enter fullscreen mode Exit fullscreen mode

Configure your PostgreSQL connection in .env using .env.example as a guide, then start the application:

make run
Enter fullscreen mode Exit fullscreen mode

The Streamlit interface opens at http://localhost:8501.

Video demo: https://youtu.be/pGL2lLp37FY

The project currently documents a local application workflow. A publicly deployed demo or recorded video can be added here when available.

Code

Explore the complete project on GitHub:

aimanfazal/photo-proof

The repository includes the AI embedding pipeline, image indexing, semantic search, vector storage, Streamlit interface, and automated tests.

Key implementation files:

How I Built It

PhotoProof is built around OpenCLIP, an open-source implementation of contrastive image–text learning, rather than a proprietary vision API.

The core stack includes:

  • Python for application logic.
  • OpenCLIP (ViT-B-32) for image and text embeddings.
  • PyTorch for model inference.
  • PostgreSQL + pgvector for storing and searching vector embeddings.
  • Streamlit for the browser-based interface.
  • Pillow and NumPy for image processing and numerical operations.

How the AI search works

  1. Index the library: PhotoProof scans a folder of images and identifies supported files.
  2. Understand each image: OpenCLIP converts each image into a 512-dimensional, L2-normalized embedding.
  3. Store the representation: The embeddings and associated metadata are persisted in PostgreSQL using pgvector.
  4. Understand the query: A natural-language description is encoded into the same vector space. An uploaded or indexed image can also serve as a visual query.
  5. Retrieve relevant results: Vector similarity ranks the photos, and Streamlit displays them in a gallery.

The important idea is that the system compares semantic representations rather than relying only on filenames or manually assigned tags.

PhotoProof also supports incremental indexing, automatic cleanup of missing file paths during queries, similarity filtering, and CSV export.

Why Does Open Innovation Matter?

I wanted to build a useful AI application without making a proprietary API the foundation of the entire experience.

Open-source AI makes that possible.

With OpenCLIP and PyTorch, developers can inspect the implementation, experiment with models, run inference locally, and adapt the system to their own workflows. There is no need to send every search query to a closed vision API or pay a per-request model fee.

Open innovation also makes the architecture more flexible. Developers can explore alternative embedding models, experiment with retrieval quality, improve indexing performance, and build integrations around an understandable system.

Privacy is another important consideration. PhotoProof generates embeddings on the user's machine, and original photos remain in their local folders. Only embeddings and metadata are sent to the configured database.

This architecture offers a practical balance between AI capabilities, user control, and cost. The database can still be a managed service, but image inference does not depend on a hosted model API.

For me, open innovation means being able to build with AI while retaining the freedom to understand, modify, and improve the technology.

My Agent Session

[Add your saved DevRelay session link here, if available.]

If you used an AI coding agent to build the project, include a shareable session that demonstrates how it contributed to implementation, debugging, testing, or design decisions.

Prize Categories

  • Tiger Data β€” PhotoProof uses Tiger Data's PostgreSQL infrastructure with pgvector to persist image embeddings and power semantic vector search.

Closing Thoughts

PhotoProof explores a practical use of open-source AI: making personal and professional photo libraries searchable by meaning.

No manual tagging marathon. No need to remember cryptic filenames. Just describe the moment you're looking for.

The project is an experiment in making powerful AI retrieval more accessible, local, and adaptable. I'd love to see how the community builds on this idea, improves search quality, and finds new applications for semantic image search.

Find the moment, not the filename. πŸ”Ž

Hacktoberfest #OpenSourceAI #Python #OpenCLIP #ComputerVision #MachineLearning

Top comments (0)