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;下载与推理进度在处理蒙层实时显示,← 可随时退出。
默认情况下内容/颜色分类使用设备端 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 资产上传,客户端即可检测并引导下载。
- 🖼️ 时刻秀封面可正常修改:创建/编辑时刻秀选择的封面现在都能保存生效,不再回退到第一张(含模板时刻秀)。
- 🏙️ 「按城市」优先显示最近去过的城市:首页折叠区改为按「最近去过」排序,最新城市不再被照片多的老城市淹没;城市超过 8 个时点「显示更多 (N)」查看完整列表。「重新检测」改为增量扫描(只处理没扫过的新照片→提取 GPS→补全城市→刷新),既能发现新城市又保持快。
- 📸 「最新发现照片」不再长期空白:基于「上次扫描后新增」的时间窗为空时,自动回退展示最近入库的照片。
- 📱 Android「最新发现照片」纳入所有来源:改用入库时间(DATE_ADDED)过滤排序,截图、下载、微信/QQ 保存的图片也会出现,不再只显示相机拍摄的照片。
- 🗺️ 位置补全后新城市即时显示,无需重启应用。
- 📍 离线城市库大幅扩充 + 省份兜底:内置城市从 ~55 扩到 ~213,补齐云南全部州市(大理/丽江/香格里拉/西双版纳等)及全国主要地级市,修复这些地方照片识别不出城市;无对应城市时按最近省份归类,不再落「未知」。(离线、零下载)
- 🖼️ PC 端新增「以图搜图」(CLIP 向量语义检索):桌面端搜索页可选一张图,按内容语义在全库找相似(同是狗/同场景,与颜色构图无关)。首次用会引导下载 AI 识别模型(约 147MB,从 ModelScope 下载到本地、带进度可取消)并建立一次向量索引(可中断续建),之后毫秒级检索。复用桌面已验证的 ONNX 推理路(onnxruntime-node/web + Canvas 预处理),向量存本地独立索引库,全程离线。视频暂不参与(桌面无抽帧)。
- 🤖 修复 Claude / Gemini 云端大模型配置不上(双端):AI 模型设置里此前只能配 OpenAI / Kimi / Ollama / 自定义,Claude(Anthropic)和 Gemini 的 API Key 存不进去(配置控制器漏注册这两家 provider)。补齐后桌面端和移动端都能正常填 Base URL / 模型 / Key、测试连接并保存。底层云端调用链(搜索✨润色、AI 描述、时刻秀润色走云端)本就通,这一修复让「PC 大模型走云端」真正可用。Key 持久化到应用私有沙盒,重启不丢。
- 🔍 PC 端新增「搜索」:桌面端可搜照片和视频,两种模式——①默认搜索(关键字 / 分类 / 城市 / 时间 / 格式 / 分辨率 / 方向 / 大小)②AI 搜索(像说话一样描述画面,按 AI 描述的语义匹配)。配了云端大模型时可一键 ✨润色把口语查询规整成画面描述。点结果看大图为内嵌全屏查看器,支持左右切换 / Esc 关闭(视频可直接播放)。首页入口置顶。复用与移动端同一份纯本地文字检索逻辑、零联网。PC 拉齐 🟢 档。
- 🖥️ PC 端补齐三个功能:①回忆(那年今天/节日回忆/旅行回忆,点开看照片)②重复清理(找出完全重复照片、逐组或一键清理)③备份与还原(导出备份到选定目录、列表、还原、删除)。均复用与移动端同一份逻辑;备份的文件读写适配为桌面 fs。PC 拉齐 🟢 档第二批。
- 📊 PC 端新增「相册报告」:桌面端可查看相册统计(照片/视频总量、占用空间、年度分布、Top 分类/城市、拍照最多的一天、最长视频、AI 描述覆盖),桌面大屏多列卡片布局。复用与移动端同一份本地聚合逻辑、零联网。PC 端拉齐 🟢 档第一个。
- 🗂️ PC 端新增「分类文件物理迁移」:桌面端可一键把选中分类的照片,按分类移动或复制到「目标根目录/分类名/」物理目录(移动端是逻辑分类,PC 利用文件系统真实整理)。选目标文件夹 + 勾分类 + 选移动/复制(移动二次确认);同名自动加序号绝不覆盖、未分类跳过、跨盘移动自动 fallback;迁移后同步 DB 路径、刷新缩略图。PC 端专属。
- 🎚️ 润色/查询改写时可选模型:当端侧大模型和在线大模型都可用时,点✨润色会弹框让你选这次用「本地大模型(免费/隐私/离线)」还是「在线大模型(更快)」——解决之前静默走端侧、看不出用了哪个的问题;只有一个可用时直接用、不打扰。时刻秀润色 + AI 搜索改写两处都生效。
- 🐛 修复安卓扫描秒完成后通知栏卡「Starting scan...」不消失:增量扫描无新图秒完成时,停止前台服务用的
stopService取消不了仍 pending 的startForegroundService,导致服务在停止后才启动、通知卡死。改为停止命令也走 onStartCommand 队列(串行排在启动之后),并加 startForeground 防御。仅安卓(iOS 无此前台服务,不受影响)。
- 🔆 模型下载 / 图片分类运行时防自动锁屏:长任务进行中保持屏幕常亮,屏幕到了系统自动锁屏时间也不熄屏、任务不中断(尤其解决 iOS 锁屏即挂起导致分类/下载停掉的问题);任务结束自动恢复正常锁屏、省电。iOS(isIdleTimerDisabled)/ 安卓(FLAG_KEEP_SCREEN_ON)双端,零第三方依赖。
- 🤖 时刻秀润色 / AI 搜索查询改写支持端侧大模型:原先纯文本润色只能用在线大模型,现复用端侧多模态模型(Gemma)——已下载 VLM 模型时优先端侧(免费/隐私/离线),未下载或失败则无缝回退云端。端侧任何问题都不影响现有云端润色。
- ✨ 整库扫描后引导升级「AI 智能识别」:默认基础物体识别对抽象场景/氛围识别有限,首次扫描完成后弹一次性引导卡,推荐升级到端侧 clip 模型(速度/精度最佳平衡),一键跳设置下载。一次性、可忽略、永不重复打扰;双端共用。
- 🐛 修复 iOS 点「场景识别 / AI 智能识别」模型下载闪退:v1.5.61 的「按地区选源」误引用了未安装的
react-native-localize,缺失模块的 require 绕过 try/catch 成为未捕获 JS 致命异常 → 下载即崩。改用 RN 内置系统 locale(零依赖、永不缺失)判断地区,并给下载选源加防御兜底(任何异常都退回原始源、绝不崩)。
- 📮 新增「意见反馈」入口(设置 → 关于):一键调起邮件发给作者,自动预填 App 版本/构建号/系统信息,便于定位问题;无邮件应用时自动复制邮箱兜底。iOS / 安卓双端。
- 🌍 模型下载按地区自动选源(为全球上线):国内(中国大陆)走 ModelScope 直连国内 CDN,海外走 GitHub 直连,两者互为兜底——海外用户首次下模型不再卡国内 CDN 超时。
- 🚀 模型下载切换到 ModelScope(国内更稳更快):场景/CLIP 识别、超分、抠图、消除等设备端模型改从魔搭 ModelScope(直连国内 CDN)下载,比 GitHub 更稳定;GitHub Release 自动保留为兜底源。已下载过模型的用户不受影响(本地缓存继续用)。
- 📐 模板二期·多画幅:模板按风格自带画幅——竖屏 9:16(婚礼/生日/学习…)、横屏 16:9(旅游/在路上/家庭/职场…)、方形 1:1(咖啡)。导出视频按对应画幅出片(发抖音/B 站/朋友圈各得其所),片头/片尾标题卡也按画幅渲染。
- 🔤 模板二期·标题卡排版:不同模板的标题卡用不同排版(字重/字号/字距/描边/斜体)——胶片宽字距斜体、冷灰电影感大字距、糖果粗黑、日系纤细,观感更有辨识度。(定制中文字体体积过大未打包,用系统字体做排版差异。)
- 🛡️ 顺手修:编辑模板时刻秀时改名/描述不再清掉模板效果(保留已生成的帧)。
- 🎨 图标走查第二批:照片详情页的
📷 ISO/光圈/快门/焦距、🤖 AI 描述、🔍 检测结果、编辑铅笔等裸 emoji 全换成矢量图标,详情页更统一精致。
- 🎨 模板滤镜调色加强:之前调色太克制、不同模板照片几乎看不出差别。现在大幅提升各风格强度(尤其阴影/高光分离调色),暖奶油/青橙电影/褪色胶片/清新日系/糖果等一眼可辨,且控制肤色不过橙过粉。
- 🛡️ 修复时刻秀套用模板偶发闪退(iOS):保存带模板的时刻秀、生成片头/片尾标题卡时,若背景图(iOS 相册 ph:// 图)还没加载完就截图,会触发 view-shot 原生崩溃(偶发、无 JS 报错)。现在改为等背景图加载完再截、并先把背景图压成本地小图,更稳。
- 🗑️ 修复部分照片「图片信息不完整」无法删除:最新发现/未完全入库的照片可能暂无内部 id,之前一律拦死。现在物理删除改用 uri(id 仅用于数据库清理),有路径即可删。
- 🎨 图标走查(第一批):时刻秀「选封面」入口、设置「浏览选择目录」、时刻秀「选择音乐」等改用矢量图标,替换原先写死在文案里的 emoji(📁🎵🖼✨),更统一更有质感。
- 🎵 安卓时刻秀导出也带背景音乐了:补齐安卓导出的背景乐合成(MediaCodec 把本地音乐转码 AAC、循环铺满视频时长,混音失败退纯视频)——至此 iOS / 安卓导出功能完全对齐(图片序列+交叉淡入+配乐)。
- 🔢 修复 AI 向量索引覆盖率 >100% 与「补全无反应」:删图后残留的旧向量导致已索引数超过总数(如 577/572=101%),且「补全」算不出缺失而静默无反应。现在覆盖率只数当前存在的图、补全会清理失效残留并给完成提示(新增 N 张 / 已是最新)。
- 📚 文档更新:README 标注 iOS 为已支持平台(与 Android 功能对齐,App Store 上架待提交)。
- 🖼️ 时刻秀「选封面」大图浏览:创建/编辑时刻秀时,「共 N 项」行右侧新增「🖼 选封面」——全屏按封面比例逐张看大图,点选即设为封面,不再靠 64px 小缩略图猜效果。
- ⚡ 修复清晰增强返回后卡顿:之前点「清晰增强」后立刻返回,超分推理仍在后台逐块跑、占满 CPU 导致全局卡。现在返回即中断推理,秒回流畅。
- 🧹 去掉 AI 修图处理读秒:美颜/增强/优化处理时 jimp 会占用线程,读秒会卡住、显示没意义,已移除(保留转圈 + 「← 可随时返回」)。
- 🎨 时刻秀模板滤镜升级为 LUT 风格调色:弃用原先简单的亮度/饱和度线性加减,改用电影级调色引擎(色调 S 曲线 + 阴影/高光分离调色 split-toning + 智能 vibrance)。暖奶油、青橙电影感、褪色胶片、清新日系等风格更有质感、更接近剪映/VSCO 的观感。
- 🎬 剪映式模板一键出片(一期):创建时刻秀时可选 25 套风格模板(婚礼/旅游/在路上/学习/生活/生日/萌宝/运动/毕业/美食/咖啡/宠物/情侣/家庭/职场/新年/圣诞/中秋…),一键自动套「全局滤镜 + 单图时长 + 转场 + 片头/片尾标题卡」出片。效果应用内全平台可见,导出 iOS 先行。(运镜/定制字体/文字动画/节拍卡点/多画幅为后续二期。)
- 🖼️ 旅行/节日回忆可换封面:在「时刻」Tab 长按旅行回忆或节日回忆卡片 → 从该回忆的照片里点选一张作封面,下次进页面仍保留(封面记忆持久保存)。
- 🗑️ 修复时刻秀长按看不到「删除」:之前加了「编辑」后菜单有 4 项,安卓系统弹窗最多只显示 3 个按钮把「删除」吞了。改成自定义底部动作面板(编辑 / 导出为视频并分享 / 删除 / 取消),安卓 iOS 都完整可见。
- ✏️ 修复编辑时刻秀「加图后保存变新建」:编辑时用「+」加图,选图器返回会冲掉编辑身份,导致保存被当成新建、多出一个时刻秀。现已固定编辑身份,保存稳定覆盖原时刻。
- 🖼️ 时刻秀封面可选:编辑时刻秀时点任意缩略图即设为封面(金框 + 「封面」角标),默认用第一张;时刻卡按所选封面显示。
- 🗂️ 加图可按分类筛选:时刻秀「加图」选图器顶部新增分类筛选条(全部 / 各分类,含自定义分类名),快速从某个分类里挑图,也可看全部。
- ✏️ 时刻秀可编辑啦:在「时刻」Tab 长按时刻秀卡 → 「编辑」,可改名称/描述、删图(缩略图角上 ✕)、加图(末尾「+」打开全相册多选选图器,已在时刻里的会标「已添加」)。保存即更新原时刻秀(不新建)。
- 🎬 安卓时刻秀也能导出视频啦:时刻秀「导出为视频并分享」补齐安卓端(原生 MediaCodec 合成 1080×1920 H.264,每张按放映间隔停留、张间交叉淡入),导出后直接系统分享发微信/存相册——iOS / 安卓两端拉平。(安卓背景音乐合成进行中,当前安卓导出为纯视频;iOS 仍带配乐。)
- 🙂 安卓美颜人脸识别大升级:安卓人脸检测从系统老 API 换成 Google ML Kit(自带模型、不依赖 Google 服务框架,华为等机型也能用),侧脸 / 歪头 / 暗光 / 小脸 / 戴眼镜的明显人脸不再漏检。检测彻底失败时也不再报错,会兜底对画面中心区域温和磨皮,保证美颜「总能出效果」。
- ✨ 修复生成时刻秀「✨ 生成描述」报错:点 ✨ 让 AI 按名字扩写描述时报
Cannot parse JSON from response——模型直接返回了纯文本描述,旧逻辑却按分类的 JSON 强解析。现已把纯文本生成与分类拆开,描述会正常写入(搜索「✨ 改写」同源问题一并修掉)。 - 🏷️ 相册报告「最常拍的内容」显示分类名:修复自定义分类在相册报告里显示原始 id(如
my_cat)的问题——现在统一解析为你给分类起的名字。此前该修复仅装到了 iPhone,本版随安卓包一并带上。
- 📤 时刻秀导出为视频并分享(iOS 先行):时刻 Tab 的时刻秀卡片长按 → 「导出为视频并分享」——原生合成 1080×1920 MP4(每张按放映间隔停留、张间交叉淡入、背景音乐循环铺满全片),完成后直接系统分享面板发微信/存相册。安卓导出版(MediaCodec)在路上。
- 🎚️ 修图深度横向拉杆:美颜/清晰增强/色彩优化结果页新增深度滑杆(10%~100%),拖动选强度松手即重新出图;清晰增强的 AI 推理只跑一次,调深度秒级响应。
- 🧴 美颜保边磨皮:修复"五官跟皮肤一起被磨糊"——只平滑低反差的肤色区域,眼睛/眉毛/嘴/发丝保持锐利,深色瞳孔不再被提亮。
- 🎬 时刻秀上线:多选照片/视频(分类网格、搜索结果、集合页三处入口长按多选)→ 命名(✨可按名字 AI 生成描述)→ 8 种转场(淡入/平移/缩放/推入/翻转/弹入/上浮/直切)→ 单图时长 → 🎵 本地背景音乐 → 存入「时刻」Tab 置顶区随时播放(长按删除)。视频混播:视频原地播放至结束自动衔接,配乐时自动静音。
- 🧴 美颜只磨人脸:人像美颜改为仅作用于人脸区域(原生人脸检测,零依赖),边缘羽化自然过渡,背景衣物不再被磨;未识别到人脸会提示。
- ☑️ 多选批量人工分类:搜索结果与集合页支持长按多选/全选 → 批量移入任意分类(含自定义分类)。
- ✨ UI 质感:全局小图标矢量化(放映控制、视频角标、报告卡片、时刻页等),告别发虚的字符图标;年报分享文件名改为 ImagePilot-Report-日期。
- 🛡️ 修复安卓相册报告分享闪退:截图原生模块(RNViewShot)未注册进安卓包(本项目为手动注册制,新依赖漏接三件套)——已补 settings.gradle/build.gradle/MainApplication 注册。
- 🛡️ 修复安卓相册报告分享失效:分享出去的是文字路径而非图片(原生模块名/方法误用),现走 FileProvider 正确分享报告长图。
- 🧹 全功能走查清理:英文界面统计页残留中文修正;放映页空集合退出加固;移除"时刻"迁移后的 ~130 行死代码(无可见变化)。
- 🕰️ 新「时刻」模块:底部导航新增 Tab——那年今天(带放映)、节日回忆、旅行回忆、随便看看全部入驻;首页相应瘦身(修复相似照片区按钮换行)。
- 🛡️ 修复相册报告分享崩溃:更换截图实现(内容视图直接截取)。
- 🎞️ 幻灯片放映:那年今天/旅行/节日/任意集合一键全屏放映(淡入过渡、暂停、2s/3s/5s 调速),视频自动跳过。
- 🎲 随便看看:按年份分桶随机抽 30 张"考古"老照片,再点换一批(相似照片区入口)。
- 🎉 节日回忆:历年春节/国庆/中秋/元旦/五一/圣诞照片自动聚合卡片(含农历节日 2015~2026 对照)。
- 📤 年报分享:相册报告一键截成长图分享(iOS 系统分享 / 安卓分享面板)。
- ✨ 查询润色:AI 搜索可一键把口语化查询改写成检索友好描述(需配置在线大模型)。
- 🔍 搜索全维度:默认搜索新增 时间(2024/5月)、格式(jpg/视频)、分辨率(4k/1080p/横竖屏)、拍摄参数(ISO/光圈/快门/焦距)、目录、大小(10mb/大文件)等维度,可空格组合(如"杭州 2024 横屏");模式更名为「默认搜索 / AI 搜索」,空态各自给可点示例词。
- 📈 分类体验:精细化描述仅在"单张图主动 AI 分类"时启用(长按目录恢复快速模式);多选分类进度改为全局悬浮胶囊——切页面回来还在,完成显示 ✅。
- 📱 首页减噪:扫描消息条收进 header 状态小按钮(转圈/ⓘ,点开看完整消息)。
- 🤝 华为安装缓解:更新包改存 Download 目录;华为/荣耀设备给出"禁止安装"绕行引导(关纯净模式或文件管理安装);附误报申诉文档。
- 🧳 旅行回忆优化:城市名清洗(不再显示 CN_unknown_ 等内部前缀,"杭州之旅 / Jakarta之旅");行程误报过滤——占比 ≥15% 的城市都算常驻地(双城生活不误判)、单日行程需 ≥8 张(路过邻市不算旅行)。相册报告的城市榜同步用干净名称。
- 🧳 旅行回忆:自动识别"出行"——异地连续拍摄的照片自动聚成"XX之旅"卡片(城市·日期·天数·张数),首页横滑浏览,点进集合网格回看整段旅程。
- 📊 相册报告:首页右上角新增报告入口——照片/视频总量与体积、年度分布、最常拍的内容、城市足迹 Top5、拍得最多的一天、最长视频、AI 描述覆盖率,全部本地计算。
- 🛡️ 稳定性:分类与向量索引构建互斥(防安卓并发推理 OOM 崩溃);索引建完即释放 CLIP 引擎内存。
- 🎬 视频入 AI 向量索引:建索引时视频自动抽中点帧编码——「AI 相似」「AI 搜图」现在能召回视频。
- 🔬 单图 AI 分类精细化:对单张图主动 AI 分类时自动启用精细模式——描述升级为 50~80 字详描(主体/动作/场景/可见文字/细节),本地多模态与云端大模型均生效;批量扫描仍用短描述(快、省 token)。
- 📊 分类进度平滑:批量分类逐张更新进度,百分比不再 20 张跳一格(界面数据刷新仍每 20 张节流)。
- ⚙️ 设置页向量索引管理:相似度阈值下方新增「AI 向量索引」——显示覆盖率百分比、一键补全(增量带进度)、重建(清空全量重编)。
- ⏱️ 安卓存量视频时长回填:扫描后自动为旧视频补时长角标(无需清库重扫)。
- 应用商店功能文案更新(搜索三件套/找相似/视频/重复清理等)。
- 🧹 重复照片清理:首页「相似照片」区新增「重复清理」——找出字节级相同的多份拷贝(大小+拍摄时间+尺寸全同 + 直方图复核),按组展示(保留 1 张),单组清理或一键清理全部并显示可释放空间,删除走系统确认。
- 🤖 向量索引自动维护:扫描完成后自动增量补新照片的 AI 向量(「AI 智能识别」模型已下载时),「AI 相似」搜索免手动建索引。
- 🔍 搜索大升级(三种搜法一个页面):关键字搜图(精确匹配)/ 语义搜图(写"狗在草地跑"也能命中相近描述)/ AI 搜图(选一张图 → 本地或云端识别 → 语义+颜色+CLIP 向量三路融合找相似,并显示"AI 识别为…")。
- 🎯 找相似分双维度:预览页「找相似」可选颜色相似(构图/色调,找连拍翻拍)或 AI 相似(CLIP 向量、内容语义级,同图必命中);结果带相似度百分比(阈值 60% 真机校准)。AI 相似需下载「AI 智能识别」模型并一键建索引(增量、可中断)。
- 🏷️ 分类交互重做:删除「开始分类」按钮,改为长按任意目录卡对该目录跑 AI 分类(本地/云端可选)——修复"点一个待分类、图片视频全跑";多选工具栏「AI 分类」同样支持引擎选择。
- 📈 分类边跑边归位:每分好 20 张即刷新界面,不再等全部完成才有反应(双端)。
- 🛑 安卓扫描可停止:实现原生 stopScan(架构文档设计但未实现)——基础扫描阶段(EXIF/截图检测)也能停,已处理的保留、剩余下次续扫。
- 🕰️ 那年今天:首页新增历年同月同日的回忆横滑卡片。
- ⏱️ 视频时长角标:缩略图显示 ▶ 0:32(双端 duration 入库,存量视频重扫后生效)。
- 📦 备份/还原带 AI 描述:还原后描述不丢、搜索可用。
- 🆕 新发现照片修复:改用上上次扫描作基准(修 iOS 不生效与"两次扫描间的照片永久漏掉");双端纳入视频。
- ✏️ 其它:AI 描述编辑键盘不再挡按钮;英文界面内置分类描述本地化;相似度检测排除视频。
- 🎬 视频自动分类上线:抽取视频时长中点一帧(双端原生实现,≤1024px)喂给现有分类链路——基础/场景/CLIP/多模态档全兼容,多模态档还会给视频写 AI 描述;抽帧失败保持「待分类视频」不丢。首页「待分类视频」卡新增「开始分类」按钮。
- ✏️ AI 描述可人工编辑:预览页信息面板点「AI 描述」即可编辑/添加(无描述也有"点此添加"入口),保存后立即可在搜索中按它找图——等于手动打标签。
- 🤖 多选 AI 分类:分类页多选 → 工具栏「AI 分类」,对选中图/视频按设置的分类模型重跑(与「清理分类」配对:清完可立即重分)。
- 视频体验重做:点视频改为进预览页(海报帧 + 居中 ▶ 播放钮)——查看信息、改分类、编辑描述都能用,点 ▶ 才进系统播放器(与系统相册一致);修图/滤镜按钮对视频自动隐藏。
- 修复图片放待分类跑进视频桶:预览页分类选择器不再并列两个"待分类";数据层按介质双向路由(图→待分类、视频→待分类视频,混选自动拆分);已放错的存量数据下次扫描自动归位。
- 细节:「开始分类」改居中小药丸不再挡 ▶ 角标(▶ 移右下);相似度检测排除视频;英文界面内置分类"查看"显示英文描述。
- 🔍 搜索功能上线:首页右上角新增搜索——按 AI 描述 / 分类名 / 文件名 / 城市 搜图(语义搜索靠多模态档写的 AI 描述;有未打描述的图会提示)。结果网格视频可直接播放、图片进预览。
- 视频回待分类的归位:把已分类视频移回「待分类」或清理分类时,正确回到「待分类视频」(图片回图片待分类、视频回视频待分类)。
- 视频手动分类计数即时更新:分类后「待分类视频」减、目标分类加,不再滞后。
- 图片信息面板:分类置信度百分比不再被底部操作栏遮挡(面板加高 + 底部留白)。
- 修复安卓视频不在「按时间」里:视频的 DATE_TAKEN 常为 0 会被分到「更早」桶;改为回退 DATE_ADDED/DATE_MODIFIED,时间分桶对 takenAt=0 兜底回退 timestamp。
- 「待分类视频」卡片优化:有视频时显示最近一帧作底图(不再是突兀的纯图标);空态用摄像机图标。
- 修复安卓视频没进「待分类视频」:视频迁移改在"基础扫描完成"时执行,只扫描(不触发 AI 分类)也会归位。
- 「待分类视频」卡片优化:名称简化为「待分类」、用摄像机图标作底图、右上角加播放角标——靠图标区分图片/视频两个待分类,避免长名字被截断。
- 「待分类视频」改为系统分类:不再出现在「内置分类管理」列表里(像「待分类」一样不可删/隐藏)。
- App 内授权声明:设置 →「关于」新增「授权协议」——非商业免费、商业用途须事先授权,可点查看完整条款与联系邮箱。
- 视频浏览与手动分类(第一步):相册扫描现在包含视频,网格里带 ▶ 角标;点视频用系统播放器播放。未分类的视频单独归入「待分类视频」目录(排在「待分类」之后),可多选手动归类。iOS + Android 双端支持。自动分类视频留待后续。
- 自定义分类能被本地模型识别了(重要修复):此前本地多模态分类的清单只含内置分类,自定义分类根本没进去 → 符合规则的图全落"其它"。现已把自定义分类(含「规则」)补进清单,并参考在线模型重写了提示词,本地分类也能按规则归入自定义分类。
- 清理分类:分类页多选后可「清理分类」——退回待分类 + 清空 AI 描述,便于重新分类(含归入新建的自定义分类)。
- 查看内置分类:自定义分类页的内置分类管理中,每项新增「查看」,展示该类含义,方便照着写自定义规则。
- iOS 编辑分类不再被键盘遮挡:编辑弹窗随键盘上移,保存按钮始终可点。
- 分类可随时停止(保留已分类):大模型逐张分类较慢时,扫描按钮变为「停止」——点一下即停,已分类的照片立刻归位保留,剩余未分类的下次扫描自动接着分,不用干等。批内逐张响应,任何档位都能即时停。
- 清理:移除调试用的 VLM 诊断字段;修正构建注释。
- 多模态分类提速:把 Gemma 视觉 token 预算减半(视觉占推理大头),iOS / Android 都明显加快,对"粗分类 + 短描述"质量基本无感。Android 端 LiteRT-LM 同步升级到 0.13.1(与 iOS 同版本)。
- App Store 隐私清单补全:补上「磁盘空间」Required Reason 声明,避免上架后的合规警告。
- 基础识别开箱即用(不再依赖联网):默认的「物体识别」模型随 App 打包(安卓 assets / iOS 资源包),首次使用零下载、纯离线——修复部分机型(如华为等国内网络)因连不上 GitHub 导致基础分类失败。
- 下载加国内镜像:场景 / CLIP 等可选模型按需下载时,优先走国内 GitHub 加速镜像、直连兜底,避免首次下载失败。
- 折叠屏自适应:首页分类网格/图标改为响应窗口宽度,折叠↔展开时尺寸实时跟随(此前首页只在加载时取一次屏宽、折叠后不变)。
- 删除照片两端对齐(iOS 修复):iOS 端「批量删除」之前只清了应用记录、Photos 图库里的照片仍在(RNFS 删不了图库资源)。改为走 PhotoKit 物理删除(系统弹一次确认),与单张删除、安卓行为一致——真删。
- 设置页更清爽:「分类模型」「AI 增强模型」两段默认折叠,只显示当前选择,点开才展开完整选项与下载入口。
- 折叠屏适配:折叠↔展开切换时分类网格图片尺寸实时重算(原先用加载时快照、不跟随窗口变化)。
- 精简:移除已下线的 Qwen3-VL-2B 兜底档与
llama.rn依赖(本地多模态统一用 Gemma4-E2B),减小包体。
- 新增「本地多模态大模型」分类档(Gemma4-E2B):在「分类模型」里新增端侧大模型档——用 Google LiteRT-LM + Gemma4-E2B 直接看图分类,并为每张图生成一句简短 AI 描述(显示在图片详情的「🤖 AI 描述」)。全程离线、仅你可见,分类质量明显优于轻量识别。
- iOS / Android 双端打通:iOS 走官方 LiteRT-LM Swift 运行时(CPU 推理),Android 走 LiteRT-LM(GPU 加速,更快)。
- 模型不打包、按需下载:~2.5GB,从 ModelScope(魔搭)国内直连下载,断点续传 + 文件头校验;下载前按机型内存提示。
- 逐张进度:大模型档分类按张推进,进度条实时走动、描述逐张出现。
- AI 描述显示修复:修复多模态分类生成的描述未传到界面缓存导致「分类了却看不到描述」的问题。
- 修图保存修复(iOS):滤镜保存因写入安卓专属目录在 iOS 报 ENOENT,改用跨平台相册写入。
- 编辑结果可暂存:滤镜 / AI 增强后可「保存并暂存」,编辑结果直接进入暂存箱。
- 删除内置分类后照片不再"消失":截图等元数据分类的照片在删除该分类后,会正确显示在「待分类」(展示层重映射,恢复分类即还原,完全可逆)。
- 多语言修复:设置页「分类模型 / AI 增强模型」切换英文后不再残留中文。
- 安卓「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 备用模型与「本地辅助识别」冗余开关。
- 内容分类扩充至 20 类并引入多原型标定;新增 CLIP 设备端「AI 智能识别」档。
- 首页加载动画、原生启动屏统一、targetSdk 35、macOS/Windows 桌面端构建等。
完整变更见各次 Release 说明。
- Windows 10 或更高版本
- 4GB 以上内存(推荐8GB)
- 500MB 可用磁盘空间
- macOS 12 或更高版本
- 4GB 以上内存(推荐8GB)
- 500MB 可用磁盘空间
- Android 10 或更高版本
- 2GB 以上内存
- 100MB 可用存储空间
iOS:App Store 下载(推荐)
- 在 App Store 搜索 ImagePilot,或直接打开 App Store 页面 获取。
Android:从 GitHub Releases 下载
- 打开 chunguangwei/ImagePilot Releases
- 下载最新版
ImagePilot-android-arm-<版本>.apk - 在手机上点击安装(首次需允许「安装未知来源应用」)
- 装好后,应用会在启动时自动检查更新,后续升级一键完成
PC(Windows / macOS):从 GitHub Releases 下载
- 打开 chunguangwei/ImagePilot Releases
- Windows 选
...-setup-<版本>.exe(安装版)或...-portable-<版本>.exe(免安装);macOS 选...-mac-arm-<版本>.dmg - 也可从源码构建(见下方「开发指南」)
- 连接与设置 - 使用数据线连接手机与电脑,选定需要整理的相册目录
- 一键智能分类 - 点击"开始智能分类",AI将自动扫描识别
- 便捷拣选暂存 - 分类完成后,勾选需要处理的照片,一键移入暂存箱
- 最终清理或归档 - 进入暂存箱二次确认,删除或归档
| 指标 | 数据 |
|---|---|
| 分类准确率 | 取决于所选模型(设备端本地 ONNX 或您配置的在线大模型) |
| 支持分类类别 | 9大类(内容分类) |
| 多维度分类 | 8大维度(内容、城市、颜色、存储、格式、分辨率、方向、相似组) |
| AI分类维度 | 2个(内容、颜色) |
| 本地算法维度 | 6个(城市、存储、格式、分辨率、方向、相似组) |
| 隐私保护 | 本地默认离线;在线分类为可选,走用户自配服务商,全部修图均在本地完成 |
| Android扫描速度 | MediaStore 优化 |
| 哈希计算速度 | 原生多线程加速 |
- React Native - 跨平台移动应用开发框架
- React - Web/PC端界面框架
- Electron - 桌面应用封装
- 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 对齐)。
- 分类规则配置
- 使用指南 - 安装、AI 模型设置、自定义分类、修图
- 多维度分类功能使用指南
- 核心功能文案
实际识别效果取决于所选模型(设备端本地 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支持 - 给项目点星,支持项目发展
- Fork 本仓库
- 创建您的特性分支 (
git checkout -b feature/AmazingFeature) - 提交您的更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开一个 Pull Request
应用需要以下Android权限:
READ_EXTERNAL_STORAGE- 读取外部存储中的照片WRITE_EXTERNAL_STORAGE- 写入处理结果READ_MEDIA_IMAGES- 读取媒体图片(Android 13+)ACCESS_MEDIA_LOCATION- 读取媒体位置信息(用于城市分类,Android 10+)MANAGE_EXTERNAL_STORAGE- 管理外部存储(可选)
- 文件系统读写权限(安装时自动申请)
分类路由架构:
缓存查询(智能缓存,避免重复推理)
↓
AI 内容/颜色分类(由 aiProvider.active 决定)
├─ local-onnx:设备端 ONNX 本地推理(默认、离线、免费)
└─ 在线大模型:用户在「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
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格式cd android
# 生成Release APK
./gradlew assembleRelease
# APK输出路径
# android/app/build/outputs/apk/release/app-release.apkScoped Storage 下,删除其他应用拍/截的图需要用户授权。v1.2.1 起接入 MediaStore.createDeleteRequest:删除时弹出系统授权对话框,同意即正常删除,拒绝则保留原图。本应用拍/截或自有目录下的图仍可直接删除,不会弹窗。v1.4.0 进一步在 unlink 后复核文件确实消失(避免 Scoped Storage 假成功),且系统授权删除后同步清掉 app 内 DB 残留记录,杜绝"提示已删除但相册还在"的鬼影。
部分照片可能缺少GPS位置信息,导致无法按城市分类。
- 🛠️ 修复"E_CORRUPT 下载 0MB":vivo 等机型上 RNFS 不跟 GitHub 302 重定向、伪成功落地 0 字节文件。现先用 fetch 把重定向跑完拿到
objects.githubusercontent.com直链再交给 RNFS,进度条也跟着真能动了 - 📡 显式带上
User-Agent/Accept头,避免部分 CDN 对默认 OkHttp UA 冷处理
- ⬇️ 更新弹窗大改造:清洗 release notes 的 markdown 排版,再也不会乱码堆叠;下载进度条 + 百分比实时显示
- 🎒 后台下载:下载中可点"后台下载"关掉弹窗,下载继续走,完成后自动弹出系统安装窗口
- 🎨 配套美化:自定义分类 / 备份还原 的"编辑、删除、还原、分享"按钮全部换上 MaterialIcons,UI 一致性更强
- 📦 分类备份与还原:设置页新增入口,一键把"每张图归到哪个分类 + 自定义分类定义"导出到
Downloads/imagepilot-backup-*.json;换机/重装/清数据后在新机的同位置选文件即可一键还原,按文件名 + 大小 + 拍摄时间命中本地相册,不必再走云端 LLM 重新分类
- ✏️ 自定义分类可编辑:每项可改名称 / 规则 / 图标(id 因关系到历史归属图,仍只读)
- 🧯 删除分类不丢图:删除自定义分类前,先把其下照片回归到「待分类」,再移除分类项——再也不会"删分类→图也没了"
- 🗑️ 删除可靠性:unlink 后复核 + 系统授权后清 DB —— 不再出现"已删除但其实没删"
- 🧭 分类排序:「其它」恒定倒数第二、「待分类」恒定末位(首页 / 改分类弹窗 / 全部入口一致)
- 🎨 统一图标主题:改分类弹窗与自定义分类管理改用 MaterialIcons + 圆形主题色背景,告别零散 emoji
- 🏷️ 自定义分类带图标:新建时可在 18 个预设里挑一个;删除分类时其图标也随之消失
查看 CHANGELOG 或 Releases 了解早期版本详情。
本项目采用 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 andRequired Noticewhen distributing.
Copyright (c) 2026 Chunguang Wei(魏春光)
- 💬 问题反馈 / 功能建议:GitHub Issues
- 📦 下载 / 更新:Releases
感谢所有使用和支持ImagePilot的用户!
特别感谢:
- ONNX Runtime 团队提供的高性能推理引擎
- MobileNetV3 与 Real-ESRGAN 模型的作者与社区
- 上游项目 ImageClassifier(MIT,ImagePilot 早期基于其起步)
- React Native 社区的优秀框架
- 所有开源项目的贡献者
© 2026 ImagePilot. 保留所有权利.
让照片管理更智能,让隐私更安全