文章 / #112

如何在普通 Mac 上免费搜照片和文件?用 DigUp,说一句话就能找

DigUp 基于谷歌 EmbeddingGemma 2,中文找旧照片 这篇也有视频版 DigUp 基于谷歌 EmbeddingGemma 2,中文找旧照片 06:09 在本站直接看

DigUp 是个装进你自己电脑的文件搜索工具:拖进应用程序,或者一行 brew 命令,就装好了。免费、开源,文件只在本机处理、不上传,没账号,没遥测。

我把它装在一台平民级的 MacBook Air(M3)上,拿一批照片、视频、合同和截图实测了一遍。它最好用的场景,是用中文一句话描述照片里拍了什么、合同里写了哪条、截图上有什么——找出来不算,还能直接跳到那一页、那一刻。第一次打开得先下 865MB 的模型,建索引也要等一阵,这两件事得先有心理准备,后面一节节说。

来源:DigUp 官方演示(MIT,作者 ARahim3)

五行说清能不能用

DigUp 是什么东西

DigUp 是 ARahim3 的开源项目,MIT 许可。它自己不产模型,底下跑的是谷歌 DeepMind 2026 年 10 月发布的多模态嵌入模型 EmbeddingGemma 2:Apache 2.0 许可,7.4 亿参数,认识一百多种语言。这个模型把文字、图片、声音、视频都塞进同一个空间:一张海边狗的照片,离「海边的狗」这四个字近,离「番茄炒蛋」远。

DigUp 做的事,就是把这个能力接到你的硬盘上:你指定要搜哪些文件夹,它挨个读一遍建索引;之后你描述想找什么,它去挑意思最接近的那几段。整个过程不看文件名,文件叫 IMG_20210112_1.png 也不影响。

跟苹果自带的搜索比,苹果也会分析画面,只是在后台慢慢跑。这个差别我后面拿同一批文件实测。

谷歌官方博客原文:10 亿参数以下同类领先

按谷歌那篇博客的原话,同一个尺寸档里(10 亿参数以下的多模态嵌入模型),它的几项基准分数领先,有些任务上能追平、超过更大的模型。我理解成「同尺寸里比较能打」,不指望它天下第一。

官方演示里的三段结果

官方那个演示动图我反复看过几遍,最抓人的是视频定位:搜 zebra in a video,一段非洲草原的片子被翻出来,直接停在斑马出现的那一秒,第 42 秒。注意这段视频的文件名叫「Masai Mara - day 2」,名字里根本没有斑马两个字,它是看了画面才找到的。

租约那段也一样。搜 the clause about pets in the lease,一份租房合同的 PDF 被打开,翻到写宠物条款的那一页,搜索词在页面上标出来。播客那段我印象更深:搜 where they talk about sleep,一期音频跳到那一分钟,从那句「睡觉」开始放。

来源:DigUp 官方演示(MIT,作者 ARahim3)

租约那条动图在下面;注意它是看内容翻页的,不是按文件名。

来源:DigUp 官方演示(MIT,作者 ARahim3)

演示里的文件全是英文,换成中文行不行,得自己试。我后面专门测了。

它靠什么找到内容

原理不复杂。建索引时,模型把每张图、每一页 PDF、每段文字、每 30 秒声音、视频每隔几秒抽的一帧,都变成一串数字,塞进一个 SQLite 文件。搜的时候,你打的那句话也变成一串数字,跟库里所有向量比远近,谁的近谁排前面。这些向量都是 768 维的,一张视频截图和一页 PDF 能在同一个尺度上比。

除了按意思比,它还留了一条原词精确匹配的通道:发票号、错误码、人名这类东西,嵌入表达不精确,就靠字面上的匹配补上,两条路的分数合在一起排序。截图上的订单号能整串搜到,就是这条通道在起作用。

音频是按 30 秒一段、互相重叠着切;视频每隔几秒取一帧,另外每个镜头取一帧,音轨按音频那套处理。Mac 上模型跑在 GPU(Metal)上,用的是 llama.cpp 的 8 位量化版本;模型待在独立进程里,索引完就退出,搜索时才加载文本那一小部分,大概 250MB。索引里记着每个向量是哪个模型版本做的,更新之后向量没变就保留原索引。做完索引,新放进去的文件几秒钟就能搜到。

