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/ -vThe 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.txtandrequirements-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