Skip to content

Latest commit

 

History

624 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ImagePilot - AI 智能照片分类管理工具

Repo License Platform AI

📖 项目简介

ImagePilot 是一款隐私优先的智能照片分类管理工具:默认全程本地离线分类(设备端 ONNX),可选配置你自己的大模型做在线增强;并内置从 GitHub 一键升级的能力。支持 iOS / Android(React Native)与 PC 桌面(Electron / react-native-web)。iOS 与 Android 功能已对齐(修图、时刻秀及导出含背景乐、本地分类等两端一致);iOS 版已正式上架 Apple App Store,Android / Windows / macOS 通过 GitHub Releases 分发。

本项目以 PolyForm Noncommercial License 1.0.0 授权:非商业用途免费,商业用途须事先获作者书面同意(详见文末「授权 / License」)。早期基于上游 ImageClassifier 起步,现已作为独立产品演进(移除原作者公网后端、统一走用户自配大模型、自建 GitHub 升级通道等)。上游致谢见文末「致谢」。

名称说明:「芯图相册」为沿自上游项目的早期名称,已正式停用,今后统一使用「ImagePilot」。当前产品相对早期版本已完成全面重构与大规模改版(架构、UI、功能、分发渠道均不相同),与旧名称所指的早期项目不再等同。

核心优势

  • 🤖 AI智能识别 - 内容/颜色分类由 AI 完成,效果取决于所选模型;默认使用设备端 ONNX 本地模型,也可选配在线大模型
  • 🔒 隐私可控 - 本地分类与全部修图均不联网、不上传;唯一的联网情形是您主动配置在线大模型后,分类请求发往您自己指定的服务商(不经任何作者/第三方服务器)
  • 高效快速 - 优化的算法确保处理速度,大批量照片也能快速完成(Android 扫描经 MediaStore 优化)
  • 🎯 多维度分类 - 支持8大分类维度:内容、城市、颜色、存储、格式、分辨率、方向、相似组
  • 🏷️ 自定义分类 - 自定义类别与规则,配置在线大模型后由其按规则打标归类
  • 修图工具 - 本地纯 JS 滤镜 + 设备端 AI 超分(Real-ESRGAN),全程离线、移动端与 PC 均可用
  • ✏️ 灵活可控 - AI分类结果支持手动调整
  • 🎨 简洁易用 - 清晰直观的界面设计,简单四步即可完成照片整理
  • 💰 完全免费 - 无广告、无内购、无会员/额度、开源免费

✨ 核心功能

📋 多维度智能分类

ImagePilot支持8大分类维度,从多个角度智能管理您的照片:

分类维度 图标 分类方式 说明
按内容分类 📷 🤖 AI分类 识别照片内容,支持单人照、社交活动、宠物、美食、旅行风景、证件照等。默认走设备端 ONNX 本地模型;配置在线大模型后改由该模型识别
按城市分类 🏙️ 💻 本地算法 仅基于照片 EXIF/GPS 文件信息 + 离线反向地理编码匹配城市,按拍摄地点归类,不联网、不做图像内容感知
按颜色分类 🎨 🤖 AI分类 AI识别照片的主要颜色,按颜色主题分类(蓝色、绿色、红色等)
按存储分类 📁 💻 本地算法 从文件路径提取目录信息,按存储位置分类(相机、微信、QQ等)
按格式分类 🖼️ 💻 本地算法 从文件MIME类型或扩展名提取格式信息(JPEG、PNG、HEIC等)
按分辨率分类 📐 💻 本地算法 从图片元数据提取宽高像素,智能识别标准分辨率(4K、1080p、720p等)
按方向分类 🔄 💻 本地算法 根据照片宽高比计算方向,自动分类(横屏、竖屏、全景、正方形)
相似组分类 🔗 💻 本地算法 使用颜色直方图、时间窗口、文本相似度等算法,自动识别相似照片并分组

分类方式说明:

  • 🤖 AI分类:默认使用设备端 ONNX 本地模型(离线、免费、不上传);也可在「设置 → AI 模型设置」配置在线大模型,此时分类请求发往您自己指定的服务商
  • 💻 本地算法:使用本地算法处理,无需联网,速度快,保护隐私

📋 内容分类详情

自动识别照片内容,覆盖 20 个内容类别(识别效果取决于所选模型——设备端本地 ONNX 或您配置的在线大模型):

  • 👤 单人照 · 👥 社交活动 · 🧒 儿童 · 🐱 宠物萌照
  • 🏞️ 旅行风景 · 🌃 夜景 · 🏛️ 建筑 · 🌿 植物花卉
  • 🍔 美食记录 · 🚗 车辆 · 🏃 运动健身 · 👗 服饰穿搭
  • 🛍️ 商品 · 💻 电子产品 · 📄 文档票据 · 🪪 证件照
  • 🎨 艺术绘画 · 🐰 卡通表情 · 📱 手机截图 · 🔲 二维码
  • 📷 其它 - 无法归入上述类别的照片

设备端「AI 智能识别」采用 MobileCLIP2-S2(CLIP 多模态,零样本语义识别),比传统物体分类更懂抽象场景与氛围;并支持在「自定义分类」里删除用不到的内置类别(照片回到「待分类」,可随时恢复)或新增自定义类别。

⚙️ 分类控制面板

在设置页面提供分类控制面板,您可以根据个人使用场景,自由选择需要显示哪些维度的分类:

  • 🏙️ 城市分类 - 按拍摄城市分类
  • 🎨 颜色分类 - 按颜色主题分类
  • 📁 存储分类 - 按存储位置分类
  • 📄 格式分类 - 按文件格式分类
  • 📏 分辨率分类 - 按分辨率分类
  • 🧭 方向分类 - 按拍摄方向分类
  • 🔗 相似照片 - 相似照片分组
  • 📸 最近照片 - 最近添加的照片

所有分类维度都可以独立开启或关闭,让首页更加简洁和个性化。

✨ 修图(全设备端 · 一键预设 + 可调滤镜)

修图功能全部在设备端本地完成,不联网、不上传,移动端与 PC 均可用:

  • 🔍 AI 清晰增强(超分) - Real-ESRGAN x4,onnxruntime 设备端推理,分块处理大图
  • ✂️ AI 抠图 - U²-Net 显著性分割,自动剥离主体并铺白底
  • 🩹 物体消除(涂抹) - MI-GAN 修复,手指涂抹要去除的区域即可
  • 💄 人像美颜 - 保边平滑 + 提亮 + 暖肤气色,免模型(纯 jimp,秒级)
  • 🌈 色彩优化 - 单次像素扫描(饱和/对比/亮度),约 10× 快于链式滤镜
  • 📄 证件矫正 - 自动找四角 + 可调手柄 + 透视矫正 + 扫描增强
  • 🎨 滤镜编辑器 - jimp 纯 JS:黑白 / 复古 / 鲜艳 / 淡雅 / 暖冷色 / 胶片 / 柔化 / 反色,可调强度
  • 👀 前后对比 - 预览支持「按住看原图」,松手回到处理后效果

大尺寸 AI 模型(超分大/抠图/消除)首次使用时按需从 GitHub Release 下载,安装包瘦身至 ≈192MB;下载与推理进度在处理蒙层实时显示,← 可随时退出。

🔧 手动配置 LLM 大模型(可选)

