Shan Hannadige 的胶片摄影工作流始于将 35mm 胶卷装入 Canon AE-1P 相机进行拍摄,随后将胶片送往实验室冲洗,接着将底片剪成条状并使用 Plustek 扫描仪扫描每一帧。扫描完成后,每个底片都会在 darktable 中打开以反转颜色并进行手动编辑,这个过程每卷 36 曝光的胶片大约需要耗时四小时。随着胶卷数量的增加,摄影师花费在处理图像上的时间甚至超过了拍摄时间,这促使他寻找简化工作流的方法。

这张图片展示了工作流的初始扫描步骤,即使用 Plustek 扫描仪和 VueScan 软件将底片数字化,然后再进行自动化处理。
为了自动化扫描后的步骤,Hannadige 保留了 VueScan 软件用于图像采集,并构建了一个处理流水线,首先使用 NumPy 脚本将底片转换为正片。该脚本测量整卷胶片的颜色密度,并利用胶片开头的空白槽位作为参考,确保颜色校正的一致性,从而避免像日落这样的画面被剧烈改变。通过图像分析检测灰尘和划痕,并配合上下文过滤以避免水面反光等误报,标记区域由 LaMa 修复模型填充,该模型会从周围的胶片区域复制细节。颗粒感通过可调节的曝光、对比度和色温控制来处理,允许摄影师对单张或批量修正进行审核和批准。

这张图片展示了颜色校正步骤的结果,其中 NumPy 脚本以胶片的空白开头为参考将底片转换为正片。

这张图片描绘了灰尘和划痕检测 UI,其中上下文过滤标记出区域,供 LaMa 修复模型从周围区域复制细节。
处理完成后,图像由在 Ollama 中本地运行的 Qwen3-VL 自动标注,该模型每帧大约耗时五秒即可生成描述性标签。这些标签与嵌入的相机、镜头、日期和胶片型号数据相结合,创建了一个可搜索的库。批准后的图像通过 Hannadige 的个人网站上传到 Cloudflare R2 存储桶,最大限度地利用免费层级的存储空间和带宽。为了展示效果,他构建了一个交互式的 three.js 画廊,其外观类似于一张铺有胶卷罐、带有真实标签艺术和磨损痕迹的毛毡桌;用户可以“拿起”一个胶卷罐,拉出胶片以展示画面,并观看它掉回桌面上,将怀旧情怀与趣味十足的数字体验完美融合。该项目耗时 11 天,共提交 64 次代码,最终形成了一个包含 22 卷胶卷和 314 张照片的画廊,这些照片可追溯到 2020 年。

这张图片展示了最终的展示步骤,其中批准的图像准备上传到 Cloudflare R2,并在模仿毛毡桌的交互式画廊中展示。