装之前先对一下机器

README 写得很直白:Mac 版要苹果芯片,系统 macOS 14 以上。我用的是一台 MacBook Air M3、16GB 内存,属于很普通的配置——按 The Verge 的报道,16GB 是苹果这代 MacBook Air 的最低配置档位,起售价 999 美元,是苹果笔记本里最便宜的一档。这东西不是给顶配机器准备的。

Windows 和 Linux 有测试版:Windows 上是 x64 安装包,装给自己、不需要管理员权限;Linux 上 Ubuntu、Debian、Mint 这些发行版有 .deb 包,别的地方用 AppImage。这两个平台的包还没签名,Windows 可能弹提示说认不出这个应用,想折腾可以试,主力机先别动。

第一步:把它装进来

Mac 上有两条路,选一条就行。

一条是去 GitHub 的 Releases 页面下 DMG,打开之后把 DigUp 拖进「应用程序」文件夹,跟装普通 Mac 软件一样。

另一条是 Homebrew,一行命令:

brew install --cask arahim3/tap/digup

终端真实输出

装完在启动台或应用程序文件夹里能看到它。第一次打开会有系统提示,允许一下就行。

第二步:第一次打开

打开之后它不急着干活,先让你选文件夹。可以选整个文件夹,也可以只选里面某几个子文件夹。它还算贴心:每个文件夹会显示一个首次预估时间,这数字是按你这台机器实测出来的,不是拍脑袋。选大文件夹之前先看一眼,心里有底。

选好文件夹,剩下两件事要等。

一是下模型。865MB,一次性,只下这一次。为什么这么大?README 解释过:文本部分 310MB,图像和音频编码器 555MB,加起来就是它。我这台机器连的网不算快,下了大约 38 分钟(2300 秒)。你那边多久取决于网速,没有统一答案。

二是建索引。它要把选中的文件挨个读一遍,这是最费时间的环节。这一步它干的事挺多:照片和截图看画面,截图里的字在 Mac 上还会额外用系统的文字识别读出来;PDF 一页一页过,扫描件也算,特别长的先读前 30 页,剩下的等其它文件都建完再补;录音按 30 秒一段切开听;视频每隔几秒取一帧。我的测试文件夹第一批 8 个文件花了 40 秒;后来我又塞进去 317 个干扰文件,追加索引花了 331.5 秒,算下来差不多一秒一个。README 给的参考是:几百个文件几分钟,一个塞满东西的「下载」文件夹可能得一个小时。

索引建好之后你再放新文件进去就不一样了,落地几秒钟就能搜到,不用再等一遍。

下面是我这台机器的设置页:能看索引跑到哪了(我这儿是 326 个文件全索引完)、能追加要跳过的文件夹和扩展名、也能限制只在接电源或者指定时段才跑索引。

本机 DigUp 设置页截图

第三步:呼出搜索框

DigUp 常驻菜单栏,平时不用管它。在任何应用里按 ⇧⌘Space,搜索面板就出来了(Windows 和 Linux 上是 Ctrl+Shift+Space)。这个快捷键可以在设置里改。

结果出来之后:

Mac 上视频会交给 QuickTime Player 或 IINA 播放,第一次要允许它控制播放器;PDF 默认用「预览」打开时会带着你的搜索词,我这台 Mac 把默认 PDF 应用设成了 WPS,所以回车是直接打开文件,没有预览里那一套高亮。

我在自己机器上实际打了一次「海边的狗」,录屏在下面:结果第一条就是那段视频,标着「Matches the frame at 0:06」,回车之后 QuickTime 先闪了一下开头,然后跳到第 6 秒,正好是金毛跑进画面那一镜。

我在本机 DigUp 应用里的真实操作录屏

来源:DigUp 官方截图(MIT,作者 ARahim3)

实测:照片和视频

接下来是我自己的测试。先说清这批文件:三张照片是我用 AI 生成的样张,一段视频,两段中文录音是用 macOS 自带的朗读功能念出来的,一份租房合同扫描件,一张付款失败截图。文件名全是相机那种乱码,「IMG_20210112_1」这种,录音就叫「新录音1」「新录音2」,光看名字完全猜不出内容。为了让搜索有点难度,我又塞了 317 个不相干的文件当干扰。

