自架服務
julyx10/lap avatar
julyx10/lap

Lap:把大型照片庫留在本地文件夹里管理

適用於大型本地圖書館的離線優先照片管理器。它是雲端照片服務的一個注重隱私的替代方案:無強制上傳、本地人工智慧搜尋、資料夾優先工作流程,並且免費使用。

2,329 個 Star149 個 ForkVueGPL-3.0

秒懂

它是什麼?
Lap 是跨 macOS、Windows 和 Linux 的桌面照片管理器,在本地索引文件夹,提供搜索、整理、人脸识別和基础編輯。
適合誰用?
适合拥有大型本地照片庫、希望避免强制云端上传並能備份本地數據庫的用户。不适合要求標籤和集合随文件自動迁移到其他軟件的人。
可以商用嗎?
可以,但有條件。GPL-3.0 是 copyleft 授權:如果你散布包含它的軟體,就必須以同一授權公開該軟體的原始碼。只在內部執行、不對外散布,則不會觸發這項義務。
還在維護嗎?
有在維護。儲存庫最近一次提交在 4 天前。
用什麼語言寫的?
主要是 Vue(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

文件夹是资料庫的第一公民

Lap README 將它定位為隐私導向的云照片服務替代方案,核心工作流是直接索引已有文件夹,而不是把照片導入封閉的庫格式。搜索在本机执行,支持 macOS、Windows 和 Linux。項目使用 Vue、Tauri 與 Rust,許可證為 GPL-3.0 或更高版本。

文件夹优先让用户仍可在 Finder、资源管理器或其他工具中處理原始媒體。Lap 能重新扫描並發現許多外部變更,但 README 不保證只存在於本地數據庫中的集合成员身份会跟随外部移動或重命名。這個差异是选型時最需要先理解的边界。

本地浏览器覆盖哪些筛选维度

README 列出的庫浏览器可以按時間線、文件夹、位置、相机、镜头、標籤、收藏、評分、主題和人脸筛选。智能相册保存基於规则的視圖,收藏栏则能收集文件而不改變原始文件夹。應用還包含审查與比较工具、四圖像比较、重復項清理和裁剪、旋转、翻转、调整大小及基础调整。

項目声称支持超過 60 种照片、RAW 和視頻格式,並能识別 Apple Live Photos,在重命名、移動、復制和删除時保持 HEIC 與 MOV 配对。README 没有提供完整格式清單以外的性能數據,因此大型庫應從真實文件類型和目錄深度開始小规模導入。

本地 AI 搜索的范围與代價

Lap 的本地 AI 搜索支持文本查询、視觉相似性、主題、人脸聚類,並可选用超過 50 种語言進行搜索。README 還將人脸识別和 AI 組織能力放在設備本地運行的功能范围內。項目没有提供模型大小、首次索引時間、GPU 要求或內存曲線。

評估時應记錄索引前後的磁盘占用、CPU 與內存變化,並用一組已知人物和主題检查聚類结果。人脸數據和縮略圖属於 Lap 的本地索引信息,删除數據庫不会删除原始媒體,但也会影响這些組織结果,因此數據庫備份需要和照片備份分開驗證。

EXIF 留在文件,組織數據留在數據庫

README 说明索引時会從文件讀取拍摄日期、相机、镜头、GPS 和方向等 EXIF。集合、標籤、評论、收藏、評分、审核状態、显示方向、智能相册、AI 搜索數據、人脸數據、縮略圖以及缓存则保存在 Lap 的本地數據庫或配置中。編輯保存後会寫入用户选择的位置。

這意味着照片本身和 Lap 的管理視圖是两套數據。把文件交给其他應用時,集合、標籤和評分不会自動跟過去。依赖這些信息的用户應在 Lap 內完成移動和重命名,並先備份數據庫和配置,再驗證從備份恢復後原始路径是否仍能匹配。

發布包覆盖三類桌面系統

README 要求用户從最新發布頁下载对應系統的包。macOS 提供 Apple Silicon 和 Intel 的 `.dmg`,並注明经過 Apple 公證;Windows 10/11 提供 x64 與 ARM64 的 `.msi`,但未籤名,SmartScreen 可能阻止下载;Linux 提供适用於 Debian 系發行版的 amd64 與 arm64 `.deb`。macOS 還可通過 `brew tap julyx10/lap` 和 `brew install --cask lap` 安装。

卸载應用或删除數據庫不会删除原始照片,但自定義數據庫目錄需要單獨确认內容。Windows 安装包未籤名這一点應纳入組織軟件分發流程,不能只看應用是否能啟動。

從源碼構建需要模型與 sidecar

源碼構建要求 Node.js 20+、pnpm 和稳定版 Rust。README 给出克隆子模块、安装 Tauri CLI、下载模型與 FFmpeg sidecar,再運行 `cargo tauri dev` 的流程。架構使用 SQLite 存儲,前端是 Vue、Vite 與 Tailwind,關鍵庫包括 LibRaw、libheif、libjpeg-turbo、FFmpeg、ONNX Runtime、CLIP、InsightFace 與 Leaflet。

README 对視頻播放指出 H.264 跨平台處理,macOS 原生支持 HEVC/H.265 與 VP9,並建议 Linux 安装 gstreamer。仓庫记錄 2030 個 star、129 個 fork 和 44 個開放 issue,項目未归檔。README 没有性能基准、安全审計或生產结果,适合它的用户必須自行驗證索引耗時、數據庫備份和 GPL 合规。

先驗證數據庫與照片的獨立恢復

Lap 的本地优先設計需要把媒體備份和組織數據備份分開驗收。可以復制一組包含 HEIC、MOV、RAW、JPEG 和視頻的测试目錄,等待索引完成後建立標籤、集合、評分、人脸聚類和智能相册。接着在 Lap 內移動一张照片,再從 Finder 或资源管理器外部移動另一张,重新扫描並比较两者的關联结果。導出數據庫和配置,删除缓存後恢復,确认原始媒體没有被删除,組織信息能否重新匹配。再運行本地 AI 搜索和四圖像比较,记錄 ONNX Runtime 的资源消耗。README 没有给出大型庫基准或模型下载大小,因此 macOS、Windows 和 Linux 都應按真實照片類型單獨测试。

Lap 本地资料庫恢復记錄

Lap 的本地优先並不表示所有數據都会回到照片文件。测试應分別備份照片目錄、Lap 數據庫、配置、縮略圖和人脸索引,然後故意在外部重命名文件並重新扫描。对 Live Photos、RAW 與 JPEG 配对,检查移動、復制和删除是否保持關系;对 EXIF 編輯,比较文件內容和 Lap 數據庫中的显示结果。Linux 視頻播放還可能需要 gstreamer,源碼構建则依赖 Rust、模型和 FFmpeg sidecar。README 未给出索引速度和资源曲線,不能用桌面應用能啟動來推断大型庫可用。 继续记錄一次失败和一次恢復,比较命令输出、日志、配置與最终状態。README 未说明完整的迁移、回滚、權限和资源边界,因此這些结果只能作為当前版本在测试环境中的證據。确认通過後再固定依赖和發布標籤,並把敏感數據、凭證和個人资料排除在测试记錄之外。 Lap 的文件夹模型還要检查外部應用协作。用 Finder、资源管理器和命令行分別移動、復制和删除测试文件,观察重新扫描是否保留 EXIF、配对媒體和 Lap 組織信息。備份數據庫後升級發布包,再驗證路径和縮略圖是否可恢復。README 没有性能基准、數據庫迁移说明或安全审計,因此本地運行成功不代表大型资料庫可直接迁移。 這項復核還要保留输入、输出、版本和失败信息,才能区分工具本身的行為與环境配置造成的结果。README 未覆盖的细节不能补寫成保證,實際使用應把權限范围、數據位置、網络出口和清理動作逐項记錄。确认测试结果後,再决定是否進入团队流程,並為升級留下同样的回归入口。

編輯結論

适合拥有大型本地照片庫、希望避免强制云端上传並能備份本地數據庫的用户。不适合要求標籤和集合随文件自動迁移到其他軟件的人。先復制一小組照片建立测试庫,分別执行重命名、外部移動、集合標记和數據庫備份,确认文件安全與元數據恢復方式。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記