用本地AI整理照片怎么做?不上传一张,240张图40分钟搞定

几百上千张照片文件名全是 IMG_xxxx?原文作者用本地视觉模型加一段 Python 脚本,不上传云端,240 多张照片 40 分钟内完成重命名和分类,步骤和坑点都写清楚了。

家里照片越攒越多,文件名却全是 IMG_1543.jpg 这种。想找某一张,只能在文件夹里一张张翻缩略图,很费劲。

原文作者也是这样。多年下来,他电脑里有几千张照片,有用佳能 Rebel 相机拍的,也有换手机时从旧设备导出来的。iCloud 已经快满了,他不想为了这些老照片每个月再多花钱。数字照片管理软件(比如 digiKam)是免费的,但他想试试另一条路:在自家的迷你主机上跑本地 AI,让它看懂每张图,自动起名、分类,全程不用把照片一张张上传到别人的服务器。

先说结论:这套办法适合谁

简单讲,这是一种“免费、不上传、但要动手”的方案。下面这张表把几种常见做法放在一起比一比:

做法费用照片是否上传上手难度适合谁
云相册(如 iCloud)容量不够要按月付费会上传低不介意上云、图省事的人
照片管理软件(如 digiKam)免费不上传中,要自己手动打标签想精细管理、愿意一张张整理的人
本地 AI + 脚本(本文方案)免费(需自备能跑模型的电脑)不上传较高,要会一点 Python照片量大、愿意折腾的人

如果您只有几百张照片,用照片软件可能更省事。照片多到几千张,又愿意花点时间调试,本地 AI 这条路就值得一试。

准备工作:需要哪些东西

  1. 一台能跑本地模型的电脑。原文作者用的是迷你主机,内存越大,能跑的模型越大。
  2. 一个模型运行工具。原文先用的是 Ollama,最后选了 LM Studio,因为它自带的本地服务器能让 Python 脚本直接和模型通信。
  3. 一个“视觉语言模型”。这是既能看图、又能用文字回答的模型,原文用的是 Qwen3-VL-2B-Instruct。
  4. 一段 Python 脚本。负责逐张读图、生成文件名、输出 CSV 表格,最后按分类建文件夹。

第一步:挑一个能看图的模型

原本选的模型为什么跑不通

原文作者先看中了 Qwen2-VL-2B-Instruct 的 Q4_K_M 版本。Q4_K_M 是一种压缩过的版本,体积小、占用少,适合在普通电脑上跑。这个模型带视觉能力,本来很合适。可它多次运行失败,报错说输入需要的 token 数超过了上下文窗口。token 可以理解成模型“读”进去的文字和图像片段的计量单位,上下文窗口则是它一次能记住的长度上限。原文作者试着调大了上下文长度,又试了几次,还是不行,于是果断换了方向。

换成 Qwen3-VL-2B 后,效果如何

原文作者改用 Qwen3-VL-2B-Instruct,在 LM Studio 里新开一个对话,丢进一张照片,让模型说出画面里的主要对象、正在发生什么,以及场景在哪里。它能正常跑完,分析一张图大约 20 秒。对于在自己的迷你主机上本地运行来说,这个速度可以接受。

模型认出的东西比预想的多

LM Studio 中 Qwen3-VL-2B-Instruct 正确识别出 2012 年 Gartner 研讨会展台与现场人群的界面截图

第一张测试图来自 14 年前的一次行业会议,是在奥兰多举办的 Gartner Symposium/ITxpo。模型没有只泛泛地说“一群人站在展厅里”,而是读出了图里的文字,正确识别出会议名称和年份。它还描述了场景:几个人坐在白色的软垫凳上,看着屏幕上一张蓝色调的 PPT。之后原文作者又试了狗、海滩、人物等照片,大多数主体和场景都能识别出来。不过有些描述比较笼统,并不是每条都有用。而原文作者要的不是逐张聊天,是批量自动处理,所以下一步才是重点。

第二步:用 Python 脚本批量处理

先看结果,再动手改文件

原文作者写了一个 Python 脚本,把文件夹里的照片逐张交给模型处理。为了让迷你主机扛得住,脚本会先把照片缩小,再送去分析。每张图会生成一段描述、一个建议的文件名,并归入一个分类,比如“自然风光”“宠物”或“其他”。

脚本跑完后,会生成一个 CSV 表格,里面有原始文件名、新文件名、描述和分类。这一步还没有动任何原图。原文作者逐行检查:文件名是否合理,描述和分类对不对。他发现有些名字太笼统,还有一次把两张不同的极光照片起了完全相同的名字和描述。

Windows PowerShell 中运行 Python 脚本分析 20 张照片,生成文件名和分类并保存为 CSV 的截图

他把这些问题都在 CSV 里改掉,确认无误后,运行脚本的 apply 命令,生成按分类分好的文件夹,里面是改了名的照片副本。原图仍然留在原来的 Images 文件夹里,新照片放在一个叫 Organized Photos 的文件夹中。您可以先对比两边的结果,确认没问题后再手动删除原图。

240 多张照片 40 分钟内处理完,结果并不完美

测试从一张图开始,接着试了 20 张,最后才放到一个有 240 多张照片的文件夹上。照片类型很杂,有风景、动物、人物,也有运动抓拍。整个过程不到 40 分钟,原文作者大部分时间都在看 CSV,把一些过于笼统的名字改得更具体。

过程并非一帆风顺。模型整体处理得不错,但有些文件名仍需人工修正。如果手动整理,这批照片至少要花上好几个小时。原文作者的体会是:脚本跑起来以后,可以先去做别的事,等它忙完再回来检查。

常见问题(FAQ)

没有独立显卡,能跑这套方案吗?

原文作者用的是迷你主机,文中没有详细说明显卡配置。模型跑得快慢主要取决于您电脑的内存和硬件性能。建议先拿十几张照片测一下速度,再决定要不要整批处理。

AI 认错了怎么办?

别急着改文件。脚本会先生成 CSV,您可以逐行检查和修改文件名、描述和分类。确认无误后,再执行分类操作。

原照片会被删掉吗?

不会。原文的做法是生成一份改名后的副本,放进新的文件夹,原图保留。等您对结果满意,再自己手动删除原图。

为什么不直接用 Ollama?

原文作者平时用 Ollama 更多,但这次选了 LM Studio,因为它的内置本地服务器能让 Python 脚本直接和模型通信,接起来更省事。两者都是免费工具,按自己的习惯选就行。

总结

用本地 AI 整理照片,并不需要把每张图都上传到云端。选一个能看图的小模型,写一段简单的脚本,先出 CSV 再检查,最后按分类归档,就能把几百上千张照片整理得井井有条。它不算完美,人工检查依然必不可少,但对照片量大的人来说,省下的时间很可观。如果您还想了解本地模型的基础用法,可以看看 用离线维基百科给本地大模型补知识,老电脑也能答得更准。