- Create face_embeddings table with pgvector Vector(128) + HNSW index - Implement extract_faces task (YuNet detection + SFace recognition) - Implement recluster_faces task (DBSCAN clustering → Tag(kind=face_cluster)) - Clusters are named "Person N" and get representative_photo_id - cluster_id FK → tags.id, SET NULL on delete for merge/rename support Migration 0005 creates the face_embeddings table. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
23 lines
512 B
Python
23 lines
512 B
Python
"""
|
|
Database models for Mulita
|
|
"""
|
|
from app.models.photos import Photo
|
|
from app.models.folders import Folder, SourceRoot
|
|
from app.models.tags import Tag, PhotoTag
|
|
from app.models.heaps import Heap, HeapPhoto
|
|
from app.models.embeddings import Embedding
|
|
from app.models.ocr_text import OCRText
|
|
from app.models.face_embedding import FaceEmbedding
|
|
|
|
__all__ = [
|
|
'Photo',
|
|
'Folder',
|
|
'SourceRoot',
|
|
'Tag',
|
|
'PhotoTag',
|
|
'Heap',
|
|
'HeapPhoto',
|
|
'Embedding',
|
|
'OCRText',
|
|
'FaceEmbedding',
|
|
] |