Catalog / Personal & Everyday AI / PERS-006

Photo & video library organisation and search

Automatically tag, group, de-duplicate and semantically search a private photo and video collection by content, people, places and time.

A typical household holds tens of thousands of photos and videos spread across phones, laptops, messengers and old backups. Folder names and dates stop being enough after a few years. Vision-language embeddings let people search by describing what they remember, face clustering groups the same people, and de-duplication cleans up the mess. Most of it now runs on the phone itself or on a small home server, so photos need not go to a third-party cloud.

Problem & value

  • Today: photos pile up in camera rolls, WhatsApp/Signal exports, cloud services and external drives. Finding "the photo of the red bicycle in Lisbon" means scrolling. Duplicates, screenshots and burst shots waste storage, and many people fear losing memories or lock-in to one platform.
  • AI value: search by meaning instead of by file name, automatic grouping by event, person and place, quick clean-up of duplicates and blurry shots, generated captions/alt text, and automatic memories or highlight videos.
  • Benefit figures: no reliable independent figures on time saved are known to the author; measure your own search success and clean-up time rather than relying on vendor claims.

Variants

  • Platform-integrated (default for most people): Google Photos, Apple Photos, Microsoft OneDrive Photos, Samsung Gallery.
  • Self-hosted photo cloud: Immich, PhotoPrism, Ente (EU-friendly, end-to-end encrypted), LibrePhotos.
  • Family / shared library: shared albums with per-person face recognition and sharing rules.
  • Professional photographers and small studios: AI culling, keywording and DAM tagging (Adobe Lightroom, Capture One, Excire) — cross-industry overlap with GEN-001 and KNOW-016.
  • Video: scene/highlight detection and speech transcripts for search, see VIS-025.
  • Archival / digitisation: scanned family prints and old slides, links to PERS-010 (genealogy).
  • Accessibility: automatic alt text and scene description, see PERS-007.

