家里照片越攒越多,文件名却全是 IMG_1543.jpg 这种。想找某一张,只能在文件夹里一张张翻缩略图,很费劲。
原文作者也是这样。多年下来,他电脑里有几千张照片,有用佳能 Rebel 相机拍的,也有换手机时从旧设备导出来的。iCloud 已经快满了,他不想为了这些老照片每个月再多花钱。数字照片管理软件(比如 digiKam)是免费的,但他想试试另一条路:在自家的迷你主机上跑本地 AI,让它看懂每张图,自动起名、分类,全程不用把照片一张张上传到别人的服务器。
先说结论:这套办法适合谁
简单讲,这是一种“免费、不上传、但要动手”的方案。下面这张表把几种常见做法放在一起比一比:
| 做法 | 费用 | 照片是否上传 | 上手难度 | 适合谁 |
|---|---|---|---|---|
| 云相册(如 iCloud) | 容量不够要按月付费 | 会上传 | 低 | 不介意上云、图省事的人 |
| 照片管理软件(如 digiKam) | 免费 | 不上传 | 中,要自己手动打标签 | 想精细管理、愿意一张张整理的人 |
| 本地 AI + 脚本(本文方案) | 免费(需自备能跑模型的电脑) | 不上传 | 较高,要会一点 Python | 照片量大、愿意折腾的人 |
如果您只有几百张照片,用照片软件可能更省事。照片多到几千张,又愿意花点时间调试,本地 AI 这条路就值得一试。
准备工作:需要哪些东西
- 一台能跑本地模型的电脑。原文作者用的是迷你主机,内存越大,能跑的模型越大。
- 一个模型运行工具。原文先用的是 Ollama,最后选了 LM Studio,因为它自带的本地服务器能让 Python 脚本直接和模型通信。
- 一个“视觉语言模型”。这是既能看图、又能用文字回答的模型,原文用的是 Qwen3-VL-2B-Instruct。
- 一段 Python 脚本。负责逐张读图、生成文件名、输出 CSV 表格,最后按分类建文件夹。
第一步:挑一个能看图的模型
原本选的模型为什么跑不通
原文作者先看中了 Qwen2-VL-2B-Instruct 的 Q4_K_M 版本。Q4_K_M 是一种压缩过的版本,体积小、占用少,适合在普通电脑上跑。这个模型带视觉能力,本来很合适。可它多次运行失败,报错说输入需要的 token 数超过了上下文窗口。token 可以理解成模型“读”进去的文字和图像片段的计量单位,上下文窗口则是它一次能记住的长度上限。原文作者试着调大了上下文长度,又试了几次,还是不行,于是果断换了方向。
换成 Qwen3-VL-2B 后,效果如何
原文作者改用 Qwen3-VL-2B-Instruct,在 LM Studio 里新开一个对话,丢进一张照片,让模型说出画面里的主要对象、正在发生什么,以及场景在哪里。它能正常跑完,分析一张图大约 20 秒。对于在自己的迷你主机上本地运行来说,这个速度可以接受。
模型认出的东西比预想的多

第一张测试图来自 14 年前的一次行业会议,是在奥兰多举办的 Gartner Symposium/ITxpo。模型没有只泛泛地说“一群人站在展厅里”,而是读出了图里的文字,正确识别出会议名称和年份。它还描述了场景:几个人坐在白色的软垫凳上,看着屏幕上一张蓝色调的 PPT。之后原文作者又试了狗、海滩、人物等照片,大多数主体和场景都能识别出来。不过有些描述比较笼统,并不是每条都有用。而原文作者要的不是逐张聊天,是批量自动处理,所以下一步才是重点。
第二步:用 Python 脚本批量处理
先看结果,再动手改文件
原文作者写了一个 Python 脚本,把文件夹里的照片逐张交给模型处理。为了让迷你主机扛得住,脚本会先把照片缩小,再送去分析。每张图会生成一段描述、一个建议的文件名,并归入一个分类,比如“自然风光”“宠物”或“其他”。
脚本跑完后,会生成一个 CSV 表格,里面有原始文件名、新文件名、描述和分类。这一步还没有动任何原图。原文作者逐行检查:文件名是否合理,描述和分类对不对。他发现有些名字太笼统,还有一次把两张不同的极光照片起了完全相同的名字和描述。

他把这些问题都在 CSV 里改掉,确认无误后,运行脚本的 apply 命令,生成按分类分好的文件夹,里面是改了名的照片副本。原图仍然留在原来的 Images 文件夹里,新照片放在一个叫 Organized Photos 的文件夹中。您可以先对比两边的结果,确认没问题后再手动删除原图。
240 多张照片 40 分钟内处理完,结果并不完美
测试从一张图开始,接着试了 20 张,最后才放到一个有 240 多张照片的文件夹上。照片类型很杂,有风景、动物、人物,也有运动抓拍。整个过程不到 40 分钟,原文作者大部分时间都在看 CSV,把一些过于笼统的名字改得更具体。
过程并非一帆风顺。模型整体处理得不错,但有些文件名仍需人工修正。如果手动整理,这批照片至少要花上好几个小时。原文作者的体会是:脚本跑起来以后,可以先去做别的事,等它忙完再回来检查。
常见问题(FAQ)
没有独立显卡,能跑这套方案吗?
原文作者用的是迷你主机,文中没有详细说明显卡配置。模型跑得快慢主要取决于您电脑的内存和硬件性能。建议先拿十几张照片测一下速度,再决定要不要整批处理。
AI 认错了怎么办?
别急着改文件。脚本会先生成 CSV,您可以逐行检查和修改文件名、描述和分类。确认无误后,再执行分类操作。
原照片会被删掉吗?
不会。原文的做法是生成一份改名后的副本,放进新的文件夹,原图保留。等您对结果满意,再自己手动删除原图。
为什么不直接用 Ollama?
原文作者平时用 Ollama 更多,但这次选了 LM Studio,因为它的内置本地服务器能让 Python 脚本直接和模型通信,接起来更省事。两者都是免费工具,按自己的习惯选就行。
总结
用本地 AI 整理照片,并不需要把每张图都上传到云端。选一个能看图的小模型,写一段简单的脚本,先出 CSV 再检查,最后按分类归档,就能把几百上千张照片整理得井井有条。它不算完美,人工检查依然必不可少,但对照片量大的人来说,省下的时间很可观。如果您还想了解本地模型的基础用法,可以看看 用离线维基百科给本地大模型补知识,老电脑也能答得更准。