Lap:面向10万级本地照片库的离线AI管理器
给管理大型本地照片库的人用的离线桌面相册,AI和索引留在本机,不把文件锁进云端。
GitHub julyx10/lap 更新 2026-09-25 分支 main 星标 2.9K 分叉 172
Vue Rust Tauri SQLite 本地照片管理 离线AI搜索 macOS/Windows/Linux

🧭 决策指南

适合,如果你

  • 你需要浏览100k+文件,并希望使用本地AI搜索、相似图和人脸功能。
    README 的 Why Lap 与 Features:支持100k+ files,且Local AI search在本机运行。
  • 你的照片已经按文件夹管理,不想导入封闭数据库。
    README 的 Why Lap:No library lock-in;Features:Folder-first workflow。
  • 你使用macOS、Windows 10/11或Debian系Linux桌面系统。
    README 的 Download Lap:列出macOS、Windows 10/11和Linux安装包。
  • 你需要同时处理RAW、JPEG/HEIC、Live Photos和视频。
    README 的 Features 与 Supported Formats:支持RAW + JPEG/HEIC pairs、Apple Live Photos及60+格式。

不适合,如果你

  • 你要求标签、评分和Smart Albums随文件复制到其他应用。
    README 的 Metadata, Collections, and Moving Files:这些数据存于Lap本地数据库,不写入EXIF、IPTC或XMP。
  • 你必须依赖云端照片服务或远程访问照片。
    README 的 Why Lap:Lap强调无强制上传、离线使用和本地AI;材料未提供云端同步或远程访问功能。
  • 你在Linux上需要视频播放,但无法安装GStreamer插件。
    README 的 Linux Video Playback:Ubuntu、Debian或Linux Mint视频异常时需安装gstreamer1.0-libav和gstreamer1.0-plugins-good。
  • 你的Windows环境不能接受未签名的MSI安装包。
    README 的 Download Lap:Windows包标注Unsigned,SmartScreen可能阻止下载。

前置条件

  • 运行现成版本:macOS提供_aarch64.dmg或_x64.dmg;Windows支持Windows 10/11 x64或ARM64;Linux提供Debian包和AppImage。
  • 从源码构建需要Node.js 20+、pnpm和Rust stable。
  • Linux视频播放需要README列出的GStreamer插件:gstreamer1.0-libav和gstreamer1.0-plugins-good。
  • 源码构建还会下载模型与FFmpeg sidecar,使用./scripts/download_models.sh和./scripts/download_ffmpeg_sidecar.sh。

第一步命令(README 原文)

brew tap julyx10/lap

要注意

  • 在Finder或Explorer外部改名、移动或替换文件,可能打乱Collections和Ratings。
    README 的 Working with files outside Lap:外部文件变化会干扰仅存于Lap的数据。
  • 卸载应用不会删除照片,但删除数据库、缓存和配置会清除本地组织信息。
    README 的 Uninstall Lap 与 Metadata:原始媒体不被删除,但数据库和配置删除后组织及索引数据消失。
  • HEVC/H.265和VP9原生支持范围写明为macOS,其他平台可能需要兼容处理。
    README 的 Supported Formats:H.264全平台支持,HEVC/H.265和VP9原生支持注明为macOS。
  • Windows SmartScreen可能拦截_unsigned MSI,需要点击Keep anyway。
    README 的 Download Lap:Windows安装包未签名,并给出Keep anyway说明。

材料未说明

  • README没有给出100k+文件库所需的CPU、内存、磁盘或GPU规格。
  • README没有说明本地AI使用的具体模型名称、模型大小和首次索引耗时。
  • README没有提供不同平台上的扫描、搜索、缩略图生成或人脸聚类基准。
  • README没有说明数据库备份的自动化策略、恢复流程和数据库默认路径。
  • README没有说明5个版本、9位贡献者与最近10次提交对应的功能变更范围。

💡 深度解析

6
不适合 我会在 Lap、Finder/Explorer 和其他照片软件之间移动照片,并要求标签、评论、收藏、评分和智能相册规则写入 EXIF、IPTC 或 XMP;Lap 是否适合做跨软件主数据库?
适合读者: 需要把照片交给 Lightroom、Finder、Explorer 或其他照片软件继续处理,并要求标签和评分随文件迁移的摄影工作流用户

不适合把 Lap 当作跨软件共享元数据的主数据库,因为其组织信息默认属于 Lap 本地数据库,而不是照片文件。

  • README 明确列出 Collections、Tags、Comments、Favorites、Ratings、Culling states、Smart Albums、AI 数据和人脸数据都存储在本地数据库或库配置中。
  • 这些数据不会写入 EXIF、IPTC 或 XMP sidecar,复制、导出或移出 Lap 后也不会自动随文件携带。
  • Folder-first 只解决原始文件路径和文件夹控制,不等于组织元数据具备跨应用可移植性。
  • 如果你的核心约束是让其他软件读取标签和评分,Lap 的定位与要求不一致;README 提供的内容也没有说明内置的 EXIF/IPTC/XMP 写回功能。
  • Metadata, Collections, and Moving Files:"not written into EXIF, IPTC, or XMP sidecars"
  • Metadata, Collections, and Moving Files:Collections、Tags、Comments、Favorites、Ratings、Smart Albums 等存储在本地数据库
  • Metadata, Collections, and Moving Files:"This data does not travel with a file"
  • Why Lap:"No library lock-in" 仅描述文件夹优先,不代表元数据可移植