How it works

  1. ingest (phone auto-upload, folder watch, import)
  2. metadata extraction (EXIF, GPS, time zone, live-photo/burst grouping)
  3. perceptual hashing (exact + near-duplicate detection)
  4. image embeddings (CLIP/SigLIP-style) + optional VLM captions + object/scene labels
  5. face detection
  6. face embeddings
  7. clustering into "people" (user names clusters)
  8. video: keyframe sampling, scene splits, optional speech-to-text
  9. index (vector DB + metadata filters, reverse geocoding)
  10. search UI (text, person, place, date) · albums/memories · clean-up suggestions
  • Semantic search: a contrastive dual-encoder (CLIP, SigLIP 2) embeds images and text queries into the same vector space; search is a nearest-neighbour lookup, optionally combined with date/place/person filters. Multilingual text encoders matter in the EU because queries come in many languages.
  • Conversational search: newer assistants (e.g. Google's "Ask Photos", Gemini-based) answer questions such as "what was the name of the restaurant we went to in Rome?" using a VLM over the library. Availability differs by region; check current status for your country.
  • Faces: detector plus face-embedding model, then clustering. This is biometric processing of every person who appears, including bystanders and children (see risks).
  • Human-in-the-loop: the user names or merges people clusters, confirms deletions of duplicates (never auto-delete), and corrects wrong tags; edits feed back into the local index.

Data preparation

The material is photos and videos spread over phones, old laptops, external disks, memory cards, messenger downloads and cloud accounts. Typical gaps: duplicates and near-duplicates across devices, missing or wrong dates and GPS, stripped metadata from messengers, screenshots mixed with photos, scanned prints without any metadata, and unclear folder structure. Access rights matter when family members or other people appear in the pictures.

Preparation steps: - Collect everything into one place first (a NAS folder or a single library); this is the largest part of the work. - Exact-duplicate removal by hash, then near-duplicate review with the tool's grouping (PREP-007 covers odd legacy formats such as HEIC or old camcorder files). - Repair dates from file names or EXIF with tools such as ExifTool; scan old prints at 300-600 dpi (PREP-006). - Decide on a simple folder or album convention and keep originals untouched; let AI produce tags and face clusters in a separate index (PREP-010). - Back up before any bulk operation (3-2-1 rule).

Rough share of effort: 50-70 percent of the total, since the AI indexing itself runs unattended while collecting, de-duplicating and fixing metadata needs manual attention. Expect a weekend for a few thousand photos and several weekends for archives of decades.

Implementation paths

Which path for whom

  • private: A, because mature photo apps (Apple Photos, Google Photos, Ente, Synology Photos) cover tagging, search and de-duplication with little effort; choose encrypted or EU options for sensitive material.
  • developer: C, because Immich, PhotoPrism or a custom CLIP/SigLIP pipeline on a NAS or mini-PC keeps full control over faces and location data and can be extended.
  • Platform photo apps: Google Photos, Apple Photos (on-device intelligence, with iCloud sync), Microsoft OneDrive; Samsung Gallery. Easiest, best phone integration, but the data lives with a US provider.
  • EU / privacy-oriented: Ente Photos (EU-based, end-to-end encrypted, ML runs on device), Synology Photos and QNAP QuMagie (NAS-based, vendor in Taiwan, data stays at home), Proton Drive for encrypted backup storage (Swiss).
  • Choose A when: convenience matters most and the provider's data processing is acceptable; for sensitive material prefer encrypted or local options.

Path B — Build on cloud APIs

  • Rarely needed by individuals. Developers can combine a multimodal API (Claude, Gemini, GPT, Mistral Pixtral-class) for captioning and question answering with an embedding model and any vector store.
  • Cost scales with image count; downscale images before sending. Sending family photos to a cloud API is personal-data processing by the user as a controller toward the provider; use EU regions and zero-retention terms where offered.
  • Choose B when: you build a product (e.g. a photo-search app) or need special captioning logic.

Path C — Self-host (open source)

  • Immich (open source Google-Photos alternative with CLIP-based smart search, face recognition, mobile auto-backup, optional hardware-accelerated ML worker) and PhotoPrism (Go, TensorFlow-based classification, face recognition, maps) are the leading projects; LibrePhotos is a lighter alternative. Deploy with Docker Compose on a NAS or mini-PC.
  • Models: OpenCLIP / SigLIP 2 for embeddings (multilingual variants for non-English queries), InsightFace-style or similar models for faces, Qwen-VL / Gemma-class open VLMs via Ollama or llama.cpp for captions and chat over the library, Whisper for video speech.
  • Hardware: HW1 suffices (CPU, N100-class mini-PC, or NAS); the initial indexing of a large library takes hours to days on CPU, a modest GPU (HW2) cuts that sharply and enables local VLM captioning. Storage and backups (3-2-1 rule) matter more than compute.
  • Ops effort: a few hours to set up; ongoing updates and backup monitoring. Remote access via VPN (WireGuard/Tailscale-style) rather than open ports.

Path D — Custom training

Almost never. Fine-tuning an embedding model on a personal collection brings little benefit. Exceptions: archives with unusual content (e.g. historical glass negatives) or a commercial DAM needing domain-specific tagging.

State of the art (2026)

  • Dual-encoder retrieval (CLIP, SigLIP 2) is the standard for text-to-image search and is cheap enough to run on phones and NAS devices. Multilingual and better-localised variants improved zero-shot retrieval quality [4].
  • VLMs over libraries: conversational photo search and automatic captions are now shipping in consumer products; quality is good for objects, scenes and OCR text in photos, weaker for exact counts, small text, fine-grained identity and spatial relations.
  • On-device processing: mobile NPUs run embeddings, face clustering and dedup locally (Apple Photos, Ente), reducing privacy exposure.
  • Video: keyframe embeddings plus speech-to-text give usable search; long-video temporal reasoning is still weaker than image search.
  • Limits and failure modes: wrong people clusters (siblings, aging, children), biased face recognition across skin tones and ages, hallucinated captions, misplaced geotags, over-aggressive near-duplicate merging of burst shots, and loss of data if the cloud index is treated as the only backup. Generated "memories" can resurface painful events (bereavement, breakup) — offer hide/exclude controls.

Shared resources & combinations

  • Same stack (vlm + embeddings + vector-db): KNOW-016 (multimodal archive search), VIS-025 (video tagging), VIS-030 (face/plate anonymisation before sharing).
  • Hardware sharing: one home server (HW1/HW2) can also run PERS-005 (private local assistant); the same VLM serves captions here and screenshots/documents elsewhere.
  • Natural combinations: PERS-017 (lifelogging captures feed the library), PERS-010 (digitised family photos), PERS-007 (alt text and scene description), PERS-009 (shared family organisation), VIS-016 for the (business) face-recognition contrast.

Effort, cost & KPIs

  • Path A: minutes to set up; free tiers, then roughly a monthly storage subscription per capacity tier.
  • Path C: a weekend for a first working install; hardware cost is mainly a NAS/mini-PC plus disks and an off-site backup.
  • Path B: development effort of weeks; pay per image processed.
  • KPIs: time to find a target photo, share of library with usable tags, duplicate share removed, face-cluster accuracy after correction, backup restore test passed, ML indexing throughput (images/hour).

People & change

This is mainly a private use case, so the relevant circle is the household. Agree with family members who owns the library, who may see which albums, and whether face recognition is on at all; people in photos have rights too, so do not publish clusters of third parties and delete face data on request. Ask for consent before indexing photos of guests or children of others.

Works council: no, since this is not an employee system. If a club, school or company reuses the approach for photos of staff or members, the data protection officer should check the legal basis (face recognition is biometric data and usually needs explicit consent or should stay switched off), and a works council would be involved under §87(1) no. 6 and §90 BetrVG if employees are identifiable (GUIDE-004, GUIDE-005).

AI literacy: a short family briefing is enough: what the app sends to the cloud, what runs locally, that tags and face groups can be wrong, and that generated captions are suggestions (GUIDE-006). Start with a pilot album of one event or one year, check accuracy together, then roll out to the full library. Typical concerns are privacy, vendor lock-in and loss of photos; address them with local or end-to-end encrypted options, an export path (GUIDE-002) and verified backups. The human always decides what is deleted, since automatic duplicate deletion should stay a manual confirmation.

Risks, regulation & compliance

  • EU AI Act: minimal risk for private photo organisation. Obligations apply to providers/deployers, and AI literacy (Art. 4) is relevant for providers. Art. 5 prohibition (1)(e): creating or expanding facial-recognition databases through untargeted scraping of images from the internet or CCTV is banned — a personal library with consent-based, user-supplied photos is a different situation, but a product must never build face databases by scraping. Biometric categorisation inferring sensitive traits (race, religion, sexual orientation, etc., Art. 5(1)(g)) is also prohibited, so do not add features that infer such attributes from faces. Generated or edited media shared publicly may fall under transparency duties (Art. 50) for providers of generative features.
  • GDPR: purely personal or household activity is exempt (Art. 2(2)(c)), but this does not cover the provider of a cloud or app, which is a controller or processor. Face templates used to uniquely identify a person are biometric data (Art. 9 special category) — providers need an explicit consent basis, and the EDPB treats photos as biometric data only when processed with technical means allowing unique identification [6]. Publishing photos of others online, especially children, or running a shared/community or club library can leave the household exemption, so consent, purpose limitation and deletion apply. Data-subject rights (access, erasure) apply against providers.
  • Children's photos: apply data minimisation; avoid sharing publicly; platform and national youth-protection rules apply.
  • Security: self-hosted servers need patching, strong authentication, TLS, no public exposure, and tested backups; E2EE services trade away server-side ML features.
  • Mitigations: local processing where possible, opt-in for face recognition, never auto-delete, per-album sharing controls, disclose cloud use to family members who appear in the library.

Getting started

  1. Inventory sources (phones, messenger exports, old drives) and make one verified backup before any AI clean-up.
  2. Try the built-in app (Apple/Google Photos) and decide whether provider processing is acceptable; turn face grouping off if not.
  3. For control: install Immich or PhotoPrism on a NAS/mini-PC via Docker, import a 1,000-photo sample, and test searches in your own language.
  4. Name the people clusters, review duplicate suggestions manually, and set up off-site encrypted backup.
  5. Agree on family rules for sharing photos of children and other people.

Sources

  1. Immich project documentation (smart search, facial recognition, machine learning) — https://immich.app/docs/overview/introduction
  2. PhotoPrism user guide — https://docs.photoprism.app/user-guide/
  3. Ente Photos (end-to-end encrypted, on-device ML) — https://ente.io/
  4. Tschannen et al., "SigLIP 2: Multilingual Vision-Language Encoders with Improved Semantic Understanding, Localization, and Dense Features" — https://arxiv.org/abs/2502.14786
  5. Radford et al., "Learning Transferable Visual Models From Natural Language Supervision" (CLIP) — https://arxiv.org/abs/2103.00020
  6. EDPB Guidelines 3/2019 on processing of personal data through video devices (biometric data) — https://www.edpb.europa.eu/our-work-tools/our-documents/guidelines/guidelines-32019-processing-personal-data-through-video_en
  7. Regulation (EU) 2024/1689 (AI Act), Art. 5 and Art. 50 — https://eur-lex.europa.eu/eli/reg/2024/1689/oj
  8. Regulation (EU) 2016/679 (GDPR), Art. 2(2)(c) and Art. 9 — https://eur-lex.europa.eu/eli/reg/2016/679/oj
  9. OpenCLIP — https://github.com/mlfoundations/open_clip