Face detection/recognition: - Replace YuNet + SFace with InsightFace buffalo_l (RetinaFace + ArcFace) - 512-d ArcFace embeddings (was 128-d SFace), migration 0006 resizes column - Remove YOLO person-bbox workaround — RetinaFace is accurate enough - Detection threshold 0.65 cleanly separates real faces (0.72+) from false positives on dogs/paintings (0.56-0.61) Content-type classification: - CLIP zero-shot classifier using native PyTorch text encoder + ONNX image encoder for high-quality text-image similarity - Categories: photograph, screenshot, document, receipt, meme, artwork - Writes Tag(kind=content_type) per photo via photo_tags - Margin-based confidence: top-1 vs top-2 score difference - New ClassifierSettings in config (enabled, min_confidence) - Wired into vision_fanout pipeline Tested: 6 real faces from 4 photos (zero false positives), 11/13 photos classified (8 photograph, 2 artwork, 1 meme). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
69 lines
617 B
Plaintext
69 lines
617 B
Plaintext
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
*.so
|
|
.Python
|
|
env/
|
|
venv/
|
|
ENV/
|
|
env.bak/
|
|
venv.bak/
|
|
*.egg-info/
|
|
.pytest_cache/
|
|
.coverage
|
|
htmlcov/
|
|
.mypy_cache/
|
|
.ruff_cache/
|
|
|
|
# Node
|
|
node_modules/
|
|
dist/
|
|
dist-ssr/
|
|
*.local
|
|
.npm
|
|
.pnp.*
|
|
.yarn/*
|
|
|
|
# IDE
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
.DS_Store
|
|
|
|
# Environment
|
|
.env.local
|
|
.env.*.local
|
|
|
|
# Database
|
|
*.db
|
|
*.sqlite
|
|
*.sqlite3
|
|
/data/
|
|
|
|
# Logs
|
|
*.log
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
pnpm-debug.log*
|
|
lerna-debug.log*
|
|
|
|
# Build
|
|
build/
|
|
*.pid
|
|
*.seed
|
|
*.pid.lock
|
|
|
|
# Docker
|
|
docker-compose.override.yml
|
|
|
|
# Photos (for development)
|
|
/photos/
|
|
|
|
# Thumbnails
|
|
/thumbs/
|
|
/trash/backend/yolov8n.pt
|