材料未说明:README 未说明是否计划或是否存在通过外部工具批量导出 Lap 元数据的官方流程。;README 未说明数据库备份能否在不同操作系统之间完整恢复组织数据。
适合 我有 100k+ 个本地照片和视频文件,希望在 macOS、Windows 或 Linux 上离线搜索,不上传照片,也不想把现有文件夹导入云相册;Lap 是否适合?
适合读者: 管理 100k+ 本地照片、重视隐私且不希望使用云账户的家庭相册用户

适合,因为 Lap 的设计目标正是离线管理大型本地图库,而不是云端同步。

  • README 明确写有 “Local-first by design”:照片留在自己的磁盘上,不要求云账户或上传。
  • “Built for large collections” 指向 100k+ 文件规模,功能包括日期、文件夹、位置、相机、镜头、标签、人脸和本地 AI 搜索。
  • 它支持 macOS、Windows 和 Linux,并通过文件夹优先工作流直接使用已有目录,不强制导入封闭媒体库。
  • 但 AI 搜索、人脸数据、缩略图和标签主要保存于本地数据库;这符合离线隐私目标,却意味着跨设备不会自动同步这些组织数据。
  • Why Lap:"Local-first by design"、"Built for large collections"、"optimized ... across libraries with 100k+ files"
  • Why Lap:"no required cloud account or upload"
  • Download Lap:macOS、Windows 10/11、Linux
  • Metadata, Collections, and Moving Files:AI search data、face data、thumbnails 等存储在 Lap 本地数据库
材料未说明:README 未给出 100k+ 文件在不同 CPU、内存和磁盘配置下的首次扫描耗时。;README 未说明多个设备之间是否存在数据库合并或组织数据同步机制。
适合 我维护 Vue/Vite 前端,机器上已有 Node.js 20+、pnpm 和 Rust stable;我想在 macOS 或 Linux 上从源码运行 Lap,而不是下载发行版,依赖是否清晰?
适合读者: 准备从源码构建桌面应用、已有 Node.js 20+、pnpm 和 Rust stable 环境的 Vue/Vite 工程师

适合,README 给出了完整的源码构建链路,且技术栈与 Vue/Vite 和 Rust 工程经验匹配。

  • Architecture 明确采用 Tauri + Rust、Vue + Vite + Tailwind CSS,数据层使用 SQLite。
  • Build from Source 要求 Node.js 20+、pnpm 和 Rust stable;这正对应你的现有环境。
  • README 同时列出 macOS 的 Xcode 命令行工具及 Homebrew 系统依赖、Linux 的 WebKitGTK 等依赖,并提供模型与 FFmpeg sidecar 下载步骤。
  • 首次运行命令链条是可执行的,但 Windows 与 macOS/Linux 的模型和 FFmpeg 脚本名称不同;如果只按 macOS/Linux 构建,README 提供的路径较直接。
  • Architecture:"Core: Tauri + Rust"、"Frontend: Vue + Vite + Tailwind CSS"、"Data: SQLite"
  • Build from Source:"Requirements: Node.js 20+, pnpm, Rust stable"
  • Build from Source:macOS system deps、Linux system deps、模型和 FFmpeg sidecar 下载命令
git clone --recursive https://github.com/julyx10/lap.git
材料未说明:README 未说明源码构建所需的最低磁盘空间、内存或 GPU 能力。;README 未说明当前源码分支与最新发布版 v0.3.2 的具体对应关系。
适合 我同时管理 CR3、NEF、ARW、JPEG/HEIC、Apple Live Photo 和视频,并要求 RAW 与配对文件在整理时保持关联、原始文件夹不被复制或打乱;Lap 是否适合?
适合读者: 使用 CR3、NEF、ARW、JPEG/HEIC、Apple Live Photo 和视频,并希望保留原有文件夹结构的摄影用户

适合,尤其适合需要混合媒体浏览而又不想放弃文件夹控制权的用户。

  • README 的 Supported Formats 列出了 CR3、NEF、ARW 等 RAW,以及 HEIC/HEIF、MP4、MOV 等格式,整体支持 60+ 种照片、RAW 和视频格式。
  • Features 明确支持 “RAW + JPEG/HEIC pairs displayed as one item”,并说明文件操作时会保持关联文件在一起。
  • Apple Live Photos 和 Google Motion Photos 可统一播放,并提供 Smart Album 筛选。
  • Folder-first workflow 支持多图库、拖放、复制粘贴导入、文件系统同步,以及按日/月/年组织导入;这些操作不要求复制原始文件到专有库。需要注意的是,复杂 RAW 渲染和视频解码的实际效果仍取决于平台。
  • Supported Formats:"Lap supports 60+ photo, RAW, and video formats";包含 CR3、NEF、ARW、HEIC/HEIF、MP4、MOV
  • Features:"RAW + JPEG/HEIC pairs displayed as one item, with linked files kept together during file operations"
  • Features:"Apple Live Photos and Google Motion Photos"
  • Features:"Folder-first workflow"、"Date-organized import"
