A modern image search engine that uses CLIP (Contrastive Language-Image Pre-Training) for semantic search and Qdrant for vector similarity search. This system allows you to search images using either text descriptions or similar images.
- 🖼️ Auto-Indexing: Automatically indexes images from the selected folders
- 🔍 Text Search: Find images using natural language descriptions
- 📸 Image Search: Find similar images by uploading a reference image
- ⚡ Real-time Updates: Monitors the all folders for new images and indexes them automatically
- 🎯 High Accuracy: Uses OpenAI's CLIP model for high-quality image-text matching
- 📊 Similarity Scores: Shows match percentage for each result
- Python 3.8+
- CUDA-compatible GPU (optional, but recommended for better performance)
- Clone the repository:
git clone https://github.com/itsfuad/SnapSeek
cd SnapSeek
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Start the backend server:
python main.py
- Open your browser and navigate to:
http://localhost:8000
- Add your photo folders and start searching!
- Install test dependencies:
pip install -r requirements-test.txt
- Run the tests:
pytest tests/ -v
The project includes GitHub Actions workflows for automated testing:
- Tests run on every push to main branch
- Tests run on every pull request to main branch
- Uses Python 3.11 on Ubuntu latest
- Installs dependencies from both
requirements.txt
andrequirements-test.txt
Project
├── main.py # FastAPI application entry point
├── requirements.txt # Main dependencies
├── requirements-test.txt # Test dependencies
├── templates/ # Frontend templates
├── static/ # Static assets
├── tests/ # Test files
└── .github/
└── workflows/ # GitHub Actions workflows
-
Poor Search Results:
- Try more specific search queries
- Add more diverse images to the dataset
- Use image search for more precise matching
-
Performance Issues:
- Consider using GPU acceleration
- Reduce the number of indexed images
- Adjust the similarity threshold
This project is licensed under the Mozilla Public License 2.0 - see the LICENSE file for details.
- CLIP model by OpenAI
- Qdrant vector database
- FastAPI framework