Post

Building OmniCard: An AI-Powered Media Manager That Respects Your Privacy

Building a local-first AI media manager with semantic search, duplicate detection, and NVIDIA vision models.

Building OmniCard: An AI-Powered Media Manager That Respects Your Privacy

Building OmniCard: An AI-Powered Media Manager That Respects Your Privacy

Stop searching for IMG_4832.jpg. Start searching for “drone over mountains.”

Introduction

Every developer has that one folder.

It starts with a few photos from a vacation, a handful of screenshots, maybe some videos from a drone or a phone.

A few years later, it’s thousands of files spread across multiple drives, backups, and folders with names like New Folder (2).

Finding a specific photo becomes harder than taking it.

Cloud photo services solve some of the problem, but they come with trade-offs. Your media is uploaded, your privacy depends on someone else’s infrastructure, and you’re locked into another ecosystem.

I wanted something different.

So I built OmniCard.

A local-first AI media manager that understands your photos, detects duplicates, and lets you search using natural language while keeping your media on your own machine.


Why I Built OmniCard

My photo library had become impossible to manage.

Thousands of photos.

Hundreds of duplicate images.

Folders scattered across multiple drives.

Searching by filename was frustrating because filenames don’t describe what’s actually inside an image.

I wanted a tool that could understand images instead of just storing them.

That became OmniCard.


Features

OmniCard automatically:

  • Generates AI captions
  • Creates smart tags
  • Detects objects and scenes
  • Extracts dominant colors
  • Builds semantic embeddings
  • Detects duplicate images
  • Creates thumbnails
  • Organizes favorites, trash, and recent files

Instead of searching for a filename, you can simply type:

  • “Drone over mountains”
  • “Golden retriever on the beach”
  • “Orange sunset”

and instantly find matching images.


Tech Stack

Backend

  • Python
  • FastAPI

Database

  • SQLite
  • LanceDB

Computer Vision

  • OpenCV

AI

  • NVIDIA NIM Vision Models

Desktop

  • pywebview
  • PyInstaller

How It Works

When you add a folder, OmniCard scans every supported image.

For each image it:

  1. Generates a thumbnail.
  2. Creates an AI caption.
  3. Detects objects.
  4. Extracts dominant colors.
  5. Generates vector embeddings.
  6. Stores metadata.
  7. Computes perceptual hashes for duplicate detection.

Once indexing is complete, searches become almost instant.


Privacy First

Privacy was one of the main goals of this project.

All media files remain on your own machine.

Application data is stored locally, including:

  • SQLite database
  • LanceDB vector index
  • Thumbnail cache
  • Trash folder

The application never uploads your photo library.


Building the Desktop App

I wanted OmniCard to feel like a native desktop application instead of another web app.

The backend is written in Python using FastAPI, while the interface runs inside a native window powered by pywebview.

For distribution, the application is packaged into a standalone executable using PyInstaller, allowing users to install and run OmniCard without setting up a Python environment.


Deployment

The project also includes a landing page hosted with GitHub Pages.

Every push to the repository automatically redeploys the website using GitHub Actions, making publishing updates as simple as pushing a commit.

Landing Page

https://sreegeethes.github.io/Omnicard/

GitHub Repository

https://github.com/SREEGEETHES/Omnicard

Latest Release

https://github.com/SREEGEETHES/Omnicard/releases/tag/v1.0.0


Challenges

Some of the biggest challenges were not related to AI itself.

They included:

  • Processing thousands of images efficiently
  • Keeping the application responsive during indexing
  • Managing vector search locally
  • Packaging a desktop application for Windows
  • Detecting duplicate images accurately using perceptual hashing

Each challenge taught me something new about building production-ready desktop software.


What I Learned

Building OmniCard gave me hands-on experience with:

  • Local-first software architecture
  • Computer vision
  • AI vision models
  • Semantic search
  • Vector databases
  • Desktop application development
  • GitHub Actions
  • Performance optimization
  • Python application packaging

What’s Next?

The roadmap currently includes:

  • OCR search
  • Face clustering
  • Video scene search
  • Similar image recommendations
  • Conversational AI over your media library
  • Better metadata editing
  • Batch organization tools

Final Thoughts

OmniCard started as a solution to my own problem, but it quickly became one of the most enjoyable projects I’ve built.

If you’ve ever spent more time looking for a photo than actually taking it, you’ll understand why I wanted to build this.

I’m excited to continue improving OmniCard and would love to hear your feedback, feature ideas, or suggestions.

Thanks for reading!

This post is licensed under CC BY 4.0 by the author.