离线、私密的 AI 相册搜索

想起一个画面,就能找到那张照片。

不必记住文件名或拍摄日期。用一句话描述记忆中的画面,或选一张参考图,寻隐会在你的 iPhone 本地相册中搜索。

开源代码GitHub 2,900+ 星标一次购买
寻隐 showing natural-language photo search results
2.1.2当前版本
始于 2022独立开发
草地上的白猫夜晚亮着灯的房间粉色天空与云草地上的白猫夜晚亮着灯的房间粉色天空与云

01 / 真实搜索

这是最初版本里真实发生的四次搜索。

不是素材库拼出的概念图,而是开发者自己的相册结果。提示词从物体、颜色和场景,一直试到很主观的情感。

Queryable 早期版本中关于椅子上的猫、窗边的酒瓶、恋爱瞬间和粉色云朵的四次真实搜索
2022 年 12 月的 Queryable 原始界面。从左到右分别搜索:坐在公园椅上的猫、窗边的白色瓶子、我们相爱了、粉色天空与云。

2022 年原始产品录屏 · 00:29 · 搜索不经过云端

02 / 29 秒实录

先看搜索本身,而不是宣传片。

这段最初的录屏连续完成了五次自然语言搜索,整个过程没有离开 iPhone。视频中是早期界面;现在的 App Store 版本已经加入时间筛选、以图搜图和相册整理工具。

  1. 01

    先建立一次本地索引

    图像编码器把本机可用的照片数据转换成紧凑的 512 维向量,并保存在设备上。

  2. 02

    再描述一段记忆

    文字编码器把句子映射到同一个视觉空间;非英文搜索还可以先用系统的本地翻译扩展查询。

  3. 03

    最后在本机排序

    GPU 加速的矩阵比较会计算查询与本地索引的相似度,返回最接近的照片。

04 / 搜索背后

两个编码器,共享一个视觉空间。

照片会提前完成编码。每次搜索只需要编码新的句子,再和已经保存的照片向量比较,因此重复搜索可以保持快速,也不必把相册传到云端。

Queryable 原始架构图,展示图像与文字编码器、向量、余弦相似度和照片排序结果
这张图来自 2022 年的原始技术文章,记录的是最初的 CLIP 实现。当前 App Store 版本使用 Apple MobileCLIP,但图文分离编码与本地相似度排序的核心思路没有改变。 阅读最初的技术文章

说明它是一份历史技术记录,并不暗示 2022 年以来每一处实现细节都原封不动。

05 / 今天的寻隐

最初的实验,后来成了完整的相册工具。

现在的代码和 App 已经不只是一只搜索框。下面这些能力来自当前源码或在售版本,并不是还没完成的路线图。

01

以图搜图

选一张参考照片,寻找相似的地点、物品、穿搭或重复场景。

02

结合时间筛选

记得大致日期时,可以把画面描述和时间范围一起使用。

03

重复照片分组

用可调阈值检查相似照片组,而不是让 App 替你一键盲删。

04

批量操作

可以一次选择多张结果分享或删除,并支持导出原始分辨率。

05

实况照片与视频

搜索结果不只支持静态图片,也能打开、播放和分享实况照片与视频。

06

本地语言辅助

在支持的系统上,可通过 Apple 翻译框架在本地扩展非英文查询,再合并结果。

06 / 为什么做它

一个自用工具,后来变成了公开项目。

2022 年底,Ke Fang 用两周做出第一个可用版本,只想回答一个很具体的问题:iPhone 能不能不上传相册,就按照画面的含义找回一段记忆?

之后,项目以 MIT 许可证开源,让隐私与技术承诺都可以直接检查。中文版叫「寻隐」:既来自《寻隐者不遇》,也很像从多年相册里寻找一张半隐半现的照片。

这里不重复那段完整的产品故事。下面两篇原文分别记录了最初的工程实现,以及两年后的复盘。

Ke FangQueryable / 寻隐作者 · 独立 iOS 开发者
本地索引 保存在你的 iPhone

07 / 隐私

你的相册,不是 AI 训练数据

核心索引与搜索均在 iPhone 本地完成,建立索引时不允许网络访问。仅存在 iCloud 的照片请先通过 Apple 照片下载到本机;我们不运营接收用户相册的上传服务器。

  • 设备端语义索引
  • 没有接收相册的寻隐服务器
  • 本地索引完成后可离线搜索
查看隐私说明

08 / 开源

不只相信承诺,也可以检查代码

寻隐对应的 Queryable 项目采用 MIT 许可证开源,并基于 Apple MobileCLIP 构建。你可以查看本地图片向量与文字匹配的实现。

在 GitHub 查看源码
SearchEngine.swift
let query = "草地上的白猫"
let textEmbedding = model.encode(query)
let matches = photoIndex
  .ranked(by: textEmbedding)
  .prefix(50)

// 照片留在这台设备上。

09 / 坦诚的边界

语义搜索有用,但并不神奇。

寻隐做的是视觉相似度排序。它不知道每张照片背后的私人含义,排在第一张的也不会永远正好是你想找的那张。

含义只能近似

情绪这类抽象提示词很主观。结果列表更像一个很好的起点,不是对照片的事实判定。

它不是人脸身份识别

寻隐搜索的是视觉含义与相似度,并不把自己描述成按姓名识人的生物识别系统。

本地必须有可用数据

仅保存在 iCloud 的照片,需要先通过 Apple 照片下载到设备,离线索引才能处理。

首次索引需要时间

大型相册第一次建立索引会使用时间、电量和存储;新设备更快,之后搜索会复用已保存的索引。

10 / 信息

可以核对的产品信息

版本、系统要求、评分与价格来自 App Store 在售页面,核对日期为 2026-07-14。

2.1.2当前版本
iOS 18.0+最低系统要求
4.7 ★232 个 App Store 评分
¥1一次购买 · 各地区价格可能不同

11 / 常见问题

常见问题

01寻隐是什么?

寻隐是一款用自然语言或参考图片搜索 iPhone 相册的 App,核心 AI 索引与搜索都在设备端运行。

02寻隐会上传我的照片吗?

不会为了建立索引或搜索把相册上传到寻隐服务器。仅存在 iCloud 的照片请先通过 Apple 照片下载到本机,再由寻隐离线处理。

03断网可以使用吗?

可用图像数据和本地索引就绪后,语义搜索可离线运行;仅存在 iCloud 的照片请先通过 Apple 照片下载。

04系统要求是什么?

当前 App Store 版本要求 iOS 18.0 或更高版本;较新的设备会有更快的首次索引速度。

05寻隐如何收费?

寻隐目前是一次购买、无订阅。此页更新时中国区 App Store 价格为 ¥1,实际价格以商店为准。

不用继续翻相册,描述它就好。

建立一次本地索引,然后用你习惯的语言搜索多年的照片。

在 App Store 获取寻隐