默认情况下内容/颜色分类使用设备端 ONNX 本地模型,免费、离线、不上传。如需更强的识别能力,可在「设置 → AI 模型设置」手动配置在线大模型:

  • 由单一开关 aiProvider.active 决定路由:未配置时为 local-onnx(本地);配置后所有 AI 分类统一走您选择的在线大模型。
  • 支持的服务商:OpenAI、Kimi(Moonshot)、Claude(Anthropic)、Gemini(Google)、Azure(OpenAI 兼容/自定义 Custom)、Ollama(PC)
  • 填写 Base URL / 模型名称 / API Key 即可(API Key 安全存储)。所选模型若不支持图像,会提示改用多模态模型。
  • 数据只发往您选择的服务商,不经任何作者/第三方服务器。本项目不存在作者后端、会员或额度系统。
  • 图片上传规格(压缩后传,不传原图):上传前每张图统一压成 长边 768px / JPEG 质量 85(保宽高比,小图不放大)。视觉大模型内部本就会把图降采样到 768 的 tile 再编码,传更大几乎不增准度、纯浪费带宽与时间;768/q85 单张约 80200KB,比原图(手机 HEIC 常 4~12MB)上传体积小一个量级,大图也不会卡。常量见 CLOUD_LLM_MAX_EDGE / CLOUD_LLM_JPEG_QUALITY(Android/iOS scanner 各一份,保持一致)。

🏷️ 自定义分类

在「设置 → 自定义分类」中可定义自己的类别(id / 名称 / 规则):

  • 配置在线大模型后,分类时会把自定义类别与规则拼进提示词,由大模型按规则打标,结果归入对应类目。
  • id 仅限字母/数字/下划线(便于大模型稳定输出),且不能与内置类别冲突。
  • 该功能依赖在线大模型;仅使用本地 ONNX 模型时不会应用自定义规则。

🔄 应用内更新

直接从本项目的 GitHub Releases 升级,无需第三方应用商店:

  • 启动自动检查:每次启动静默检查 chunguangwei/ImagePilot 的最新发布;有新版才弹窗提示。
  • 手动检查:「设置 → 检查更新」随时查看当前版本与最新版本。
  • 一键下载:检测到新版后点击「前往下载」,浏览器下载最新 APK,由系统安装器完成安装。
  • 网络容灾api.github.com 不可达时自动回退 releases.atom,仍不可达则引导打开发布页手动下载。

发布方式:在 chunguangwei/ImagePilot 打 Release、tag 用语义化版本(如 v1.2.0)、并把 APK 作为 Release 资产上传,客户端即可检测并引导下载。

📝 更新日志

v1.5.75

  • 🖼️ 时刻秀封面可正常修改:创建/编辑时刻秀选择的封面现在都能保存生效,不再回退到第一张(含模板时刻秀)。
  • 🏙️ 「按城市」优先显示最近去过的城市:首页折叠区改为按「最近去过」排序,最新城市不再被照片多的老城市淹没;城市超过 8 个时点「显示更多 (N)」查看完整列表。「重新检测」改为增量扫描(只处理没扫过的新照片→提取 GPS→补全城市→刷新),既能发现新城市又保持快。
  • 📸 「最新发现照片」不再长期空白:基于「上次扫描后新增」的时间窗为空时,自动回退展示最近入库的照片。
  • 📱 Android「最新发现照片」纳入所有来源:改用入库时间(DATE_ADDED)过滤排序,截图、下载、微信/QQ 保存的图片也会出现,不再只显示相机拍摄的照片。
  • 🗺️ 位置补全后新城市即时显示,无需重启应用。
  • 📍 离线城市库大幅扩充 + 省份兜底:内置城市从 ~55 扩到 ~213,补齐云南全部州市(大理/丽江/香格里拉/西双版纳等)及全国主要地级市,修复这些地方照片识别不出城市;无对应城市时按最近省份归类,不再落「未知」。(离线、零下载)

v1.5.74

  • 🖼️ PC 端新增「以图搜图」(CLIP 向量语义检索):桌面端搜索页可选一张图,按内容语义在全库找相似(同是狗/同场景,与颜色构图无关)。首次用会引导下载 AI 识别模型(约 147MB,从 ModelScope 下载到本地、带进度可取消)并建立一次向量索引(可中断续建),之后毫秒级检索。复用桌面已验证的 ONNX 推理路(onnxruntime-node/web + Canvas 预处理),向量存本地独立索引库,全程离线。视频暂不参与(桌面无抽帧)。

v1.5.73

  • 🤖 修复 Claude / Gemini 云端大模型配置不上(双端):AI 模型设置里此前只能配 OpenAI / Kimi / Ollama / 自定义,Claude(Anthropic)和 Gemini 的 API Key 存不进去(配置控制器漏注册这两家 provider)。补齐后桌面端和移动端都能正常填 Base URL / 模型 / Key、测试连接并保存。底层云端调用链(搜索✨润色、AI 描述、时刻秀润色走云端)本就通,这一修复让「PC 大模型走云端」真正可用。Key 持久化到应用私有沙盒,重启不丢。

v1.5.72

  • 🔍 PC 端新增「搜索」:桌面端可搜照片和视频,两种模式——①默认搜索(关键字 / 分类 / 城市 / 时间 / 格式 / 分辨率 / 方向 / 大小)②AI 搜索(像说话一样描述画面,按 AI 描述的语义匹配)。配了云端大模型时可一键 ✨润色把口语查询规整成画面描述。点结果看大图为内嵌全屏查看器,支持左右切换 / Esc 关闭(视频可直接播放)。首页入口置顶。复用与移动端同一份纯本地文字检索逻辑、零联网。PC 拉齐 🟢 档。

v1.5.71

  • 🖥️ PC 端补齐三个功能:①回忆(那年今天/节日回忆/旅行回忆,点开看照片)②重复清理(找出完全重复照片、逐组或一键清理)③备份与还原(导出备份到选定目录、列表、还原、删除)。均复用与移动端同一份逻辑;备份的文件读写适配为桌面 fs。PC 拉齐 🟢 档第二批。

v1.5.70

  • 📊 PC 端新增「相册报告」:桌面端可查看相册统计(照片/视频总量、占用空间、年度分布、Top 分类/城市、拍照最多的一天、最长视频、AI 描述覆盖),桌面大屏多列卡片布局。复用与移动端同一份本地聚合逻辑、零联网。PC 端拉齐 🟢 档第一个。

v1.5.69

  • 🗂️ PC 端新增「分类文件物理迁移」:桌面端可一键把选中分类的照片,按分类移动或复制到「目标根目录/分类名/」物理目录(移动端是逻辑分类,PC 利用文件系统真实整理)。选目标文件夹 + 勾分类 + 选移动/复制(移动二次确认);同名自动加序号绝不覆盖、未分类跳过、跨盘移动自动 fallback;迁移后同步 DB 路径、刷新缩略图。PC 端专属。

v1.5.68

  • 🎚️ 润色/查询改写时可选模型:当端侧大模型和在线大模型都可用时,点✨润色会弹框让你选这次用「本地大模型(免费/隐私/离线)」还是「在线大模型(更快)」——解决之前静默走端侧、看不出用了哪个的问题;只有一个可用时直接用、不打扰。时刻秀润色 + AI 搜索改写两处都生效。

v1.5.67

  • 🐛 修复安卓扫描秒完成后通知栏卡「Starting scan...」不消失:增量扫描无新图秒完成时,停止前台服务用的 stopService 取消不了仍 pending 的 startForegroundService,导致服务在停止后才启动、通知卡死。改为停止命令也走 onStartCommand 队列(串行排在启动之后),并加 startForeground 防御。仅安卓(iOS 无此前台服务,不受影响)。

v1.5.66

  • 🔆 模型下载 / 图片分类运行时防自动锁屏:长任务进行中保持屏幕常亮,屏幕到了系统自动锁屏时间也不熄屏、任务不中断(尤其解决 iOS 锁屏即挂起导致分类/下载停掉的问题);任务结束自动恢复正常锁屏、省电。iOS(isIdleTimerDisabled)/ 安卓(FLAG_KEEP_SCREEN_ON)双端,零第三方依赖。