打「海边的狗」:第一条是那段视频,DigUp 跳到第 6 秒,正好是金毛在海边跑的那一镜;第二条就是那张照片;317 个干扰文件一个都没挤进前两名。

打「过生日吹蜡烛」:视频排第一,停在开头那一镜,蛋糕照片排第二。打「白板上画的流程图」:视频跳到第 4 秒,照片第二。三张照片用中文都找到了。

命令行真实输出回放,不是应用界面录屏

实测:合同扫描件

合同那份文件的名字就是「扫描件_0315」,一点提示都没有。我打「租房合同里关于养宠物的条款」,排第一的是它,而且它把原文摘了出来:

「第三条 宠物条款:未经出租方书面同意,承租方不得在房屋内饲养猫、狗等宠物。如需饲养,应额外缴纳押金两千元。」

录屏里你能看到:列表里只有这一个结果,标着「Matches page 1」,回车之后文件直接打开到写宠物条款那一页。我这台把默认 PDF 应用设成了 WPS,所以打开的是 WPS;系统默认是「预览」的话,它会带着你搜的词打开。

我在本机 DigUp 应用里的真实操作录屏

同一次搜索在命令行里的原始输出是这样,结果里带了页码和摘出来的原文:

命令行真实输出回放,不是应用界面录屏

这说明它是读了扫描件里的字才找到的,那份 PDF 在索引里算第一页。同一份合同,我用英文打 lease clause about pets,它排到第三才出现,前两条是杂物,分数只有 2.7。

苹果聚焦的同场对照

同一批文件,我也拿苹果自带的搜索试了。在我这台机器、这批文件上:测试文件放好的当晚,打「狗」,只命中了那份合同——因为合同文字里有「狗」这个字,金毛照片和那段视频都没出来。等过了一夜再搜,视频能搜到了;照片到 10 月 16 日中午还是没有。打「支付失败」,那张截图也是一直没有结果。

这里得说句公道话:这不是说苹果搜不到画面内容——它也在分析画面,只是在后台慢慢跑,我这台上过了一夜才部分到位;DigUp 是索引建完就能搜。单次对照只能说明这台机器这个时间点的情况,不代表所有 Mac 都这样。

实测:截图和订单号

打「付款失败的截图」,那张截图排第一,分数 4.9。截图上有一串订单号 20230415887261,我把整串数字粘进搜索框,它还是能找到那张截图,而且标着「words #1」,走的是原词精确匹配那条路。截图里的文字在 Mac 上会被读出来,这是 DigUp 在 Mac 上独有的一项能力,Windows 和 Linux 上还没有。

命令行真实输出回放,不是应用界面录屏

顺手试了个跨语言的:用英文打 payment failed screenshot,同一张截图还是排第一,分数 6.6。用「银行卡余额不足」也能命中,分数 3.5,同样是原词匹配排第一。

怎么描述才搜得准

用下来有几条经验,都是实测里撞出来的:

哪些说法搜不到

失败的样子也得说清楚,不然你装完会以为坏了。

只打「押金」,前排全是杂物图片,合同没出来。合同里明明写着押金两千元,问题出在这条查询走的是精确词匹配,中文分不了词,等于半个通道断了。

命令行真实输出回放,不是应用界面录屏

打「开会时说几点前睡觉」,那段录音里说过「建议晚上十一点前睡觉」,但它没找到,前排三条都是不相干的图片。换成「团建去杭州」就能命中那段录音,分数 2.3;「番茄炒蛋」也能命中另一段录音,分数 2.0,两个都偏低,勉强进前排。

打「视频里的狗」,前几名全是杂物,画面里有狗的那段视频没上来。它是按内容片段算的,问法里带「视频」两个字反而帮不上忙。

英文搜中文合同也不行,前面说过,合同排到第三才出现。英文搜「海边的狗」倒是很稳:a dog on the beach 排第一,分数 7.4;中文的「海边的狗」也排第一,分数 4.5。同样是第一名,英文的把握高得多。谷歌自己也说过,这个模型不是每种语言都一样强。

验证一下装好了

最简单的验证办法:找一张你确定存在的照片,用中文描述一下它在哪、拍了什么,看它出不出来。出来了,说明模型和索引都没问题。

