跳到正文
发现
桌面应用设计创意

Fotufilm:开源胶片模拟引擎

开源的胶片模拟引擎,可处理照片与视频,附带 macOS/Linux 桌面应用、命令行工具、Resolve 与 Final Cut 插件及浏览器编辑器。

admin
发布于 2026-10-28
浏览
4
访问
0
下载
0
版本
v1.14.1
平台
macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

Fotufilm 是一个开源的胶片模拟引擎,用于照片与视频。它不只套用预设滤镜,还按照真实胶片的工作流程分阶段建模:光线如何让胶片曝光、图像如何显影成染料或银盐,以及这卷胶片如何变成照片、扫描件或被观看的反转片。颜色、对比度、颗粒与光晕都跟随所选胶片的属性与渲染工艺。

仓库包含共享引擎、命令行工具、Mac 应用、DaVinci Resolve 与 Final Cut Pro 插件,以及浏览器端的照片与视频编辑器。

主要功能

  • 分阶段胶片模型:场景光 → 胶片曝光 → 显影与颗粒 → 打印/扫描/直接观看 → 输出图像。
  • 光谱曝光:从 RGB 估算光谱,在 380–780 nm 范围内以 5 nm 步进(81 个波长)评估胶片感光度,各层按自身感光度记录光线。
  • 乳剂扩散与光晕(halation):模拟光线穿过片基返回并曝光邻近区域,在高光源周围形成光晕。
  • 特性曲线显影:把每层曝光映射为光学密度,塑造暗部响应、中间调对比与高光。
  • 颗粒生成:按胶片的颗粒度与密度响应改变显影密度,颗粒尺寸以真实胶片物理尺寸表达,再按所选画幅与取景范围缩放。
  • 输出介质建模:打印介质带有自己的光谱响应与显影曲线;扫描模式把负片转成正像;反转片可直接观看或印到 Ilfochrome/Cibachrome 相纸。
  • Digital Reference 转换:提供 Reference Exposure、Graded Print、Auto Levels(默认)三种负片转换方式;Auto Levels 像实验室扫描仪那样逐帧重新定时。
  • 输出控制:Paper Grade(0–5,默认 2)设定分级曲线对比度;Screen Exposure(±3 档)在中间灰处整体提亮或压暗。
  • 彩色负片色彩校正:Cyan / Red、Magenta / Green、Yellow / Blue 在 Auto Levels 之后、输出曲线之前调整,范围 -1 到 +1。
  • 数据驱动胶片配置:同一引擎读取彩色负片、黑白与反转片的感光特性、特性曲线、染料、颗粒与空间行为数据。

命令行对应参数包括 --paper screen --digital-reference reference-exposure|graded-print|auto-levels、--screen-grade、--screen-exposure、--scene-kelvin、--screen-cyan、--screen-magenta、--screen-yellow。

安装与使用

macOS 桌面应用:使用 Fotufilm-macOS.pkg 安装,或把 Fotufilm-macOS.zip 解压到「应用程序」目录;两者均已签名并公证。仅需 Resolve 插件时可使用 Fotufilm-OFX-macOS-1.14.1.zip。

Linux(alpha):Fotufilm-Linux-x86_64.AppImage 可在 x86-64 桌面运行,通过 CUDA 使用 NVIDIA GPU,其他 GPU 走 Vulkan;影片通过系统 FFmpeg 打开与导出,但暂时无声。安装 Resolve 插件需执行:

./Fotufilm-Linux-x86_64.AppImage --install-ofx-plugin

然后重启 Resolve。

从源码构建引擎(需要 Xcode 26 或更新版本,以及 Halide):

brew install halide
swift build
python3 tools/test-engine.py

命令行处理图像:

swift run fotufilm --list-stocks
swift run fotufilm input.jpg output.jpg --stock gold200

构建桌面应用与插件(目标为 Apple silicon、macOS 14 或更新版本,以及 x86-64 Linux):

flutter/build.sh

构建产物位于 build/flutter-host/Fotufilm.app,同时包含 Resolve 插件;若需包含 Final Cut 插件,需先安装 Apple 的 FxPlug SDK。

注意事项

  • 模型结合了公开测量数据与物理、统计近似。RGB 无法唯一还原原始场景光谱,已裁剪的高光也无法补回缺失的曝光;数字化曲线受原始图表限制,超出已公布范围的部分为外推;颗粒模型描述的是整体纹理而非单颗晶体。结果会因输入、配置数据与观看条件而异。
  • Auto Levels 逐帧测光,适合单张照片;若要在视频或批量处理中保持一致曝光,应改用固定模式。引擎宿主可为视频提供时间平滑的 sceneHighlightStops 测量值。
  • 彩色负片的 CMY 校正采用相对校正单位,并非标定过的扫描仪步进;三项取相同正值会整体压暗,可用 Screen Exposure 补偿,校正也可能让近黑区域染色或把通道推向裁切。反转片与黑白不受这些设置影响。
  • Linux 支持目前为 alpha。

本作品整理自 GitHub 开源项目 DhaliwalX/fotufilm-engine,原作者 @DhaliwalX,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v1.14.1当前版本

    DaVinci Resolve 与 Final Cut Pro 插件在 Output 下新增 Shadow Detail 与 Highlight Detail;同步发布已签名公证的 macOS 安装包和 Linux(alpha)AppImage。

评论