视觉大模型驱动的照片归档流水线:自动去重、精华挑选、事件命名,按「日期-事件」归档。电脑上整理全库,手机在外随手清理。 A vision-LLM photo curation pipeline: auto-dedup, highlight selection, event naming, archived by date-event. Curate the whole library on your PC, tidy your phone on the go.
不是又一个云相册。它在你自己的机器上,用视觉大模型替代人工筛选。 Not another cloud album. It runs on your own machine, replacing manual sifting with a vision LLM.
照片喂给本地运行的视觉大模型(gemma4:31b/qwen3.8:27b),在自己显卡上出结果,断网也能跑完整条流水线。照片数据不出本地,隐私从架构上守住。 Photos are fed to a local vision model (gemma4:31b, qwen3.8:27b) that runs on your own GPU, and the whole pipeline works offline. Nothing leaves your machine — privacy by architecture.
没显卡也能用:改一行配置即可切到在线模型(照片会上传到云端)。 No GPU? A one-line config switch runs it on an online model instead (photos then go to the cloud).
视觉大模型(能"看懂"照片内容的 AI LLM模型)逐批评审,剔除不佳与雷同片,留下真正有记录价值的精华照片。 A vision LLM (an AI model that "sees" what's in a photo) reviews each batch, dropping junk and near-duplicates, keeping the keepers.
结合画面内容与 GPS 地理编码,自动生成「2026-04-15-杭州西湖景区春日湖光漫游」式的事件目录。 Combines scene content with GPS geocoding to auto-name folders like "2026-04-15-West-Lake-spring-lakeside-stroll".
精华档 (~30%)、纪念档 (40-80%)、归类档 (100%),一个开关切换筛选力度。 Curated (~30%), Memories (40-80%), Classify-all (100%). One switch to change strictness.
电脑上的图形界面(GUI)一键跑全流程,家里的自用接口(API)让手机在户外远程分析,安卓 App 一键清理非精华。都是个人自用。 A desktop GUI (point-and-click, no commands) runs the full pipeline, a private home API lets the phone analyze on the go, and the app cleans your gallery — all for personal use.
十几万张的全量任务要跑一周左右,熔断/断电后自动从断点继续,零数据丢失。 A full run over 100k+ photos takes about a week; after a crash or power loss it resumes from checkpoint with zero data loss.
同一套归档大脑,在三种场景下自用。 One curation brain, three personal-use scenarios.
在电脑上运行的图形界面(GUI):选目录、选档位、点开始,实时看进度与 ETA(预计剩余时间)。全流程一键跑完。 A desktop graphical app (GUI): pick folders, pick a tier, hit start, and watch progress and ETA (estimated time left) in real time.
在外拍完大量照片,不用带电脑、也不用把原图传回家:手机把压缩后的小图发给家里的电脑(自用接口 API),几分钟就拿到"该删哪些"的清单。仅本人设备通过 Token 鉴权访问,不面向公众开放、不接受任何第三方上传。 Out shooting? No laptop, no uploading originals home: the phone sends compressed thumbnails to your own PC's private API and gets a delete list back in minutes. Only the owner's devices access it via token auth — not public, no third-party uploads.
选择要整理的照片范围,上传到自己家里的接口远程分析,查看需要删除的照片,一键移入回收站。原图不出手机。 Pick a photo range, upload to your own home API for analysis, review the photos to delete, and trash them in one tap. Originals stay on device.
选目录、选档位、一键开始,跑完直接得到按「日期-事件」归好的库。 Pick folders, pick a tier, hit start — end up with a date-event archive.
[ 步骤1 截图
[ 步骤2 截图
[ 步骤3 截图硬盘里攒了十几年家庭照片的人 —— 手机导出、相机存储卡、微信保存的图混在几十个目录里,重复照片一堆,一直想整理却从来腾不出时间。挂上去让它自己跑,十几万张一周左右出结果,中途断了也能续跑,跑完得到一个按「日期-事件」归好的库;全程不删除任何原图,只是重新归置,不满意还可以换个档位重跑。 Anyone sitting on a decade-plus of family photos — phone exports, camera cards, saved chat images scattered across dozens of folders, full of duplicates, always meaning to sort it out and never finding the time. Just leave it running: 100k+ photos take about a week, it resumes if interrupted, and you end up with a clean date-event archive. It never deletes an original — it only re-places them, so you can always rerun at a different tier.
一分钟清理手机相册,只留下值得分享的精华。 Clean your gallery in under a minute, keep only what's worth sharing.




一次外出就拍下大量照片的摄影师、连拍党、旅游 / 街拍爱好者 —— 刚从一场活动、一趟旅行、一次街拍回来,相册里躺着几百上千张,需要快速筛出值得留的精华、批量清掉仓鼠囤积。用 PhotoCleaner,几分钟内完成「上传分析 → 预览 → 一键删除」,不用回电脑挨个翻。 Photographers who come home with hundreds of shots from a single outing — burst shooters, travelers, street photographers. You just got back from an event, a trip, or a walk with a few hundred to a thousand frames and need to quickly find the keepers and bulk-trim the hoard. With PhotoCleaner, "analyze → preview → one-tap delete" takes minutes — no need to flip through them back on your PC.
四段式流水线,各司其职。让模型做识别,让脚本做确定性的事。 A four-stage pipeline. The model recognizes; the scripts handle the deterministic parts.
01a 感知哈希(phash)+ 时间双信号切批并自动去重 · 01b 高德反向地理编码 + POI 评分,地点粒度策略下沉到脚本 · 02 视觉大模型逐批挑精华、命名事件,带三档提取与断点续跑;默认调用本地模型(Ollama 的 gemma4:31b、LM Studio 的 qwen3.8:27b),照片不经过任何云端;没有显卡时也可改配置切到在线模型(如百炼 qwen3.7-plus) · 03a/03b 可选的日报合并与跨年同主题事件聚合。 01a chunks by perceptual hash (phash) + time and dedups · 01b Amap reverse geocoding + POI scoring, with locality granularity pushed into the script · 02 the vision model picks highlights and names events, with A/B/C tiers and resumable runs — on local models by default (gemma-4-31B via Ollama, qwen3.8:27b via LM Studio), so photos never touch the cloud; without a GPU you can switch to an online model (e.g. DashScope qwen3.7-plus) via config · 03a/03b optional daily merge and cross-year event clustering.
桌面归档全程不删除任何照片,只是把原图按「日期-事件」的新结构重新归置,原库与原图完好无损。 Desktop archiving never deletes anything — it just re-places your originals into a new date-event structure, leaving every original intact.
手机传缩略图,家里的电脑(自用接口)跑管线,回传待删清单。原图不出手机。 Phone uploads thumbnails, your own home PC (private API) runs the pipeline, returns a delete list. Originals stay on device.
300 张照片从「传原图约 30 分钟」压缩到「传缩略图约 2 分钟」,户外也能随手整理。分块上传 + SHA256 校验,支持断点续传。 300 photos drop from ~30 min (originals) to ~2 min (thumbnails), so you can curate anywhere. Chunked upload with SHA256 verification and resumable transfer.
缩略图剔除了 EXIF 位置标签,拍摄地点留在手机上。服务端无 GPS 时自动跳过 01b 地理编码,而精华挑选本就不依赖 GPS —— 保护隐私不影响分析效果。 Thumbnails ship without EXIF location tags, so where you shot stays on your phone. With no GPS the server just skips 01b geocoding, and curation never needed it — privacy costs nothing in quality.
95 次提交,从一条命令行脚本走到电脑 + 家中服务 + 手机的自用工具链。 95 commits, from a single CLI script to a personal PC + home-service + phone toolchain.
四段式流水线跑通,锁定 prompt v0.3.0 与 Ollama 版本,跑通全量归档。 The four-stage pipeline goes live, prompt v0.3.0 and the Ollama version locked in.
customtkinter 图形界面,A/B/C 三档提取,实时进度与 ETA。 A customtkinter GUI with A/B/C tiers and real-time progress + ETA.
Nuitka 编译单文件 exe;phash 并行把 5300 张从 18 分钟压到 7 分钟。 Nuitka single-file exe; parallel phash cuts 5,300 photos from 18 to 7 min.
03 拆分为 03a/03b,支持跨年同主题事件聚合;02 末尾生成手机端删除清单。 03 split into 03a/03b for cross-year event clustering; 02 emits a phone delete list.
FastAPI 服务 + PhotoCleaner 安卓 App,手机在外远程触发分析并真机验证。 FastAPI service + the PhotoCleaner Android app; remote analysis verified on real devices.
为个人自用接口的公网访问加一层防护:双层 Caddy 反代 + Let's Encrypt + fail2ban + Token 鉴权,仅本人设备可用,部署后再做一轮安全审核修复。 Locking down the owner-only API's public access: two-layer Caddy + Let's Encrypt + fail2ban + token auth, plus a post-deploy security audit.
真实项目里最贵的五课,比功能列表更能说明工程判断。 The five costliest lessons — they say more about engineering judgment than any feature list.
桌面整理全库,手机随手清理,各三步即可。 Curate your library on desktop, tidy your phone on the go — three steps each.
项目已在 GitHub 开源,可直接下载试用:桌面 GUI、安卓 App 与完整源码都在仓库里。 The project is open source on GitHub — download and try it right away: desktop GUI, Android app, and full source are all in the repo.
前往 GitHub 仓库Open the GitHub repo用起来有问题、想反馈想法,或者只是想聊聊实现细节,都欢迎找我聊:老朋友微信直接说一声;新朋友走邮件,留个联系方式我一个个来。 Problems, feedback, or just want to talk implementation — happy to chat. Friends: ping me on WeChat. New here: drop me an email with a way to reach you and I'll get back to you.
本项目以 AGPL-3.0 开源。 Open-sourced under AGPL-3.0.