fix: vision tasks inherit user_id, admin owns mount root

- detect_objects, classify_content, recluster_faces now look up the
  photo's user_id and set it on created Tag rows — fixes tags being
  invisible to the owning user due to NULL user_id
- Initial admin setup creates source root at the mount root (/photos)
  instead of a subdirectory, since the admin owns the entire library
- Revert to OpenCLIP ViT-B/32 (512-d) as default embedder — SigLIP
  requires transformers version alignment not yet available in the
  Docker image. SigLIP2 code remains for future enablement.
- Add transformers to requirements for future SigLIP support

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-13 00:01:28 +02:00
parent 35d87a2749
commit fbeefb24a0
9 changed files with 35 additions and 17 deletions

View File

@@ -20,5 +20,5 @@ class Embedding(Base):
photo_id = Column(String, ForeignKey('photos.id', ondelete='CASCADE'), primary_key=True)
model = Column(String(64), primary_key=True) # e.g. 'siglip2_vitb16'
vector = Column(Vector(768)) # SigLIP2 ViT-B/16768-d
vector = Column(Vector(512)) # OpenCLIP ViT-B/32512-d
created_at = Column(DateTime(timezone=True), server_default=func.now())