材料未说明:README 未逐一说明每种 RAW 格式的预览、完整解码和编辑能力。;README 未说明不同相机厂商的 Live Photo 或 Motion Photo 变体兼容边界。
视情况 我使用 Windows 10/11 的 x64 或 ARM64 设备,希望安装一个免费、开源、无订阅的本地照片管理器;但我需要知道安装拦截和卸载后的数据边界,Lap 是否合适?
适合读者: 需要在 Windows 10/11 x64 或 ARM64 上部署免费开源照片管理器、但组织数据仍需保存在本机的家庭用户

视情况,功能和授权符合要求,但 Windows 的未签名安装包与本地数据库管理会增加部署注意事项。

  • Download Lap 提供 Windows 10/11 的 x64 和 ARM64 MSI 安装包,且项目数据标明许可证为 GNU GPLv3、最新版本为 v0.3.2。
  • README 明确提示 Windows 安装包未签名,SmartScreen 可能拦截,需要用户选择 “Keep anyway”;这对受管控设备或不允许绕过拦截的环境并不友好。
  • 卸载应用或删除数据库、缓存不会删除原始照片,但会移除标签、评分、收藏、AI 数据和缩略图等本地组织信息。
  • 因此它适合可接受本地数据库备份的个人设备,不适合要求签名安装、集中部署或自动跨设备同步的 Windows 环境。
  • Download Lap:Windows 10/11(x64 / ARM64)MSI;"Unsigned — if SmartScreen blocks the download, click Keep anyway"
  • Why Lap:"Open source and free"
  • 项目数据:license 为 GNU General Public License v3.0;latest_release 为 v0.3.2
  • Uninstall Lap:卸载或删除数据库和缓存不会删除原始照片
  • Metadata, Collections, and Moving Files:组织数据存储在本地数据库
材料未说明:README 未说明企业或家庭多设备部署时是否支持静默安装参数。;README 未说明 Windows ARM64 上 AI 模型、视频处理和缩略图生成是否与 x64 完全一致。;README 未说明数据库备份的具体位置、格式和自动备份策略。
视情况 我在 Ubuntu、Debian 或 Linux Mint x64 上管理包含 H.264、HEVC/H.265 和 VP9 的视频,希望直接使用 AppImage 或 DEB;Lap 在我的环境里是否稳妥?
适合读者: 使用 Ubuntu、Debian 或 Linux Mint 的 x64 用户,需要浏览 H.264、HEVC/H.265 和 VP9 视频

视情况,Linux 安装路径明确,但视频能力和发行版环境之间仍有未说明的依赖。

  • Download Lap 提供 Linux x64 的 _amd64.deb 和 _amd64.AppImage;DEB 目标发行版包括 Ubuntu、Debian、Linux Mint。
  • Supported Formats 写明 H.264 在所有平台支持,并在原生播放不可用时进行自动兼容处理。
  • 同一章节只明确说 HEVC/H.265 与 VP9 在 macOS 原生支持,没有承诺它们在 Linux 上同等可用。
  • Build from Source 的 Linux 依赖示例包含 libwebkit2gtk-4.1-dev 等系统库,但 README 未在提供内容中列出 Linux 播放所需的具体 GStreamer 插件,因此无法仅凭 README 保证三类编码都能顺畅播放。
  • Download Lap:Linux x64 `_amd64.deb` / `_amd64.AppImage`,目标包括 Ubuntu、Debian、Linux Mint
  • Supported Formats:"H.264 playback is supported on all platforms"
  • Supported Formats:"HEVC/H.265 and VP9 are natively supported on macOS"
  • Build from Source:Linux system deps 示例
材料未说明:README 未说明各 Linux 发行版需要安装哪些 GStreamer 插件。;README 未说明 Linux 上 HEVC/H.265 和 VP9 的实际硬件解码或兼容处理范围。

✨ 核心亮点

  • 100k+文件库仍强调流畅浏览
  • 本地AI支持搜索、相似图与人脸
  • 文件夹优先,不导入封闭数据库
  • 支持60+照片、RAW和视频格式

🔧 工程化

  • Vue、Vite与Tauri组成跨平台桌面界面
  • SQLite保存Smart Albums、标签与AI索引
  • 支持地图聚类、RAW配对和四窗格比较
  • macOS、Windows 10/11与Linux均有安装包

⚠️ 风险

  • 标签和评分存本地数据库,不随文件导出
  • 外部移动文件可能破坏Lap内组织信息
  • Windows安装包未签名,可能触发SmartScreen
  • Linux视频依赖GStreamer插件播放
  • 删除数据库会移除索引但不删原始照片

👥 适合谁?

  • 管理100k+本地文件且拒绝云上传的个人用户
  • 需要Vue、Rust与SQLite桌面栈的开发者
  • 使用RAW、HEIC、Live Photos的多平台用户