索引还在跑的时候,看菜单栏的图标,点开能看到进度,也能暂停。暂停之后再继续,不会重头来。这一步对第一次用的人挺重要,不然会以为卡死。README 有句话可以宽心:只有第一遍重,之后它只读新文件;搜索用的那部分模型只在搜索时才加载,平时不占着。

隐私与安全

README 里这段写得很明确,我按它的说法讲:

你索引的文件不会离开这台电脑。DigUp 只在两个时候联网:第一次下载模型,以及每天一次检查有没有新版本。检查更新不会送出去任何关于你文件的信息,这个检查也能在设置里关掉。没有账号,没有遥测。

我这台的设置里也确实这么写。Storage 那一页标着模型是 EmbeddingGemma 2、谷歌、Apache 2.0、865MB、已下载;下面一句原文是「DigUp 只读你选的文件夹,把学到的东西存在本机的索引里。它只在下载模型(一次)和查更新时联网,查更新不会送出任何你文件的信息」。

本机 DigUp 设置页截图

读的范围也有边界:它不读密钥、证书、密码文件,不碰 .ssh 这类隐藏文件夹,不碰应用程序和缓存,看着像数据集的文件夹会跳过。只存在于云盘、本机没下载的文件(Mac 上是 iCloud)它不去下。代码默认不读,除非你在设置里专门开了代码搜索。它只读文件,不改、不移、不上传。

常见问题

快捷键跟我现在的撞了怎么办? ⇧⌘Space 可以在设置里改。README 只说可以改,没别的条件。

想搜代码。 默认是关的,去设置 → Code 打开,选你要搜的项目文件夹。搜的时候以 code: 开头,比如 code: retry a failed call with backoff,会找到那个函数;打 code: refreshAccessToken 会跳到定义它的那一行。代码有自己独立的索引,不会混进普通搜索里。README 给的参考是:小项目读一遍大约 20 秒,整个 llama.cpp 大约 20 分钟、索引占 130MB。

会不会拖慢电脑? 只有第一遍索引重。之后它只读新文件,模型在独立进程里跑完就退出,搜索那一小块只在搜索时加载。

建索引太慢,能停吗? 点菜单栏图标,里面有暂停。它会记着进度,接上继续。

会读我的密码、改我的文件吗? 不读密钥、证书、密码文件,不碰 .ssh;对文件只读,不改、不移、不上传。

怎么只索引一部分文件夹? 第一次选的时候就能只挑子文件夹;之后在设置里还能继续跳过某些文件夹和文件类型。

怎么卸载? 两条路。手动删:退出 DigUp,把 DigUp.app 拖进废纸篓,再删掉 ~/Library/Application Support/DigUp,模型和索引都在那里。用 Homebrew 装的更省事:brew uninstall --cask --zap digup,一把清干净。

适合谁、不适合谁

值得装:你是 Mac 用户,硬盘里堆着照片、截图、合同、PDF,经常想不起文件叫什么;你愿意用一句大白话描述,而不是敲两个关键词。

先别抱期望:你主要想搜中文录音,这块把握偏低;你的习惯是只打一两个词,中文单词容易落空;你用的是英特尔芯片的 Mac 或者 Windows 主力机,眼下只有测试版。

最后说一句

回到开头那个场景:一句中文,能不能把电脑里的旧照片、旧合同翻出来?在我这套测试文件上,照片、合同、截图这几类基本能搜到;视频要看你怎么问,「海边的狗」行、「视频里的狗」就不行;录音和只打一个词的搜法还不太靠得住。免费、开源、文件不出本机,这三点让试错成本很低,代价是首次下载和建索引要等一等。Mac 用户可以装一个试试,反正不花钱。

先收藏,留言说说你最常找不到什么文件?

想聊更多:我建了一个「AI 自媒体创业讨论群」,里面交流的都是这类 AI 工具的实际使用体验——好不好用、坑在哪、怎么用在自媒体流程里,都是实测说话。扫下面这个二维码就能进。

AI 自媒体创业讨论群二维码

(二维码到 10 月 23 日有效,过期了就私信我。)

参考资料

DAVID YIN · 2026 · 10 · 16 · 杭州
← Older · #110
Codex Cloud 是什么:合上笔记本,你的代码任务还在跑
Newer →
— 这是最新一篇 —