SpektraLab 1.3.3 · macOS · Apple 芯片

不是滤镜。
是冲印。

打开 RAW 文件,选择胶片和相纸并得到物理建模的照片。

免费开源 · macOS 15 或更高版本 · Apple 芯片 · 30.7 MB DMG,已签名并公证

SpektraLab 窗口:黄昏的曼哈顿下城,Kodak Portra 400 胶片,印在 Kodak Portra Endura 相纸上;左侧是“胶片与相纸”栏,右侧是“参数”栏。

曼哈顿下城,Shot on Kodak Portra 400 with Kodak Portra Endura Paper

RAW 进,照片出。

一次拖动,整张底片,完整印出。

左边是通用 RAW 解码。右边是 SpektraLab 编辑的同一张画面,经胶片显影、再印到相纸上。

午后阳光下的院子,Kodak Portra 400 胶片显影,印在 Kodak Supra Endura 相纸上。
同一个院子,相机 RAW 的解码结果。
RAW 解码 冲印
Kodak Portra 400 → Kodak Supra Endura · 135

是物理计算,不是预设

光谱计算,不是套 LUT。

预设是一张改变颜色的表。SpektraLab 改变的是光——先穿过胶片的染料层,再穿过相纸的——无论底片是哪种画幅,画面的样子就是这些材料的真实表现。

81 个波长,贯穿始终

光线从 380 nm 到 780 nm、以 5 nm 为步长逐一追踪,先经过胶片的感光特性与染料密度,再经过相纸的,一如放大机和扫描仪的工作方式。引擎以光谱为工作空间。

物理尺度

设定底片尺寸,颗粒、光晕和成色剂扩散就按画幅以微米为单位缩放。把同一张照片当成 35 mm,颗粒就更粗——理应如此。

快到跟得上滑块

C++ Metal 引擎直接编译进应用,没有解释器,也没有后备方案。相纸一侧的调整直接从缓存的底片重印;全分辨率渲染不到一秒。

4500 万像素重印,预览尺寸
0.01秒
全分辨率渲染
<1秒
单个可执行文件
32MB

一条色彩管线

从解码到导出,全程 ProPhoto RGB。每个文件只做一次色域映射,映射到你指定的色彩空间,并在写入前按自己的分辨率软打样。文件,是不动的那个基准。

读得出的宽容度

读数告诉你胶片与相纸留住了场景的多少,以相对中灰的档数表示——只对画面测光,不计片边。留不住的部分,由“场景置位”通过引擎自身的拟合拉回来。

1:1 下显示的优胜美地花岗岩峭壁与天空可见逐像素渲染的胶片颗粒。

1:1 颗粒

颗粒、光晕、DIR 成色剂与耀光,都是过程中的环节,各有自己的强度——不是叠加上去的一层。每款黑白胶片默认使用厂商公布的颗粒度计算。

工作原理

一间暗房,六个环节。

每个控件有它所属的环节。胶片画幅、颗粒与光晕作用于显影之前;放大机滤色与相纸在显影之后;调色只作用于扫描结果。

  1. 1场景光RAW 线性解码到 ProPhoto 色域
  2. 2相机 + 胶片光谱曝光到潜影
  3. 3显影特性曲线、DIR 成色剂、颗粒
  4. 4放大机 + 相纸滤色自动求解,相纸曝光
  5. 5印相得到相纸的染料密度
  6. 6扫描标准光源下观看,输出只转换一次

胶片与相纸

24 款胶片,9 款相纸,款款实测。

每一款都来自实测:特性曲线、染料光谱、成色剂与光晕的表现,一项不少。选好胶片,相纸自动配好。正片不印相,直接扫描。

彩色负片

  • Kodak Portra 160
  • Portra 400
  • Portra 800
  • Portra 800 · Push 1
  • Portra 800 · Push 2
  • Ektar 100
  • Gold 200
  • UltraMax 400
  • Fujifilm C200
  • Pro 400H
  • X-Tra 400

正片

  • Kodak Ektachrome 100
  • Kodachrome 64
  • Fujifilm Provia 100F
  • Velvia 100

电影负片

  • Kodak Vision3 50D
  • Vision3 200T
  • Vision3 250D
  • Vision3 500T
  • Verita 200D

黑白 1.3.3 新增

  • Kodak Tri-X 400
  • T-Max 100
  • Fujifilm Neopan 100 Acros II
  • Ilford HP5 Plus 400

相纸

  • Kodak Endura Premier
  • Portra Endura
  • Supra Endura
  • Ultra Endura
  • Ektacolor Edge
  • Fujifilm Crystal Archive Type II
  • Kodak Vision 2383 电影
  • Vision Premier 2393 电影
  • Ilford Multigrade IV RC 黑白