v1.5.65

  • 🤖 时刻秀润色 / AI 搜索查询改写支持端侧大模型:原先纯文本润色只能用在线大模型,现复用端侧多模态模型(Gemma)——已下载 VLM 模型时优先端侧(免费/隐私/离线),未下载或失败则无缝回退云端。端侧任何问题都不影响现有云端润色。

v1.5.64

  • ✨ 整库扫描后引导升级「AI 智能识别」:默认基础物体识别对抽象场景/氛围识别有限,首次扫描完成后弹一次性引导卡,推荐升级到端侧 clip 模型(速度/精度最佳平衡),一键跳设置下载。一次性、可忽略、永不重复打扰;双端共用。

v1.5.63

  • 🐛 修复 iOS 点「场景识别 / AI 智能识别」模型下载闪退:v1.5.61 的「按地区选源」误引用了未安装的 react-native-localize,缺失模块的 require 绕过 try/catch 成为未捕获 JS 致命异常 → 下载即崩。改用 RN 内置系统 locale(零依赖、永不缺失)判断地区,并给下载选源加防御兜底(任何异常都退回原始源、绝不崩)。

v1.5.62

  • 📮 新增「意见反馈」入口(设置 → 关于):一键调起邮件发给作者,自动预填 App 版本/构建号/系统信息,便于定位问题;无邮件应用时自动复制邮箱兜底。iOS / 安卓双端。

v1.5.61

  • 🌍 模型下载按地区自动选源(为全球上线):国内(中国大陆)走 ModelScope 直连国内 CDN,海外走 GitHub 直连,两者互为兜底——海外用户首次下模型不再卡国内 CDN 超时。

v1.5.60

  • 🚀 模型下载切换到 ModelScope(国内更稳更快):场景/CLIP 识别、超分、抠图、消除等设备端模型改从魔搭 ModelScope(直连国内 CDN)下载,比 GitHub 更稳定;GitHub Release 自动保留为兜底源。已下载过模型的用户不受影响(本地缓存继续用)。

v1.5.59

  • 📐 模板二期·多画幅:模板按风格自带画幅——竖屏 9:16(婚礼/生日/学习…)、横屏 16:9(旅游/在路上/家庭/职场…)、方形 1:1(咖啡)。导出视频按对应画幅出片(发抖音/B 站/朋友圈各得其所),片头/片尾标题卡也按画幅渲染。
  • 🔤 模板二期·标题卡排版:不同模板的标题卡用不同排版(字重/字号/字距/描边/斜体)——胶片宽字距斜体、冷灰电影感大字距、糖果粗黑、日系纤细,观感更有辨识度。(定制中文字体体积过大未打包,用系统字体做排版差异。)
  • 🛡️ 顺手修:编辑模板时刻秀时改名/描述不再清掉模板效果(保留已生成的帧)。
  • 🎨 图标走查第二批:照片详情页的 📷 ISO/光圈/快门/焦距🤖 AI 描述🔍 检测结果、编辑铅笔等裸 emoji 全换成矢量图标,详情页更统一精致。

