This version avoids thumbnail collision and handles special characters.
I would not rick roll you with an image of a rick roll. Ergo, this is called a reverse rick roll, or in some quarters a double secret rick roll.
- app.py – Flask app with:
- ✅ InsightFace + CLIP
- ✅ FAISS search
- ✅ Binary voting for face matches
- ✅ 1–6 scale voting for cluster quality
- face-indexer.py – Embeds faces and scenes, generates thumbnails, builds index
- clustering.py – Combines vectors, clusters using DBSCAN based on data scale
- retrain.py – Placeholder for retraining logic
- cronjob.txt – Example for scheduled retraining
- templates/ – Basic HTML for search, results, cluster feedback
- static/ – Logo and stylesheet
- README.md – Basic setup instructions
retry-errors.pywill scan the error log and add previously errored files to an existing face-search pkl file. Clustering will need to be redone entirely if the clusters have already been generated.- Love
- Unix/OSX:
pip freeze | cut -d '=' -f 1 > requirements.txt - Windows Powershell
pip freeze | ForEach-Object { ($_ -split '==')[0] } > requirements.txt - Full toxic pythonity:
python -m pip list --format=freeze | cut -d '=' -f 1 > requirements.txt
