多模态整理相册,用Gemma识别与叙事

你刚从冰岛旅行回来,存储卡里躺着 1800 张照片。每张都想配上几句当时的心境——那天风大得站不稳,黑沙滩的浪卷上来差点湿了镜头——但手动给上千张照片挨个写描述,不到半小时手腕就酸了。

这就是多模态 AI 上手即用的一个场景:用 Gemma‑4 的图像理解能力,批量为你相册里的照片生成温暖的叙事文字。不需要你会调 prompt,更不用学什么复杂的图像处理,整件事只需要一个能看懂图的模型,和一段简单到不过十行的脚本。


它能看懂什么——像请了一位配文作家

Gemma‑4‑31B‑it 是一个“图像+文本→文本”的多模态模型,意思是:你扔给它一张图片,再附上一句指令,它就能输出你想要的文字。

你可以把它想象成一个看过无数电影、读过无数小说的配文师——它看到夕阳下的剪影,不会只说“有两个人”,而是会给你一段:“海边暮色沉沉,她踮起脚尖在他耳边说了句什么,浪声把答案吞掉了。”

这种理解不是简单的物体识别。Gemma‑4 会提取画面中的关系、情绪、氛围,以及那种‘故事正在发生’的感觉。对于整理回忆来说,正好对味。


端到端:从照片堆到故事集

整个过程不需要任何商业软件,也不依赖云服务。你只需要一台内存大一些的电脑(32GB 以上为宜,或者使用量化版本),然后装好 Ollama,再用一个 Python 脚本调用它就行了。

1. 启动模型服务

在本地用 Ollama 运行 Gemma‑4 的量化版。一条命令拉取并启动模型:

ollama pull gemma4:31b
ollama serve

Ollama 会在 11434 端口提供一个 HTTP API,我们的 Python 脚本就直接向它发送图片和指令。

2. 批量图片叙事脚本

把要整理的照片放在 photos 文件夹里,运行下面的脚本。它会遍历每一张图,发送给 Gemma‑4,获取一段 200 字以内的叙事文本。

import base64, requests, os

def image_to_base64(path):
    with open(path, "rb") as f:
        return base64.b64encode(f.read()).decode("utf-8")

def narrate(image_path):
    img_b64 = image_to_base64(image_path)
    resp = requests.post("http://localhost:11434/api/generate", json={
        "model": "gemma4:31b",
        "prompt": "用一小段文学化的叙事描述这张照片,像是在讲述一次旅行中的温馨回忆。不要添加多余解释,只写故事。",
        "images": [img_b64],
        "stream": False
    })
    return resp.json()["response"].strip()

for fname in os.listdir("photos"):
    if fname.lower().endswith((".jpg",".png")):
        story = narrate(os.path.join("photos", fname))
        print(f"{fname}\n{story}\n---")

输出结果可以直接存成文本,或者导入到你的相册管理工具里作为备注。

如果不想安装 Python,也可以把这些步骤放进一个 Apple Shortcut,或者用简单的 curl 循环一条一条处理——但脚本终究是最省事的方式。


实际输出:从标签到有温度的回忆

手动分类相册时,大家通常只能加上几个标签:“海滩”“日落”“朋友”。而 Gemma‑4 会给你这样的叙事:

“我们赤脚踩在微凉的火山沙上,她突然指着海面上那个缺口笑了。那是旅行指南里没有写的事——每一次浪退下去,都会露出一小片黑曜石一样的石头。我按下快门的时候,她正好回头,风把头发糊了一脸。”

这样一段文字放进电子相册或朋友圈,比“冰岛黑沙滩”标签多了不止一层温度。

另外,叙事本身也能成为自动整理的基础。比如把所有包含“落日”和“拥抱”叙事的照片归到一个集合里,或者把带有“雨”“室内”“暖光”描述的图片单独做成一本雨天回忆册。你给了模型一个起点,它还给你的是一整套可以检索的情绪地图。


和手工整理比,哪些变了

做法 耗时 内容产出
手动逐张写标签 每张 10–20 秒,一天写不完 几个关键词
用通用图片识别 需额外工具,结果生硬 物体清单,无情绪
Gemma‑4 叙事 每张 5–8 秒,半小时全搞定 文学化短篇叙事

最大的差别不在于省时间,而在于产出物的质感完全不一样。关键词只能帮你搜索,但叙事能让照片重新把你带回那个时刻。

而且这个方案不需要上传任何照片到第三方云端。你的照片始终留在自己的硬盘里,模型也在本地推理——对隐私敏感的用户尤其友好。


局限和适用场景,我们聊点实在的

Gemma‑4‑31B 参数大,FP16 下需要接近 60GB 显存;用 Ollama 的 4‑bit 量化版大约需要 18–24GB 内存。如果你用的是 16GB 内存的轻薄本,运行会非常慢甚至失败——那种情况下,可以考虑使用 Qwen‑3.6‑35B‑A3B 等更轻量的多模态模型,效果会差距一些,但依然可用。

另外,模型生成的叙事偶尔会“加戏”——自动补全出一些照片里并没有发生的事情。虽然这使得文字更生动,但如果用于严谨的档案管理,建议你在拿到叙事后再快速扫一眼,把关一下事实准确性。

更适合的场景是:个人回忆整理、旅行日志、家庭年册、以及基于叙事文本做的二次分类和检索。如果你想为照片库建立一个“搜情绪”的入口,这种方法成本极低且效果惊艳。

那些年你拍过的成千上万张照片,终于不再只是躺在硬盘里的数字文件了——Gemma‑4 就像是帮你把每一帧都写好了旁白,你要做的只是点一下播放键。


皖ICP备2025105865号-2|皖公网安备34010402704739号