v1.5.58

  • 🎨 模板滤镜调色加强:之前调色太克制、不同模板照片几乎看不出差别。现在大幅提升各风格强度(尤其阴影/高光分离调色),暖奶油/青橙电影/褪色胶片/清新日系/糖果等一眼可辨,且控制肤色不过橙过粉。
  • 🛡️ 修复时刻秀套用模板偶发闪退(iOS):保存带模板的时刻秀、生成片头/片尾标题卡时,若背景图(iOS 相册 ph:// 图)还没加载完就截图,会触发 view-shot 原生崩溃(偶发、无 JS 报错)。现在改为等背景图加载完再截、并先把背景图压成本地小图,更稳。

v1.5.57

  • 🗑️ 修复部分照片「图片信息不完整」无法删除:最新发现/未完全入库的照片可能暂无内部 id,之前一律拦死。现在物理删除改用 uri(id 仅用于数据库清理),有路径即可删。
  • 🎨 图标走查(第一批):时刻秀「选封面」入口、设置「浏览选择目录」、时刻秀「选择音乐」等改用矢量图标,替换原先写死在文案里的 emoji(📁🎵🖼✨),更统一更有质感。

v1.5.56

  • 🎵 安卓时刻秀导出也带背景音乐了:补齐安卓导出的背景乐合成(MediaCodec 把本地音乐转码 AAC、循环铺满视频时长,混音失败退纯视频)——至此 iOS / 安卓导出功能完全对齐(图片序列+交叉淡入+配乐)。
  • 🔢 修复 AI 向量索引覆盖率 >100% 与「补全无反应」:删图后残留的旧向量导致已索引数超过总数(如 577/572=101%),且「补全」算不出缺失而静默无反应。现在覆盖率只数当前存在的图、补全会清理失效残留并给完成提示(新增 N 张 / 已是最新)。
  • 📚 文档更新:README 标注 iOS 为已支持平台(与 Android 功能对齐,App Store 上架待提交)。

v1.5.55

  • 🖼️ 时刻秀「选封面」大图浏览:创建/编辑时刻秀时,「共 N 项」行右侧新增「🖼 选封面」——全屏按封面比例逐张看大图,点选即设为封面,不再靠 64px 小缩略图猜效果。
  • ⚡ 修复清晰增强返回后卡顿:之前点「清晰增强」后立刻返回,超分推理仍在后台逐块跑、占满 CPU 导致全局卡。现在返回即中断推理,秒回流畅。
  • 🧹 去掉 AI 修图处理读秒:美颜/增强/优化处理时 jimp 会占用线程,读秒会卡住、显示没意义,已移除(保留转圈 + 「← 可随时返回」)。

v1.5.54

  • 🎨 时刻秀模板滤镜升级为 LUT 风格调色:弃用原先简单的亮度/饱和度线性加减,改用电影级调色引擎(色调 S 曲线 + 阴影/高光分离调色 split-toning + 智能 vibrance)。暖奶油、青橙电影感、褪色胶片、清新日系等风格更有质感、更接近剪映/VSCO 的观感。

v1.5.53

  • 🎬 剪映式模板一键出片(一期):创建时刻秀时可选 25 套风格模板(婚礼/旅游/在路上/学习/生活/生日/萌宝/运动/毕业/美食/咖啡/宠物/情侣/家庭/职场/新年/圣诞/中秋…),一键自动套「全局滤镜 + 单图时长 + 转场 + 片头/片尾标题卡」出片。效果应用内全平台可见,导出 iOS 先行。(运镜/定制字体/文字动画/节拍卡点/多画幅为后续二期。)

v1.5.52

  • 🖼️ 旅行/节日回忆可换封面:在「时刻」Tab 长按旅行回忆或节日回忆卡片 → 从该回忆的照片里点选一张作封面,下次进页面仍保留(封面记忆持久保存)。

v1.5.51

  • 🗑️ 修复时刻秀长按看不到「删除」:之前加了「编辑」后菜单有 4 项,安卓系统弹窗最多只显示 3 个按钮把「删除」吞了。改成自定义底部动作面板(编辑 / 导出为视频并分享 / 删除 / 取消),安卓 iOS 都完整可见。
  • ✏️ 修复编辑时刻秀「加图后保存变新建」:编辑时用「+」加图,选图器返回会冲掉编辑身份,导致保存被当成新建、多出一个时刻秀。现已固定编辑身份,保存稳定覆盖原时刻。

v1.5.50

  • 🖼️ 时刻秀封面可选:编辑时刻秀时点任意缩略图即设为封面(金框 + 「封面」角标),默认用第一张;时刻卡按所选封面显示。
  • 🗂️ 加图可按分类筛选:时刻秀「加图」选图器顶部新增分类筛选条(全部 / 各分类,含自定义分类名),快速从某个分类里挑图,也可看全部。

v1.5.49

  • ✏️ 时刻秀可编辑啦:在「时刻」Tab 长按时刻秀卡 → 「编辑」,可改名称/描述、删图(缩略图角上 ✕)、加图(末尾「+」打开全相册多选选图器,已在时刻里的会标「已添加」)。保存即更新原时刻秀(不新建)。

v1.5.48

  • 🎬 安卓时刻秀也能导出视频啦:时刻秀「导出为视频并分享」补齐安卓端(原生 MediaCodec 合成 1080×1920 H.264,每张按放映间隔停留、张间交叉淡入),导出后直接系统分享发微信/存相册——iOS / 安卓两端拉平。(安卓背景音乐合成进行中,当前安卓导出为纯视频;iOS 仍带配乐。)

v1.5.47

  • 🙂 安卓美颜人脸识别大升级:安卓人脸检测从系统老 API 换成 Google ML Kit(自带模型、不依赖 Google 服务框架,华为等机型也能用),侧脸 / 歪头 / 暗光 / 小脸 / 戴眼镜的明显人脸不再漏检。检测彻底失败时也不再报错,会兜底对画面中心区域温和磨皮,保证美颜「总能出效果」。

v1.5.46

  • ✨ 修复生成时刻秀「✨ 生成描述」报错:点 ✨ 让 AI 按名字扩写描述时报 Cannot parse JSON from response ——模型直接返回了纯文本描述,旧逻辑却按分类的 JSON 强解析。现已把纯文本生成与分类拆开,描述会正常写入(搜索「✨ 改写」同源问题一并修掉)。
  • 🏷️ 相册报告「最常拍的内容」显示分类名:修复自定义分类在相册报告里显示原始 id(如 my_cat)的问题——现在统一解析为你给分类起的名字。此前该修复仅装到了 iPhone,本版随安卓包一并带上。

v1.5.44

  • 📤 时刻秀导出为视频并分享(iOS 先行):时刻 Tab 的时刻秀卡片长按 → 「导出为视频并分享」——原生合成 1080×1920 MP4(每张按放映间隔停留、张间交叉淡入、背景音乐循环铺满全片),完成后直接系统分享面板发微信/存相册。安卓导出版(MediaCodec)在路上。
  • 🎚️ 修图深度横向拉杆:美颜/清晰增强/色彩优化结果页新增深度滑杆(10%~100%),拖动选强度松手即重新出图;清晰增强的 AI 推理只跑一次,调深度秒级响应。
  • 🧴 美颜保边磨皮:修复"五官跟皮肤一起被磨糊"——只平滑低反差的肤色区域,眼睛/眉毛/嘴/发丝保持锐利,深色瞳孔不再被提亮。

v1.5.43

  • 🎬 时刻秀上线:多选照片/视频(分类网格、搜索结果、集合页三处入口长按多选)→ 命名(✨可按名字 AI 生成描述)→ 8 种转场(淡入/平移/缩放/推入/翻转/弹入/上浮/直切)→ 单图时长 → 🎵 本地背景音乐 → 存入「时刻」Tab 置顶区随时播放(长按删除)。视频混播:视频原地播放至结束自动衔接,配乐时自动静音。
  • 🧴 美颜只磨人脸:人像美颜改为仅作用于人脸区域(原生人脸检测,零依赖),边缘羽化自然过渡,背景衣物不再被磨;未识别到人脸会提示。
  • ☑️ 多选批量人工分类:搜索结果与集合页支持长按多选/全选 → 批量移入任意分类(含自定义分类)。
  • ✨ UI 质感:全局小图标矢量化(放映控制、视频角标、报告卡片、时刻页等),告别发虚的字符图标;年报分享文件名改为 ImagePilot-Report-日期。

v1.5.42

  • 🛡️ 修复安卓相册报告分享闪退:截图原生模块(RNViewShot)未注册进安卓包(本项目为手动注册制,新依赖漏接三件套)——已补 settings.gradle/build.gradle/MainApplication 注册。

v1.5.41

  • 🛡️ 修复安卓相册报告分享失效:分享出去的是文字路径而非图片(原生模块名/方法误用),现走 FileProvider 正确分享报告长图。
  • 🧹 全功能走查清理:英文界面统计页残留中文修正;放映页空集合退出加固;移除"时刻"迁移后的 ~130 行死代码(无可见变化)。

v1.5.40

  • 🕰️ 新「时刻」模块:底部导航新增 Tab——那年今天(带放映)、节日回忆、旅行回忆、随便看看全部入驻;首页相应瘦身(修复相似照片区按钮换行)。
  • 🛡️ 修复相册报告分享崩溃:更换截图实现(内容视图直接截取)。

v1.5.39

  • 🎞️ 幻灯片放映:那年今天/旅行/节日/任意集合一键全屏放映(淡入过渡、暂停、2s/3s/5s 调速),视频自动跳过。
  • 🎲 随便看看:按年份分桶随机抽 30 张"考古"老照片,再点换一批(相似照片区入口)。
  • 🎉 节日回忆:历年春节/国庆/中秋/元旦/五一/圣诞照片自动聚合卡片(含农历节日 2015~2026 对照)。
  • 📤 年报分享:相册报告一键截成长图分享(iOS 系统分享 / 安卓分享面板)。
  • ✨ 查询润色:AI 搜索可一键把口语化查询改写成检索友好描述(需配置在线大模型)。

v1.5.38

  • 🔍 搜索全维度:默认搜索新增 时间(2024/5月)、格式(jpg/视频)、分辨率(4k/1080p/横竖屏)、拍摄参数(ISO/光圈/快门/焦距)、目录、大小(10mb/大文件)等维度,可空格组合(如"杭州 2024 横屏");模式更名为「默认搜索 / AI 搜索」,空态各自给可点示例词。
  • 📈 分类体验:精细化描述仅在"单张图主动 AI 分类"时启用(长按目录恢复快速模式);多选分类进度改为全局悬浮胶囊——切页面回来还在,完成显示 ✅。
  • 📱 首页减噪:扫描消息条收进 header 状态小按钮(转圈/ⓘ,点开看完整消息)。
  • 🤝 华为安装缓解:更新包改存 Download 目录;华为/荣耀设备给出"禁止安装"绕行引导(关纯净模式或文件管理安装);附误报申诉文档。

v1.5.37

  • 🧳 旅行回忆优化:城市名清洗(不再显示 CN_unknown_ 等内部前缀,"杭州之旅 / Jakarta之旅");行程误报过滤——占比 ≥15% 的城市都算常驻地(双城生活不误判)、单日行程需 ≥8 张(路过邻市不算旅行)。相册报告的城市榜同步用干净名称。

v1.5.36

  • 🧳 旅行回忆:自动识别"出行"——异地连续拍摄的照片自动聚成"XX之旅"卡片(城市·日期·天数·张数),首页横滑浏览,点进集合网格回看整段旅程。
  • 📊 相册报告:首页右上角新增报告入口——照片/视频总量与体积、年度分布、最常拍的内容、城市足迹 Top5、拍得最多的一天、最长视频、AI 描述覆盖率,全部本地计算。
  • 🛡️ 稳定性:分类与向量索引构建互斥(防安卓并发推理 OOM 崩溃);索引建完即释放 CLIP 引擎内存。

v1.5.35

  • 🎬 视频入 AI 向量索引:建索引时视频自动抽中点帧编码——「AI 相似」「AI 搜图」现在能召回视频。
  • 🔬 单图 AI 分类精细化:对单张图主动 AI 分类时自动启用精细模式——描述升级为 50~80 字详描(主体/动作/场景/可见文字/细节),本地多模态与云端大模型均生效;批量扫描仍用短描述(快、省 token)。
  • 📊 分类进度平滑:批量分类逐张更新进度,百分比不再 20 张跳一格(界面数据刷新仍每 20 张节流)。
  • ⚙️ 设置页向量索引管理:相似度阈值下方新增「AI 向量索引」——显示覆盖率百分比、一键补全(增量带进度)、重建(清空全量重编)。
  • ⏱️ 安卓存量视频时长回填:扫描后自动为旧视频补时长角标(无需清库重扫)。
  • 应用商店功能文案更新(搜索三件套/找相似/视频/重复清理等)。

v1.5.34

  • 🧹 重复照片清理:首页「相似照片」区新增「重复清理」——找出字节级相同的多份拷贝(大小+拍摄时间+尺寸全同 + 直方图复核),按组展示(保留 1 张),单组清理或一键清理全部并显示可释放空间,删除走系统确认。
  • 🤖 向量索引自动维护:扫描完成后自动增量补新照片的 AI 向量(「AI 智能识别」模型已下载时),「AI 相似」搜索免手动建索引。

v1.5.33

  • 🔍 搜索大升级(三种搜法一个页面)关键字搜图(精确匹配)/ 语义搜图(写"狗在草地跑"也能命中相近描述)/ AI 搜图(选一张图 → 本地或云端识别 → 语义+颜色+CLIP 向量三路融合找相似,并显示"AI 识别为…")。
  • 🎯 找相似分双维度:预览页「找相似」可选颜色相似(构图/色调,找连拍翻拍)或 AI 相似(CLIP 向量、内容语义级,同图必命中);结果带相似度百分比(阈值 60% 真机校准)。AI 相似需下载「AI 智能识别」模型并一键建索引(增量、可中断)。
  • 🏷️ 分类交互重做:删除「开始分类」按钮,改为长按任意目录卡对该目录跑 AI 分类(本地/云端可选)——修复"点一个待分类、图片视频全跑";多选工具栏「AI 分类」同样支持引擎选择。
  • 📈 分类边跑边归位:每分好 20 张即刷新界面,不再等全部完成才有反应(双端)。
  • 🛑 安卓扫描可停止:实现原生 stopScan(架构文档设计但未实现)——基础扫描阶段(EXIF/截图检测)也能停,已处理的保留、剩余下次续扫。
  • 🕰️ 那年今天:首页新增历年同月同日的回忆横滑卡片。
  • ⏱️ 视频时长角标:缩略图显示 ▶ 0:32(双端 duration 入库,存量视频重扫后生效)。
  • 📦 备份/还原带 AI 描述:还原后描述不丢、搜索可用。
  • 🆕 新发现照片修复:改用上上次扫描作基准(修 iOS 不生效与"两次扫描间的照片永久漏掉");双端纳入视频。
  • ✏️ 其它:AI 描述编辑键盘不再挡按钮;英文界面内置分类描述本地化;相似度检测排除视频。

v1.5.32

  • 🎬 视频自动分类上线:抽取视频时长中点一帧(双端原生实现,≤1024px)喂给现有分类链路——基础/场景/CLIP/多模态档全兼容,多模态档还会给视频写 AI 描述;抽帧失败保持「待分类视频」不丢。首页「待分类视频」卡新增「开始分类」按钮。
  • ✏️ AI 描述可人工编辑:预览页信息面板点「AI 描述」即可编辑/添加(无描述也有"点此添加"入口),保存后立即可在搜索中按它找图——等于手动打标签。
  • 🤖 多选 AI 分类:分类页多选 → 工具栏「AI 分类」,对选中图/视频按设置的分类模型重跑(与「清理分类」配对:清完可立即重分)。
  • 视频体验重做:点视频改为进预览页(海报帧 + 居中 ▶ 播放钮)——查看信息、改分类、编辑描述都能用,点 ▶ 才进系统播放器(与系统相册一致);修图/滤镜按钮对视频自动隐藏。
  • 修复图片放待分类跑进视频桶:预览页分类选择器不再并列两个"待分类";数据层按介质双向路由(图→待分类、视频→待分类视频,混选自动拆分);已放错的存量数据下次扫描自动归位。
  • 细节:「开始分类」改居中小药丸不再挡 ▶ 角标(▶ 移右下);相似度检测排除视频;英文界面内置分类"查看"显示英文描述。

v1.5.31

  • 🔍 搜索功能上线:首页右上角新增搜索——按 AI 描述 / 分类名 / 文件名 / 城市 搜图(语义搜索靠多模态档写的 AI 描述;有未打描述的图会提示)。结果网格视频可直接播放、图片进预览。
  • 视频回待分类的归位:把已分类视频移回「待分类」或清理分类时,正确回到「待分类视频」(图片回图片待分类、视频回视频待分类)。
  • 视频手动分类计数即时更新:分类后「待分类视频」减、目标分类加,不再滞后。
  • 图片信息面板:分类置信度百分比不再被底部操作栏遮挡(面板加高 + 底部留白)。

v1.5.30

  • 修复安卓视频不在「按时间」里:视频的 DATE_TAKEN 常为 0 会被分到「更早」桶;改为回退 DATE_ADDED/DATE_MODIFIED,时间分桶对 takenAt=0 兜底回退 timestamp。

v1.5.29

  • 「待分类视频」卡片优化:有视频时显示最近一帧作底图(不再是突兀的纯图标);空态用摄像机图标。

v1.5.28

  • 修复安卓视频没进「待分类视频」:视频迁移改在"基础扫描完成"时执行,只扫描(不触发 AI 分类)也会归位。
  • 「待分类视频」卡片优化:名称简化为「待分类」、用摄像机图标作底图、右上角加播放角标——靠图标区分图片/视频两个待分类,避免长名字被截断。

v1.5.27

  • 「待分类视频」改为系统分类:不再出现在「内置分类管理」列表里(像「待分类」一样不可删/隐藏)。
  • App 内授权声明:设置 →「关于」新增「授权协议」——非商业免费、商业用途须事先授权,可点查看完整条款与联系邮箱。

v1.5.26

  • 视频浏览与手动分类(第一步):相册扫描现在包含视频,网格里带 ▶ 角标;点视频用系统播放器播放。未分类的视频单独归入「待分类视频」目录(排在「待分类」之后),可多选手动归类。iOS + Android 双端支持。自动分类视频留待后续。

v1.5.25

  • 自定义分类能被本地模型识别了(重要修复):此前本地多模态分类的清单只含内置分类,自定义分类根本没进去 → 符合规则的图全落"其它"。现已把自定义分类(含「规则」)补进清单,并参考在线模型重写了提示词,本地分类也能按规则归入自定义分类。
  • 清理分类:分类页多选后可「清理分类」——退回待分类 + 清空 AI 描述,便于重新分类(含归入新建的自定义分类)。
  • 查看内置分类:自定义分类页的内置分类管理中,每项新增「查看」,展示该类含义,方便照着写自定义规则。
  • iOS 编辑分类不再被键盘遮挡:编辑弹窗随键盘上移,保存按钮始终可点。

v1.5.24

  • 分类可随时停止(保留已分类):大模型逐张分类较慢时,扫描按钮变为「停止」——点一下即停,已分类的照片立刻归位保留,剩余未分类的下次扫描自动接着分,不用干等。批内逐张响应,任何档位都能即时停。
  • 清理:移除调试用的 VLM 诊断字段;修正构建注释。

v1.5.23

  • 多模态分类提速:把 Gemma 视觉 token 预算减半(视觉占推理大头),iOS / Android 都明显加快,对"粗分类 + 短描述"质量基本无感。Android 端 LiteRT-LM 同步升级到 0.13.1(与 iOS 同版本)。
  • App Store 隐私清单补全:补上「磁盘空间」Required Reason 声明,避免上架后的合规警告。

v1.5.22

  • 基础识别开箱即用(不再依赖联网):默认的「物体识别」模型随 App 打包(安卓 assets / iOS 资源包),首次使用零下载、纯离线——修复部分机型(如华为等国内网络)因连不上 GitHub 导致基础分类失败。
  • 下载加国内镜像:场景 / CLIP 等可选模型按需下载时,优先走国内 GitHub 加速镜像、直连兜底,避免首次下载失败。
  • 折叠屏自适应:首页分类网格/图标改为响应窗口宽度,折叠↔展开时尺寸实时跟随(此前首页只在加载时取一次屏宽、折叠后不变)。

v1.5.21

  • 删除照片两端对齐(iOS 修复):iOS 端「批量删除」之前只清了应用记录、Photos 图库里的照片仍在(RNFS 删不了图库资源)。改为走 PhotoKit 物理删除(系统弹一次确认),与单张删除、安卓行为一致——真删。
  • 设置页更清爽:「分类模型」「AI 增强模型」两段默认折叠,只显示当前选择,点开才展开完整选项与下载入口。
  • 折叠屏适配:折叠↔展开切换时分类网格图片尺寸实时重算(原先用加载时快照、不跟随窗口变化)。
  • 精简:移除已下线的 Qwen3-VL-2B 兜底档与 llama.rn 依赖(本地多模态统一用 Gemma4-E2B),减小包体。

v1.5.20

  • 新增「本地多模态大模型」分类档(Gemma4-E2B):在「分类模型」里新增端侧大模型档——用 Google LiteRT-LM + Gemma4-E2B 直接看图分类,并为每张图生成一句简短 AI 描述(显示在图片详情的「🤖 AI 描述」)。全程离线、仅你可见,分类质量明显优于轻量识别。
    • iOS / Android 双端打通:iOS 走官方 LiteRT-LM Swift 运行时(CPU 推理),Android 走 LiteRT-LM(GPU 加速,更快)。
    • 模型不打包、按需下载:~2.5GB,从 ModelScope(魔搭)国内直连下载,断点续传 + 文件头校验;下载前按机型内存提示。
    • 逐张进度:大模型档分类按张推进,进度条实时走动、描述逐张出现。
  • AI 描述显示修复:修复多模态分类生成的描述未传到界面缓存导致「分类了却看不到描述」的问题。

v1.5.18

  • 修图保存修复(iOS):滤镜保存因写入安卓专属目录在 iOS 报 ENOENT,改用跨平台相册写入。
  • 编辑结果可暂存:滤镜 / AI 增强后可「保存并暂存」,编辑结果直接进入暂存箱。
  • 删除内置分类后照片不再"消失":截图等元数据分类的照片在删除该分类后,会正确显示在「待分类」(展示层重映射,恢复分类即还原,完全可逆)。
  • 多语言修复:设置页「分类模型 / AI 增强模型」切换英文后不再残留中文。

v1.5.17

  • 安卓「AI 智能识别」追平 iOS:内容分类核心 MobileCLIP2-S2 由 fp16 改为 fp32。原 fp16 在安卓 onnxruntime 移动版上算子精度不足导致分类明显弱于 iOS(iOS 苹果芯片原生 fp16 正常);fp32 与 fp16 输出逐位等价(cos≈1.0),两端分类质量拉齐。
  • 内置分类可管理:「自定义分类」页新增内置分类管理——可删除用不到的默认类别(照片回到「待分类」不丢失,可逐个或一键恢复),删除的类别同时从首页展示与 AI 候选集中剔除。
  • 下载入口更清晰:「AI 智能识别」改为显式的下载按钮。
  • 通知图标修复:扫描通知大图标在部分 ROM(如 vivo)因系统缓存旧应用图标而显示异常,现显式渲染应用图标,绕开缓存。
  • CLIP 预处理优化:改为标准的居中裁剪(cover),纯 JS 实现,两端一致。
  • 精简:移除 SigLIP2-base、MobileCLIP-S1 备用模型与「本地辅助识别」冗余开关。

v1.5.x(此前)

  • 内容分类扩充至 20 类并引入多原型标定;新增 CLIP 设备端「AI 智能识别」档。
  • 首页加载动画、原生启动屏统一、targetSdk 35、macOS/Windows 桌面端构建等。

完整变更见各次 Release 说明

🚀 快速开始

系统要求

Windows版本

  • Windows 10 或更高版本
  • 4GB 以上内存(推荐8GB)
  • 500MB 可用磁盘空间

macOS版本

  • macOS 12 或更高版本
  • 4GB 以上内存(推荐8GB)
  • 500MB 可用磁盘空间

Android版本

  • Android 10 或更高版本
  • 2GB 以上内存
  • 100MB 可用存储空间

下载安装

iOS:App Store 下载(推荐)

Android:从 GitHub Releases 下载

  1. 打开 chunguangwei/ImagePilot Releases
  2. 下载最新版 ImagePilot-android-arm-<版本>.apk
  3. 在手机上点击安装(首次需允许「安装未知来源应用」)
  4. 装好后,应用会在启动时自动检查更新,后续升级一键完成

PC(Windows / macOS):从 GitHub Releases 下载

  1. 打开 chunguangwei/ImagePilot Releases
  2. Windows 选 ...-setup-<版本>.exe(安装版)或 ...-portable-<版本>.exe(免安装);macOS 选 ...-mac-arm-<版本>.dmg
  3. 也可从源码构建(见下方「开发指南」)

使用步骤

  1. 连接与设置 - 使用数据线连接手机与电脑,选定需要整理的相册目录
  2. 一键智能分类 - 点击"开始智能分类",AI将自动扫描识别
  3. 便捷拣选暂存 - 分类完成后,勾选需要处理的照片,一键移入暂存箱
  4. 最终清理或归档 - 进入暂存箱二次确认,删除或归档

📊 性能指标

指标 数据
分类准确率 取决于所选模型(设备端本地 ONNX 或您配置的在线大模型)
支持分类类别 9大类(内容分类)
多维度分类 8大维度(内容、城市、颜色、存储、格式、分辨率、方向、相似组)
AI分类维度 2个(内容、颜色)
本地算法维度 6个(城市、存储、格式、分辨率、方向、相似组)
隐私保护 本地默认离线;在线分类为可选,走用户自配服务商,全部修图均在本地完成
Android扫描速度 MediaStore 优化
哈希计算速度 原生多线程加速

🛠️ 技术架构

前端技术

  • React Native - 跨平台移动应用开发框架
  • React - Web/PC端界面框架
  • Electron - 桌面应用封装

AI技术

  • ONNX Runtime - 设备端高性能 AI 推理引擎(本地、离线)
  • MobileCLIP2-S2 - 设备端 CLIP 多模态模型,「AI 智能识别」内容分类核心(fp32,零样本语义识别,20 类多原型标定)
  • MobileNetV3 / Places365 - 可选的设备端物体 / 场景分类档(按需下载)
  • Real-ESRGAN x4(v3 小/plus 大可选)- 设备端超分增强(修图 AI 清晰增强)
  • U²-Net - 设备端显著性分割(修图 AI 抠图 + 证件文档边缘检测)
  • MI-GAN - 设备端图像修复(修图 物体消除)
  • 可选在线大模型 - OpenAI / Kimi / Claude / Gemini / Azure / Ollama,用户自行配置,分类请求发往用户指定服务商

数据存储

  • IndexedDB - 浏览器端结构化数据存储
  • AsyncStorage - React Native本地存储
  • SQLite - 移动端数据库(可选)

性能优化

  • 智能缓存 - 推理结果缓存,避免重复计算
  • 统一路由 - 由 aiProvider.active 决定走本地 ONNX 还是用户配置的在线大模型
  • 相似度优化 - 基于推理结果的快速相似度检测
  • MediaStore集成 - Android 平台使用 MediaStore API 加速扫描
  • 原生多线程哈希 - Android 平台原生多线程并行计算哈希
  • 并行处理 - 充分利用多核 CPU 提升处理效率

📁 项目结构

ImagePilot/
├── src/
│   ├── components/             # 可复用组件
│   ├── screens/
│   │   ├── desktop/            # 桌面端页面
│   │   └── mobile/             # 移动端页面(iOS 风格)
│   ├── services/               # 业务服务
│   │   ├── enhance/            # 修图:超分/抠图/消除/美颜/色彩/证件矫正/滤镜 + 模型按需下载
│   │   ├── ImageClassifierService.js    # 图片分类核心
│   │   ├── ImageSimilarityService.js    # 相似度检测(时间窗 ≥2 张)
│   │   ├── ImageStorageService.js       # 存储
│   │   ├── GalleryScannerService.js     # 相册扫描
│   │   ├── CityLocationService.js       # 离线反向地理编码
│   │   ├── UnifiedDataService.js        # 统一数据
│   │   ├── ConfigService.js             # 配置
│   │   ├── ImageEnhanceService.js       # 修图入口
│   │   ├── UpdateService.js             # 应用内更新(GitHub Releases)
│   │   ├── ParallelHashCalculator.js    # 并行哈希
│   │   └── …
│   ├── ui/ios/                 # iOS 风格 UI(Ionicons / 蓝色 i 图标 / 蒙层 spinner)
│   ├── adapters/               # 平台适配(WebAdapters / RNFS)
│   ├── i18n/                   # 中英文案
│   └── workers/                # Web Worker(PC 端哈希)
├── android/                    # Android 原生
│   └── app/src/main/java/com/imageclassifier/v2/
│       ├── MediaStoreModule.java        # 含 Android 11+ 删除授权(IntentSender)
│       └── …
├── pc-version-final/           # PC 桌面(Electron + react-native-web)
├── scripts/generate-build-info.js       # 构建时自动写 BuildInfo.js
└── package.json

设备端 ONNX 模型(超分大/抠图/消除)首次使用时按需从 GitHub Release 下载并缓存到 files/models/,不打入 APK——这也是 APK 从 234MB 瘦身至 ≈192MB 的核心改动。

🔐 隐私保护

  • 本地默认离线 - 默认的本地分类(设备端 ONNX)与全部修图(本地滤镜、本地 AI 超分)均不联网、不上传
  • 在线分类可选且透明 - 唯一的联网情形是您主动配置在线大模型后,分类请求发往您自己指定的服务商;不经任何作者/第三方固定后端
  • 无作者后端 - 已彻底移除原作者公网后端;不存在作者服务器、会员或额度系统
  • 不收集信息 - 不收集用户个人信息
  • 无广告追踪 - 无广告、无第三方追踪
  • 开源透明 - 代码完全开源,可审计

注意:仅当您在「设置 → AI 模型设置」中自行配置了在线大模型时,分类请求才会联网发往您指定的服务商;本地分类与所有修图功能不联网、不上传。

🔧 开发指南

环境准备

# 安装Node.js依赖
npm install

# PC版本开发
cd pc-version-final
npm install
npm start              # 开发模式
npm run build          # 构建生产版本
npm run electron-dev   # Electron开发模式
npm run electron-pack  # 打包桌面应用

# macOS版本打包
cd pc-version-final
npm run electron:build-mac      # 打包macOS DMG
npm run electron:build-mac-zip  # 打包macOS ZIP

# 移动版本开发
npx react-native start          # 启动Metro服务器
npx react-native run-android    # 运行 Android 版本(已验证平台)
npx react-native run-ios        # 运行 iOS 版本(已 Xcode 真机验证,与 Android 功能对齐)

已验证平台为 iOS、Android 与 PC 桌面(Electron / react-native-web)。iOS 版已正式上架 Apple App Store(功能与 Android 对齐)。

技术文档

📊 分类效果

内容分类类别

实际识别效果取决于所选模型(设备端本地 ONNX 或您配置的在线大模型),下表仅说明各类别含义:

分类类型 说明 分类类型 说明
单人照 个人照、自拍、肖像 电子产品 手机、电脑、数码设备
社交活动 聚会、合影、多人互动 文档票据 文档、表格、票据、聊天记录
儿童 儿童、亲子 证件照 身份证、护照、驾照等证件
宠物萌照 猫、狗等宠物照片 艺术绘画 绘画、插画、艺术作品
旅行风景 旅游景点、自然风光 卡通表情 卡通、表情包、二次元
夜景 夜晚、灯光、城市夜色 手机截图 手机屏幕截图、应用界面
建筑 建筑物、地标、室内外结构 二维码 二维码图片
植物花卉 花草、植物、绿植 商品 商品、包装、零售物品
美食记录 食物、餐饮、烹饪相关 运动健身 运动、健身、球类场景
车辆 汽车、摩托、交通工具 服饰穿搭 服装、穿搭、时尚
其它 无法归类到上述 20 类的照片

多维度分类支持

  • 按内容分类 - AI 识别,效果取决于所选模型(本地 ONNX 或在线大模型)
  • 按城市分类 - EXIF/GPS + 离线反向地理编码,不联网
  • 按颜色分类 - AI 识别主色调,支持多种颜色分类
  • 按存储分类 - 文件路径分析,支持按目录分类
  • 按格式分类 - 文件格式识别,支持JPEG、PNG、HEIC、WEBP等
  • 按分辨率分类 - 智能识别标准分辨率(4K、1080p、720p等)
  • 按方向分类 - 宽高比计算,支持横屏、竖屏、全景、正方形
  • 相似组分类 - 多算法融合,准确识别相似照片

🎯 使用场景

  • 📸 手机相册整理 - 快速清理手机中的海量照片
  • 🗂️ 照片批量分类 - 8大维度自动分类,告别手动整理
  • 💾 存储空间清理 - 找出重复和相似照片,释放空间
  • 🔍 快速查找照片 - 按内容、城市、颜色、存储、格式、分辨率、方向等多维度快速定位照片
  • 🎨 个性化分类 - 通过分类控制面板自定义显示的分类维度,并可自定义分类类别与规则
  • 本地修图 - 离线滤镜与设备端 AI 超分提升照片质量,移动端与 PC 均可用
  • 📱 隐私可控 - 本地分类与修图离线进行;在线分类为可选,发往用户自配服务商

📱 界面预览

当前 iOS 风格 UI(Ionicons 单色线性 + SF 字号/色板)已全面落地:首页分类网格、单图 AI 识别胶囊、设置页、修图蒙层 都已统一主题。截图待补充。

🤝 贡献指南

我们欢迎各种形式的贡献:

  • 🐛 报告Bug - 在 Issues 中提交问题
  • 💡 功能建议 - 提出新功能想法和改进建议
  • 📝 文档改进 - 完善使用说明和开发文档
  • 🔧 提交代码 - 修复Bug或添加新功能
  • 🌟 Star支持 - 给项目点星,支持项目发展

贡献步骤

  1. Fork 本仓库
  2. 创建您的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开一个 Pull Request

📚 相关资源

  • 📦 Releases - 下载最新版本与更新日志
  • 🐛 Issues - 反馈问题与功能建议
  • 📖 使用指南 - docs/User 下的使用与功能文档

🔐 权限说明

Android权限

应用需要以下Android权限:

  • READ_EXTERNAL_STORAGE - 读取外部存储中的照片
  • WRITE_EXTERNAL_STORAGE - 写入处理结果
  • READ_MEDIA_IMAGES - 读取媒体图片(Android 13+)
  • ACCESS_MEDIA_LOCATION - 读取媒体位置信息(用于城市分类,Android 10+)
  • MANAGE_EXTERNAL_STORAGE - 管理外部存储(可选)

Windows/macOS权限

  • 文件系统读写权限(安装时自动申请)

🏗️ 技术实现

架构设计

分类路由架构:

缓存查询(智能缓存,避免重复推理)
  ↓
AI 内容/颜色分类(由 aiProvider.active 决定)
  ├─ local-onnx:设备端 ONNX 本地推理(默认、离线、免费)
  └─ 在线大模型:用户在「AI 模型设置」配置后,请求发往用户指定服务商
  ↓
本地维度分类(城市/存储/格式/分辨率/方向/相似组,本地算法)
  ↓
相似度检测(智能去重)

AI模型

模型 用途 推理位置 加载方式 备注
MobileNetV3 内容/场景分类 设备端 ONNX 内置 默认本地分类核心
Real-ESRGAN x4v3 / x4plus 超分增强(修图) 设备端 ONNX 按需下载 小模型 5MB / 大模型 64MB,可在设置切换
U²-Netp 抠图 + 证件边缘检测 设备端 ONNX 按需下载 复用同一模型
MI-GAN 物体消除 设备端 ONNX 按需下载 涂抹蒙版 → 修复
用户配置的在线大模型 内容/颜色分类(可选) 用户指定服务商 API OpenAI/Kimi/Claude/Gemini/Azure/Ollama

性能优化

  • 智能缓存机制 - 推理结果缓存,避免重复计算
  • 相似度算法优化 - 基于推理结果的快速相似度检测
  • 并行哈希计算 - 使用 Web Worker(PC 端)和原生多线程(Android)并行计算图片哈希
  • MediaStore优化 - Android 平台使用 MediaStore API 替代文件系统遍历,加速扫描
  • 原生多线程处理 - Android 平台使用原生 Java 多线程并行处理,充分利用多核 CPU

📦 部署说明

PC桌面版打包

cd pc-version-final

# 构建应用
npm run build

# 打包Windows应用
npm run electron-pack

# 打包APPX(Microsoft Store)
npm run electron-pack-appx

# 打包macOS应用
npm run electron:build-mac      # DMG格式
npm run electron:build-mac-zip  # ZIP格式

Android APK打包

cd android

# 生成Release APK
./gradlew assembleRelease

# APK输出路径
# android/app/build/outputs/apk/release/app-release.apk

🐛 已知问题

Android 11+ 文件删除(已解决)

Scoped Storage 下,删除其他应用拍/截的图需要用户授权。v1.2.1 起接入 MediaStore.createDeleteRequest:删除时弹出系统授权对话框,同意即正常删除,拒绝则保留原图。本应用拍/截或自有目录下的图仍可直接删除,不会弹窗。v1.4.0 进一步在 unlink 后复核文件确实消失(避免 Scoped Storage 假成功),且系统授权删除后同步清掉 app 内 DB 残留记录,杜绝"提示已删除但相册还在"的鬼影。

EXIF位置信息

部分照片可能缺少GPS位置信息,导致无法按城市分类。

🔄 更新日志

v1.4.4(2026-05-29)

  • 🛠️ 修复"E_CORRUPT 下载 0MB":vivo 等机型上 RNFS 不跟 GitHub 302 重定向、伪成功落地 0 字节文件。现先用 fetch 把重定向跑完拿到 objects.githubusercontent.com 直链再交给 RNFS,进度条也跟着真能动了
  • 📡 显式带上 User-Agent/Accept 头,避免部分 CDN 对默认 OkHttp UA 冷处理

v1.4.3(2026-05-29)

  • ⬇️ 更新弹窗大改造:清洗 release notes 的 markdown 排版,再也不会乱码堆叠;下载进度条 + 百分比实时显示
  • 🎒 后台下载:下载中可点"后台下载"关掉弹窗,下载继续走,完成后自动弹出系统安装窗口
  • 🎨 配套美化:自定义分类 / 备份还原 的"编辑、删除、还原、分享"按钮全部换上 MaterialIcons,UI 一致性更强

v1.4.2(2026-05-29)

  • 📦 分类备份与还原:设置页新增入口,一键把"每张图归到哪个分类 + 自定义分类定义"导出到 Downloads/imagepilot-backup-*.json;换机/重装/清数据后在新机的同位置选文件即可一键还原,按 文件名 + 大小 + 拍摄时间 命中本地相册,不必再走云端 LLM 重新分类

v1.4.1(2026-05-29)

  • ✏️ 自定义分类可编辑:每项可改名称 / 规则 / 图标(id 因关系到历史归属图,仍只读)
  • 🧯 删除分类不丢图:删除自定义分类前,先把其下照片回归到「待分类」,再移除分类项——再也不会"删分类→图也没了"

v1.4.0(2026-05-29)

  • 🗑️ 删除可靠性:unlink 后复核 + 系统授权后清 DB —— 不再出现"已删除但其实没删"
  • 🧭 分类排序:「其它」恒定倒数第二、「待分类」恒定末位(首页 / 改分类弹窗 / 全部入口一致)
  • 🎨 统一图标主题:改分类弹窗与自定义分类管理改用 MaterialIcons + 圆形主题色背景,告别零散 emoji
  • 🏷️ 自定义分类带图标:新建时可在 18 个预设里挑一个;删除分类时其图标也随之消失

v1.3.0 及更早

查看 CHANGELOGReleases 了解早期版本详情。

📄 授权 / License

本项目采用 PolyForm Noncommercial License 1.0.0 授权(全文见 LICENSE)。 This project is licensed under the PolyForm Noncommercial License 1.0.0 (see LICENSE).

用途 / Use 说明 / Terms
非商业 / Noncommercial 个人、学习、研究、业余、非营利、教育、政府等用途 —— 免费使用、修改、分发。
Personal, study, research, hobby, nonprofit, educational, governmental use — free to use, modify, distribute.
商业 / Commercial 任何商业用途须事先获得作者书面同意
Any commercial use requires prior written consent from the author.

商业授权 / Commercial licensing:请联系 / contact chunguangwee@gmail.com

分发时请保留版权与 Required Notice 声明。Retain the copyright and Required Notice when distributing.

Copyright (c) 2026 Chunguang Wei(魏春光)

📞 联系与反馈

🙏 致谢

感谢所有使用和支持ImagePilot的用户!

特别感谢:

  • ONNX Runtime 团队提供的高性能推理引擎
  • MobileNetV3 与 Real-ESRGAN 模型的作者与社区
  • 上游项目 ImageClassifier(MIT,ImagePilot 早期基于其起步)
  • React Native 社区的优秀框架
  • 所有开源项目的贡献者

© 2026 ImagePilot. 保留所有权利.

让照片管理更智能,让隐私更安全

About

ImagePilot — 隐私优先的智能照片分类管理工具(本地离线 + 可选大模型 + GitHub 升级)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages