⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 http://www.iocoder.cn/Fight/lap-local-photo-manager/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

硬盘里躺了两万多张照片,最早那批还是卡片机拍的。这么多年一直没交给云相册,容量一满就要续费,白送的空间又小,想翻出某一张只能靠回忆它在哪个文件夹。

Lap 是 GitHub 上的开源桌面工具,Windows、macOS、Linux 都有包。让我愿意装的理由很直接,搜图和人脸归类全在本机跑,照片一张都不用往外传。

它拿你的文件夹当图库

多数照片软件要先建库再导入,你原来怎么分类它不管。Lap 掉了个头,你把电脑上分好类的文件夹指给它,它扫一遍建索引,文件留在原地,目录照旧。它不碰云,也不要账号,哪天不想用了直接卸掉,照片还在原位。

底层是 Tauri 加 Rust,界面用 Vue 写,索引落在一个 SQLite 文件里。许可证 GPL-3.0,免费。GitHub 上三千八百多 Star,谈不上爆款,但更新挺稳。

Lap 的图库主界面

窗口是深色配色。最左边一列排着日历、搜索、人物、标签、地点、图库这些入口,中间铺缩略图,右侧是详情面板,EXIF、直方图、地图都在。用 Lightroom 的对这套布局不会陌生。

julyx10/lap 仓库首页

拔掉网线,它照样能找到照片

它找照片不靠文件名。Lap 里带了一个 CLIP 模型,你写进去的是对画面的描述,不用猜文件名的字眼。官方给的例子是一句 sunset over the ocean,返回的就是海边落日那批图。

机制不复杂,图片和文字各自编码成向量,落进同一个空间,距离近就算相关。推理交给 ONNX Runtime 在本机完成,权重首次使用时下载,之后彻底离线。

五十多种语言都认,中文直接打字就行。右键菜单里还有 Find similar images,会把画面接近的照片挑出来,连拍选片时省事。字幕、截图、翻拍的文档没有 EXIF,靠文件名搜不出来,只能按内容找。

按语义搜图的结果

人脸这块交给 InsightFace,同样只在本机算。它把照片里的脸框出来,算完特征向量后按相似度归组。家里有小孩的应该有体会,几年下来小朋友的照片散在好几块硬盘里,手动挑根本凑不齐。

同类工具里的位置

照片管理这四个字底下压着好几类东西。云服务是一路,Apple 和 Google Photos 那种,开箱最顺,空间按年租。自托管是一路,Immich 和 PhotoPrism 为代表,跑在 NAS 上、浏览器访问,AI 不弱,但要长期养一套服务。

传统桌面图库是第三路,digiKam 那样,靠标签和目录树,偏手工。Lap 挤在中间,不指望你养服务器,却把语义搜图和人脸归类这两个通常靠服务端算的活塞进了桌面程序。

同一个文件夹,好几种翻法

日历视图按拍摄时间倒着捋,哪年哪个月出片多,扫一眼就有数。带 GPS 的照片会落在地图上,组件用的是 Leaflet。相机和镜头这两个视图吃的是 EXIF 里的器材字段,想找那支老定焦拍过的照片,点一下就行。

按地点和机型浏览

标签、星级、收藏也在,一到五星随便打,之后按星级筛。智能相册是把条件攒起来,比如某段时间加上三星以上再加上某个标签,符合的自动聚拢,分组排序也能自己定。收藏夹纯手工,文件拖进某个夹子,原文件不动,也不生成副本。

挑片、查重、还有那些成对的文件

挑片有个四格并排视图,四张放大到同一屏比细节,不用来回切窗口。清理给了查重工具,重复文件揪出来一键进回收站。

四格对比与格式支持

Live Photo 在 iPhone 上是一对文件,HEIC 配 MOV,Lap 认得这层关系,查看器里直接播,改名、移动、复制、删除都成对处理,不会拆散。机内出的 RAW 加 JPG 双格式能设成一条显示,底下还是两个独立文件。

内置编辑与批量操作

裁剪、旋转、翻转、缩放这些编辑它自带,应急裁图不用另开软件。官方列的格式有六十多种,各家相机的 RAW 基本都在名单里。佳能有 CR2 和 CR3,尼康有 NEF,索尼有 ARW,富士有 RAF,全都能解,视频那边 MP4、MOV、MKV 也出缩略图、也能播。

有一条得提前说清楚

标签、星级、评论、收藏夹和智能相册,这些整理结果都收在 Lap 自己的数据库里,不会回写到照片的 EXIF 或者 XMP。换句话说,这些信息只跟着 Lap 走,换个软件打开同一批文件,看到的是空白。

官方给的用法是改名、移动这类操作都在 Lap 里做,再定期备份数据库。算不上缺陷,同类工具里这么干的不止它一家,知道就行。

装起来就两条命令

安装包在仓库的 Releases 里挑对应系统的下。

macOS 拿 dmg,Intel 的机器挑 x64,Apple 芯片的挑 aarch64,公证做过,双击就能装。

Windows 侧是 msi,x64 和 ARM64 各有各的包。SmartScreen 多半会拦一下,作者没有给安装包买代码签名证书,点仍要保留就继续。

Linux 有 deb 包,Debian 系覆盖得比较全,Ubuntu 和 Linux Mint 都能直接吃,官方还另发了一个通用的 AppImage 包。

装完把照片文件夹添进图库列表,软件自己扫描建索引。AI 那两块功能第一次要联网把模型拉下来,拉完就彻底离线,对常年断网的机器挺友好。

Homebrew 那边两行就够,第一行先加作者的 tap。

brew tap julyx10/lap

第二行装本体。

brew install --cask lap

什么人值得试

家里照片多,又死活不肯上云,这类人最该装。全家人的照片堆在仓库盘或者 NAS 上,浏览和搜索交给 Lap,人脸归类自动把每个人的照片归堆。

玩摄影的可以拿它做初选。RAW 不用先转格式,四格视图挑片,查重清废片,打完星再丢进 Capture One 或者 Lightroom。它的活是图库管理,修图调色还得回原来的软件。

还有一种情况是从云上搬回来的老照片,名字乱目录也乱,交给 Lap 按时间和地点重捋一遍,比挨个翻快。

个人项目,值不值得押

Lap 这类把数据锁在你硬盘上的工具,现在确实不多。云相册的生意模型就是收订阅费,白给的空间抠得很小,照片攒到一定量月费躲不掉。Lap 正相反,能力全在本地,代码开源,一分钱不收。

短板也很清楚。版本号还在 0.3,作者就一个人,冷门 bug 什么时候能修只能等。组织信息不回写文件这件事,意味着时间越久你对数据库的依赖越深,能备份,但换工具不轻松。

如果你最在意的是照片一张都别离开硬盘,又舍不得 AI 搜图这种现代能力,Lap 在开源这一档里算是完成度相当高的一个。它让「全在本地」和「够聪明」这两件常常互相打架的事同时成立,这比功能清单多几行更难。

建议先拿个小文件夹试水,摸清建索引和跑模型的耗时再放大图库。

仓库在 julyx10/lap

文章目录
  1. 1. 它拿你的文件夹当图库
  2. 2. 拔掉网线,它照样能找到照片
  3. 3. 同类工具里的位置
  4. 4. 同一个文件夹,好几种翻法
  5. 5. 挑片、查重、还有那些成对的文件
  6. 6. 有一条得提前说清楚
  7. 7. 装起来就两条命令
  8. 8. 什么人值得试
  9. 9. 个人项目,值不值得押