海边荡秋千的孩子。Kodak Portra 160,6×6 画幅,Kodak Portra Endura 相纸。
Portra EnduraPortra 160 · 6×6
阳光洒进院子,街坊们聚在一起。Kodak Portra 400,135 画幅,Kodak Supra Endura 相纸。
Supra EnduraPortra 400 · 135
路人走过一面彩绘墙。Kodak Portra 400,未加片边,Kodak Ultra Endura 相纸。
Ultra EnduraPortra 400 · 未加片边
黄昏时分,隔着海湾远眺旧金山。Fujifilm Pro 400H,135 画幅,Fujifilm Crystal Archive Type II 相纸。
Crystal Archive Type IIPro 400H · 135

黑白胶片,配 Ilford Multigrade IV RC 相纸

华特·迪士尼音乐厅。Fujifilm Neopan 100 Acros II,135 画幅,Ilford Multigrade IV RC 相纸。
Acros II 100 · 135专属的颗粒与片边字
雪后的大峡谷。Kodak T-Max 100,6×9 画幅,Ilford Multigrade IV RC 相纸。
T-Max 100 · 6×92 号滤色片 + 相纸曲线

胶片与相纸的名称是各厂商的商标,在这里只用来说明实测的是哪种材料。SpektraLab 与 Kodak、Fujifilm、Ilford 没有关联,也未获其认可。

片边 · 日期后背

胶片,原原本本。

片边功能把画面放回它的片条上:片基、齿孔、片边字、格号,每款胶片各不相同,全部按真实胶片实测。日期后背把日期直接曝进底片,120 胶片还能加上拍摄数据。这些字和画面一样,带着颗粒与光晕。

半格拼接

两张照片,一格胶片。

把两张照片拼进一格 135 胶片,左右并排,或上下排列。两个片格各自测光,白平衡、印相和调色也各管各的。在胶片条里它们算一张,导出也是一张。

  • 点一下片格,就选中了里面的照片。接下来在“输入 / 相机”“场景置位”“放大机”和“显影后”里做的调整,只对这一张生效。
  • 在片格里拖动画面,想放哪就放哪。滚动或捏合就能缩放,以指针为中心。
  • 选中两张照片,按 ⌘J 就拼好了。
SpektraLab 窗口里是一组半格拼接,用的是 Fujifilm Provia 100F:左边是海港小镇,右边是光轨,“半格拼接”面板已展开。
一张拼好的半格照片,Kodak Portra 400:码头的栏杆上停着几只鸟。
导出为一张照片 · Portra 400 · 135 半格

工作流

从冲印到交付,一气呵成。

导出配方,写入前先打样。设置剪贴板,一次调好整个文件夹。命令行和 MCP 服务器,用的也是同一个会话。

导出页面:配方列表、存储位置与命名、格式与尺寸,还有输出预览,画面是 Kodak Portra 160 拍的海边秋千。

导出配方,自带软打样

格式、位深、色彩空间、尺寸、命名、文件夹,一份配方全部记下。可以是 Display P3 的 JPEG、ProPhoto 的 16 位 TIFF、sRGB 的 8 位 PNG,也可以是数字中间片(DI),留给其他软件调色。每个文件写入前,都按实际分辨率逐像素打样。批量导出一张一张来,4500 万像素的照片,也只占一次渲染的内存。

设置剪贴板:胶片与相纸、曝光、白平衡、胶片效果、相纸效果、场景置位,下方是“复制”和“粘贴”。

设置剪贴板与同步

勾选想带走的设置:胶片与相纸、曝光、白平衡、胶片效果、相纸效果、场景置位。然后复制、粘贴,或者一键同步到所有选中的照片。裁剪、调色和片边不会跟着走,每张照片保留自己的。

$ spektralab edit beach.NEF --patch '{"params":{"filmStock":"kodak_portra_400",
                                "printStock":"kodak_supra_endura"}}'
$ spektralab process beach.NEF --preview beach.jpg
$ spektralab export beach.NEF --recipe "JPEG — Display P3"
$ spektralab mcp            # 以 stdio 方式启动 MCP 服务器

支持脚本。智能体只修图,不生图。

窗口、spektralab 命令和 MCP 服务器,操作的是同一个会话。智能体可以替你选胶片、选相纸、定曝光、调色,但一个像素也不会画。每一张结果,都是你自己也冲印得出来的照片。此功能默认关闭,可在“设置 ▸ 智能体”中打开。

下载 SpektraLab

版本 1.3.3 · 2026 年 10 月 9 日 · 30.7 MB

Apple 芯片 · macOS 15 或更高版本 · 已用 Developer ID 签名,并通过 Apple 公证。打开 DMG,把 SpektraLab 拖进“应用程序”文件夹就行。

SHA-256cf548ed6b83601c468e22430302cab8839fb30f3e5352c6d07a38bf074562c6b

Windows 和 Linux 版还在开发中,Vulkan 引擎和 Qt Quick 编辑器的进展都在 GitHub 上,暂时没有可下载的版本。