---
title: "Vos photos d’iPhone restent en local, et Comma les retrouve · Blog de Comma"
description: "Les modèles tournent aussi en local. Posez votre question avec vos mots, et Comma retrouve les photos dans un index local."
url: https://comma.surf/fr/blog/local-iphone-photo-search
language: fr
---

[Retour au blog](https://comma.surf/fr/blog)

Comma Team · 28 octobre 2026 · 6 min de lecture

# Vos photos d’iPhone restent en local, et Comma les retrouve

Les modèles tournent aussi en local. Posez votre question avec vos mots, et Comma retrouve les photos dans un index local.

[Commencer](https://app.comma.surf/) [Lire la documentation](https://comma.surf/fr/docs/salix/devices)

Vous réservez une voiture de location en ligne, et le formulaire demande le numéro et la date d’expiration de votre permis de conduire. Le permis n’est pas sous la main. Vous vous souvenez de l’avoir pris en photo l’an dernier, recto et verso, quand vous avez reçu le nouveau, mais ces photos sont noyées parmi des dizaines de milliers d’autres sur votre iPhone. Vous voulez demander à [Comma](https://comma.surf/fr/) avec vos mots et retrouver ces deux photos.

Ce guide présente une façon de le mettre en place : construire un index de vos photos avec des modèles locaux, puis laisser Comma l’interroger. C’est un exemple de configuration sur un Mac, pas une fonction intégrée de Comma.

## Votre photothèque reste en local

Comma n’a pas besoin d’une copie de vos photos. Le travail lourd, lire le texte de chaque image et transformer chaque photo en vecteurs, est fait par des modèles locaux. Ce que l’agent reçoit, c’est le résultat d’une recherche : quelques identifiants de photos, leurs dates, le texte trouvé dedans et, quand vous devez choisir, une planche contact de vignettes. Seules les photos que vous choisissez au final sont envoyées dans la conversation.

Les photos elles-mêmes se synchronisent toujours via iCloud ; « local » désigne ici la reconnaissance de texte, les vecteurs et l’index après l’export. Si Comma utilise un modèle dans le cloud, ces résultats de recherche, ainsi que toute image que vous lui demandez de regarder, partent chez le fournisseur de modèles que vous avez choisi. Pour un document comme un permis de conduire, le texte reconnu contient le numéro et l’adresse. L’index lui-même n’est jamais envoyé nulle part. Comma est open source, et vous pouvez aussi [l’exécuter sur votre propre machine](https://comma.surf/fr/self-host).

## Construire l’index des photos

L’index se branche sur le chemin que vos photos empruntent déjà. Rien ne change sur l’iPhone.

Chaque étape après l’export tourne sur le Mac.

La mise en place se fait en trois étapes :

1. **Rapatrier les photos sur le Mac.** Synchronisez les photos de l’iPhone avec le Mac grâce à Photos iCloud, et exportez chaque jour les nouvelles photos dans un dossier.
2. **Les traiter avec des modèles locaux.** Reconnaissez le texte de chaque image, puis transformez l’image en vecteurs avec [Chinese-CLIP](https://huggingface.co/OFA-Sys/chinese-clip-vit-base-patch16) et [Qwen3-VL-Embedding](https://huggingface.co/Qwen/Qwen3-VL-Embedding-2B).
3. **Les ranger dans un index local.** Stockez les résultats dans une base de données locale, avec une commande pour y chercher. Dans cet exemple, la commande s’appelle `lpa`.

## Ce que renvoie une recherche

En local, une recherche est une commande. Un seul appel peut contenir plusieurs formulations, et les modèles ne se chargent qu’une fois. L’agent transforme des expressions comme « l’an dernier » en plage de dates.

sh

```
lpa search "driver license" "driver's license" "驾照" \
  --from 2025-01-01 --to 2026-01-01 --prefer text --json -n 9
```

Chaque résultat indique le type de preuve sur lequel il repose :

| Étiquette | Signification |
| --- | --- |
| Texte trouvé | Chaque mot figure dans le texte de l’image. |
| Possible | L’image semble similaire. Les choses semblables se confondent vite. |
| Confiance faible | Affiché seulement quand il n’y a rien de mieux. |

`--prefer text` place d’abord les correspondances de texte, ce qui convient aux documents, aux cartes et aux captures d’écran. `--prefer picture` place d’abord les images qui se ressemblent, ce qui convient à un chat ou à une plage. Les photos presque identiques prises en quelques minutes n’occupent qu’une place dans la liste, les autres étant rangées en dessous.

Correspondance de texte : le nom du réseau et le mot de passe viennent des mots écrits sur la carte de la photo. La photo a été générée pour cet exemple.

Correspondance d’image : rien dans ces photos ne dit « chat » ni « rebord de fenêtre » ; ce sont les vecteurs d’image qui les trouvent.

Quand les premiers résultats sont incertains, l’agent ne devine pas. Il réunit les vignettes des candidates sur une planche numérotée, neuf au plus, et vous demande de choisir.

Une planche contact d’exemple ; le permis est une carte factice. 1 et 2 sont des correspondances de texte pour le recto et le verso, 3 et 4 ressemblent à des cartes, et le reste sont des candidates à confiance faible. Répondez « 1 et 2 », et l’agent envoie les deux faces du permis.

La façon d’associer les deux jeux de vecteurs a été fixée en calibrant sur une photothèque complète d’environ 50 000 photos. Avec Qwen3-VL-Embedding seul, les bonnes réponses choisies par une personne arrivaient plus bas qu’avec Chinese-CLIP seul. En fusionnant les deux classements, chaque élément vérifié s’en est tiré au moins aussi bien qu’avec l’un ou l’autre modèle seul. « Possible » n’est attribué que lorsque la similarité des deux modèles dépasse le seuil : sur une requête de test, les photos marquées « Possible » sont passées de 4 970 à 4. En contrepartie, une recherche prend de 3,5 à 6 secondes au lieu d’environ 3.

Cet exemple tourne sur un MacBook Air avec 16 Go de mémoire, avec la version 2B de Qwen3-VL-Embedding. Sur une machine plus puissante, vous pouvez utiliser de plus grands modèles Qwen :

- **Un modèle de vecteurs plus grand.** Remplacez Qwen3-VL-Embedding-2B par [Qwen3-VL-Embedding-8B](https://huggingface.co/Qwen/Qwen3-VL-Embedding-8B). Après le changement, il faut recalculer les vecteurs de toutes les photos avec le nouveau modèle.
- **Une description et des étiquettes pour chaque photo.** Faites aussi tourner [Qwen3-VL-4B-Instruct](https://huggingface.co/Qwen/Qwen3-VL-4B-Instruct) ou [Qwen3-VL-8B-Instruct](https://huggingface.co/Qwen/Qwen3-VL-8B-Instruct) pour écrire une description d’une ligne et quelques étiquettes par photo, et rangez-les dans l’index de texte. Sur un MacBook Pro avec 24 Go de mémoire, par exemple, le modèle 8B tourne en quantification 8 bits. Les étiquettes conviennent à un premier tri ; leur exactitude n’est pas garantie.

**Et l’anglais ?** Chinese-CLIP a surtout été entraîné sur des images et des légendes en chinois, il n’est donc pas fiable pour des requêtes en anglais. Les deux autres briques ne sont pas concernées : la reconnaissance de texte lit le chinois comme l’anglais, et Qwen3-VL-Embedding prend en charge de nombreuses langues. Mettez donc des formulations chinoises et anglaises dans la même recherche, comme le fait la commande ci-dessus ; vous pouvez l’écrire dans un Skill. Si votre photothèque et vos questions sont surtout en anglais, vous pouvez aussi remplacer Chinese-CLIP par le [CLIP](https://huggingface.co/openai/clip-vit-base-patch16) d’origine, ce qui implique là encore de recalculer les vecteurs.

## Retrouver sa famille et ses amis

Photos regroupe déjà les visages d’une même personne. L’index utilise directement ces groupes et ne fait aucune reconnaissance faciale de son côté.

1. **D’abord, nommer les personnes.** La première fois, l’agent prend quelques lots de photos dans ces groupes, les numérote et vous demande qui c’est. C’est seulement quand vous répondez « la 3, c’est maman » qu’il le retient. Un groupe que vous n’avez pas confirmé n’est traité comme personne.
2. **Chercher par personne.** Ensuite, quand vous citez un nom, la recherche ne regarde que les photos où cette personne apparaît. Les noms s’additionnent : citez deux personnes, et vous n’obtenez que les photos où figurent les deux, c’est-à-dire vos photos ensemble.
3. **Combiner avec d’autres critères.** Un nom peut s’associer à ce que montre l’image et à la date, par exemple « des photos de maman et moi à la plage l’an dernier » :

sh

```
lpa search "beach" --person Me --person Mom \
  --from 2025-01-01 --to 2026-01-01 --prefer picture --json -n 9
```

Si un nom n’a pas été confirmé, ou si deux personnes portent le même nom, la recherche le signale au lieu de deviner. Un nom erroné peut être corrigé, et chaque correction peut être annulée.

## Comment on retrouve les vidéos

Les vidéos se cherchent à part des photos. Une recherche par défaut ne regarde que les photos. Si vous voulez, par exemple, la vidéo de votre enfant soufflant ses bougies d’anniversaire, dites à Comma que vous cherchez une vidéo, et il ajoute `--source video` à la recherche :

sh

```
lpa search "blowing out candles" "birthday cake" --source video --json -n 9
```

Derrière, il y a trois étapes :

1. **Extraire des images.** La vidéo elle-même n’entre jamais dans un modèle. L’indexeur prend une image toutes les 5 secondes, 12 au plus par vidéo.
2. **Chercher par image.** Ces images passent par le même traitement que les photos : reconnaissance de texte et les deux jeux de vecteurs. Une recherche compare ces images ; dès que l’une correspond, toute la vidéo est trouvée, et elle n’occupe qu’une place dans les résultats.
3. **Envoyer la vidéo.** Une fois votre choix fait, l’agent l’envoie avec `lpa video`.

Recherche de vidéo : les images qui correspondent appartiennent à une seule vidéo, qui ne compte donc que pour un résultat.

Pour l’instant, seule l’image compte, pas le son. Ce qui est dit dans une vidéo ne se cherche pas encore, et les personnes qui y apparaissent ne sont pas encore reconnues. Le nombre d’images extraites est plafonné : ce qui passe en un éclair dans une longue vidéo peut ne pas être trouvé.

## Comment LocalPhotoAgent est construit

Le `lpa` de ce guide vient de LocalPhotoAgent, un indexeur que nous avons écrit nous-mêmes et que nous publierons en open source. La partie indexation est décrite plus haut ; deux points de plus :

- **Il peut s’arrêter à tout moment.** Chaque étape de chaque photo est enregistrée séparément. Arrêtez-le en cours de route, il reprend la fois suivante ; changez un réglage, seule l’étape concernée est refaite. Pendant le travail, il surveille la mémoire, la température et l’espace disque, et se met en pause quand l’un d’eux dépasse sa limite.
- **Il donne à l’agent quelques commandes.** `lpa search` cherche, `lpa sheet` crée une planche contact, `lpa preview` envoie des photos et `lpa video` envoie des vidéos. Quand l’agent cherche des photos, il les appelle dans cet ordre :

## Connecter Comma

On suppose que LocalPhotoAgent fonctionne déjà sur votre Mac. La connexion se fait en quatre étapes :

1. **Ajouter un appareil.** Dans Comma, allez dans **Settings > Devices** et cliquez sur **Add device** pour obtenir une commande d’installation.
2. **Lancer la commande.** Lancez-la dans le Terminal du Mac qui contient la photothèque, pour installer le Comma Connector.
3. **Ouvrir l’accès.** Un nouvel appareil démarre sur **Off**. Passez-le sur **Full** pour que l’agent puisse exécuter `lpa`.
4. **Écrire un Skill.** Dites à l’agent de chercher d’abord, d’envoyer une planche contact en cas de doute, et de n’envoyer les photos qu’après votre choix. Vous pouvez simplement demander à Comma de « créer un Skill ».

Ensuite, il suffit de demander comme dans n’importe quelle conversation : « Retrouve les photos de mon permis de conduire de l’an dernier, recto et verso. »

La question du début de ce guide, résolue. Le permis est une carte factice.

## Confiance et limites

L’index ne fait que lire les originaux. Il ne les déplace, ne les modifie et ne les supprime jamais. Une recherche ne touche pas du tout au disque externe ; seules la création d’une planche contact et l’envoi d’une photo le lisent. Déplacer ou supprimer des photos ne fait pas partie de cette configuration. Notez toutefois qu’avec l’accès Full, l’agent peut exécuter sur ce Mac d’autres commandes que `lpa`.

Un texte trouvé signifie seulement que les mots ont été trouvés, pas que c’est la photo que vous voulez. « Possible » n’est qu’une candidate. Quand Comma marque une demande comme terminée, vérifiez les photos qu’il a envoyées.

La première fois, vous pourriez dire : « Retrouve les photos de mon permis de conduire de l’an dernier. Montre-moi d’abord la planche contact, et n’envoie, ne déplace ni ne supprime rien. »

Guides

[Retour au blog](https://comma.surf/fr/blog)

Partager

## Articles similaires

28 octobre 2026

### [Qu'est-ce qu'un agent IA toujours actif ?](https://comma.surf/fr/blog/what-is-an-always-on-ai-agent)

27 octobre 2026

### [Agent personnel ou assistant IA : quelle différence ?](https://comma.surf/fr/blog/personal-agent-vs-ai-assistant)

26 octobre 2026

### [Qu'est-ce qu'un agent personnel ? L'IA qui continue de travailler](https://comma.surf/fr/blog/what-is-a-personal-agent)

## Try Comma, Now.

[Commencer](https://app.comma.surf/)
