A fun project that matches your face and pose to popular memes using AI. Quickly find the meme that best represents your expression and share it with friends.
- Snap or upload a photo.
- Compute a compact visual fingerprint using multiple signals:
- 🏃 Pose (40%): your body posture and position
- ✋ Hand gestures (25%): thumbs up, peace sign, facepalm, etc.
- 🖼️ Scene & vibe (20%): background/composition (faces mostly masked)
- 🙂 Emotion (10%): facial expression
- 📦 Objects (5%): props and items in frame
- Searches a FAISS index of meme embeddings and return the closest matches.
- Privacy: your photo is processed for matching and not stored.
Pre-process ~300 meme templates: extract CLIP, pose, hands, emotion, and object features. Concatenate into a 1223D vector per meme and build a FAISS index for fast similarity search.
When you upload a photo, we extract the same features, encode into a 1223D vector, and search the FAISS index using cosine similarity. The top matches are returned with scores.
-
Navigate to the backend directory
cd backend -
Create a virtual environment (if it doesn’t already exist)
python -m venv .venv
-
Activate the virtual environment
source .venv/bin/activate -
Install dependencies
pip install -r requirements.txt
-
Run the embedding generation script
python scripts/generate_embeddings.py
- Change to the backend directory and activate the virtual environment:
cd backend source .venv/bin/activate
- Run the FastAPI app with Uvicorn:
uvicorn app:app --reload --host 127.0.0.1 --port 8000
- Change to the frontend directory:
cd frontend - Install dependencies if you haven't already:
npm install
- Start the development server:
npm run dev
The frontend will be accessible at http://localhost:5173 by default.


