---
title: "iPhone 照片留在本地，Comma 帮你找 · Comma 博客"
description: "模型也跑在本地。你用自然语言提问，Comma 从本地索引里把照片找出来。"
url: https://comma.surf/zh/blog/local-iphone-photo-search
language: zh-CN
---

[返回博客](https://comma.surf/zh/blog)

Comma Team · 2026 年 10 月 28 日 · 阅读约 6 分钟

# iPhone 照片留在本地，Comma 帮你找

模型也跑在本地。你用自然语言提问，Comma 从本地索引里把照片找出来。

[开始使用](https://app.comma.surf/) [阅读文档](https://comma.surf/zh/docs/salix/devices)

在网上订租车，表格要填驾照号码和到期日，驾照却不在手边。你记得去年换新驾照时给它拍过照片，正反两面，可它们混在 iPhone 里几万张照片中间。你想用自然语言问 [Comma](https://comma.surf/zh/)，把这两张照片找出来。

这篇指南介绍一种搭法：先用本地模型给照片建一份索引，再让 Comma 去搜索它。这是在一台 Mac 上的示例配置，不是 Comma 的内置功能。

## 图库留在本地

Comma 不需要你照片的副本。最费力的工作，也就是读出每张图里的文字、把每张照片转成向量，都由本地模型完成。智能体拿到的是一次搜索的结果：几个照片 ID、它们的日期、图里识别出的文字，以及需要你挑选时的一张缩略图拼图。只有你最后挑中的照片，才会发到对话里。

照片同步本身走 iCloud；这里说的本地，指导出之后的识别、向量和索引。如果 Comma 用的是云端模型，这些搜索结果，以及你让它查看的图片，会发给你选择的模型服务商；像驾照这样的证件，识别出的文字里就有号码和住址。索引本身不会发往任何地方。Comma 本身是开源的，也可以[部署在你自己的机器上](https://comma.surf/zh/self-host)。

## 搭建照片索引

索引接在照片原本就会走的路径后面，iPhone 上什么都不用改。

导出之后的步骤都在 Mac 上运行。

搭起来分三步：

1. **把照片导到本地。** 用 iCloud 照片把 iPhone 上的照片同步到 Mac，每天把新照片导出到一个文件夹。
2. **用本地模型处理。** 识别图里的文字，再用 [Chinese-CLIP](https://huggingface.co/OFA-Sys/chinese-clip-vit-base-patch16) 和 [Qwen3-VL-Embedding](https://huggingface.co/Qwen/Qwen3-VL-Embedding-2B) 把画面转成向量。
3. **存进本地索引。** 结果存进本地数据库，再配一条搜索命令。示例里这个命令叫 `lpa`。

## 搜索会返回什么

在本地，一次搜索就是一条命令。一次调用可以放进几种说法，模型只加载一次；智能体会把“去年”这样的说法换成一段日期范围。

sh

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

每个结果都会标出它背后是哪种依据：

| 标记 | 含义 |
| --- | --- |
| 文字命中 | 每个词都在图里的文字中找到了。 |
| 可能 | 画面看起来相似。相似的东西容易混淆。 |
| 低置信度 | 只在没有更好的结果时才显示。 |

`--prefer text` 把文字命中排在前面，适合找证件、卡片和截图。`--prefer picture` 把画面相似的排在前面，适合找猫或海滩。几分钟内拍下、几乎一样的照片在列表里只占一个位置，其余的附在它下面。

文字命中：网络名和密码来自照片里卡片上的字。这张照片是为本例生成的。

画面命中：这些照片里没有任何字写着“猫”或“窗台”，是画面向量找到了它们。

排在最前面的结果不确定时，智能体不会去猜。它会把候选的缩略图拼成一张带编号的图，最多九张，请你来挑。

拼图示意，驾照为示例证件。1、2 是文字命中的驾照正反面，3、4 画面像卡片，其余是低置信度的候选。回复“1 和 2”，智能体就发送驾照的正反两面。

两套向量的用法是在约 5 万张照片的完整图库上校准后定下的。单用 Qwen3-VL-Embedding 时，人工挑出的正确答案反而比单用 Chinese-CLIP 排得靠后；两份排名合并后，检查过的每一项都不比单用任何一个模型差。“可能”也要两个模型的相似度都过线才会标上，在一次测试查询里，标成“可能”的照片从 4,970 张降到 4 张。代价是一次搜索从约 3 秒变成 3.5–6 秒。

这套示例跑在一台 16 GB 内存的 MacBook Air 上，Qwen3-VL-Embedding 用的是 2B。机器更好的话，可以换更大的千问模型：

- **更大的向量模型。** 把 Qwen3-VL-Embedding-2B 换成 [Qwen3-VL-Embedding-8B](https://huggingface.co/Qwen/Qwen3-VL-Embedding-8B)。换了以后，所有照片的向量都要用新模型重算一遍。
- **给照片写描述和标签。** 另跑一个 [Qwen3-VL-4B-Instruct](https://huggingface.co/Qwen/Qwen3-VL-4B-Instruct) 或 [Qwen3-VL-8B-Instruct](https://huggingface.co/Qwen/Qwen3-VL-8B-Instruct)，给每张照片写一句描述、列几个标签，存进文字索引。比如在一台 24 GB 内存的 MacBook Pro 上，8B（8-bit 量化）就能跑。生成的标签适合粗筛，不保证准确。

**英文怎么办。** Chinese-CLIP 主要用中文图文训练，英文查询它不可靠。另外两样不受影响：文字识别中英文都认，Qwen3-VL-Embedding 也支持多种语言。所以搜索时中英文说法一起放，就像前面那条命令，这一点可以写进 Skill。图库和提问以英文为主的话，也可以把 Chinese-CLIP 换成原版的 [CLIP](https://huggingface.co/openai/clip-vit-base-patch16)，换了同样要重算向量。

## 找家人和朋友

“照片”本来就会把同一个人的脸归到一起。索引直接用这份分组，自己不做人脸识别。

1. **先认人。** 第一次用时，智能体从这些分组里挑出几批照片，编上号问你这是谁。你回一句“3 号是妈妈”，它才记下。没确认过的分组，不会被当成任何人。
2. **按人找。** 之后提到名字，搜索只在这个人出现的照片里找。名字可以叠加：说两个人，就只返回两个人都在的照片，也就是你们的合照。
3. **和别的条件一起用。** 人名可以和画面、时间一起搜，比如“去年我和妈妈在海边的合照”：

sh

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

名字没确认过，或者有两个人同名，搜索会直接说明，不会猜。认错了可以改，每次修改都能撤销。

## 视频怎么找

视频和照片分开搜。默认的搜索只查照片；比如你想找孩子生日吹蜡烛的那段视频，跟 Comma 说清楚要找视频，它会在搜索里加上 `--source video`：

sh

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

背后分三步：

1. **截画面。** 视频本身不进模型。索引程序每 5 秒从视频里截一帧，每段最多 12 帧。
2. **按画面搜。** 截下来的画面和照片走同样的处理：识别文字、算两套向量。搜索比对的是这些画面，哪一帧对上了，整段视频就算找到，在结果里只占一条。
3. **发视频。** 你选定以后，智能体用 `lpa video` 把视频发过来。

找视频：对上的画面都属于同一段视频，所以这段视频只算一条结果。

现在只看画面，不听声音，视频里说过的话还搜不到，视频里的人也还认不出来。截的帧数有上限，长视频里一闪而过的画面可能找不到。

## LocalPhotoAgent 的结构

文中的 `lpa` 来自我们自己写的索引程序 LocalPhotoAgent，之后会开源。建索引的部分前面已经讲过，这里补两点：

- **可以随时停下。** 每张照片的每一步都单独记录，跑到一半停下，下次接着做；改了某项设置，只重跑受影响的那一步。处理时会看着内存、温度和磁盘空间，超了就先停下。
- **给智能体几条命令。** `lpa search` 搜索，`lpa sheet` 生成拼图，`lpa preview` 发照片，`lpa video` 发视频。智能体查照片时按这个顺序调用：

## 连接 Comma

前提是 LocalPhotoAgent 已在 Mac 上跑通。接入分四步：

1. **添加设备。** 在 Comma 的**设置 > 设备**里点**添加设备**，拿到一条安装命令。
2. **运行命令。** 在放图库的那台 Mac 的终端里运行它，装上 Comma Connector。
3. **打开权限。** 新设备默认**关闭**，改成**完全**，智能体才能运行 `lpa`。
4. **写一个 Skill。** 告诉智能体先搜索、不确定时发拼图、你挑完再发照片。可以直接让 Comma“创建一个 Skill”。

之后就和平时聊天一样，直接问：“找一下我去年拍的驾照，正反两面都要。”

开头那个问题，找到了答案。驾照为示例证件。

## 信任与限制

索引只读取原图，从不移动、编辑或删除它们。搜索完全不碰外置硬盘；只有生成拼图或发送照片时才会读它。移动或删除照片不在这套配置的范围内；不过设成完全权限后，智能体能在这台 Mac 上执行的命令不只限于 `lpa`。

文字命中只说明找到了这些字，不代表就是你想要的那张照片。“可能”只是候选。Comma 把请求标为已完成时，请检查它发来的照片。

第一次试的时候，你可以这样说：“找出我去年拍的驾照照片。先给我看拼图，不要发送、移动或删除任何东西。”

指南

[返回博客](https://comma.surf/zh/blog)

分享

## 相关文章

2026 年 10 月 28 日

### [什么是始终在线的 AI 智能体？](https://comma.surf/zh/blog/what-is-an-always-on-ai-agent)

2026 年 10 月 27 日

### [私人智能体与 AI 助手：区别在哪里？](https://comma.surf/zh/blog/personal-agent-vs-ai-assistant)

2026 年 10 月 26 日

### [什么是私人智能体？一个会持续工作的 AI](https://comma.surf/zh/blog/what-is-a-personal-agent)

## Try Comma, Now.

[开始使用](https://app.comma.surf/)
