自动
在整张照片中查找并修复缺陷。
相机或扫描仪采集、反相调整与打印,
整合为一套完整的胶片工作流程。
macOS 14.0 或更高版本 · Apple Silicon 与 Intel · Apache-2.0
negaflow 可以导入扫描仪扫描的胶片,或数码相机翻拍的胶片,并在 macOS 上完成处理。反相与调整引擎名为 Chroma Engine,灰尘和划痕修复功能名为 GrainMend。整套流程均为独立开发,将胶片反相、调整与输出集中在一个应用中。
反相与调整引擎
Chroma Engine 是 Chromabase 模块中的胶片反相与调整引擎。
MAIN
自动校正
无需额外操作,应用会自动测量胶片片基,并将负片反相为正片。需要手动调整时,可用吸管选择未曝光区域,或直接输入 RGB 数值。
7 种彩冲机与冲印目标外观
MAIN常规处理PRINT使用打印机 ICC 的输出HSNoritsu HS-1800SPFujifilm Frontier SP-3000F135Pakon F-135 PlusHRKodak Professional HR 500 PlusEXPIRED老胶片修复PROFILES15 个内置扫描仪配置文件 · realOnly默认使用 MAIN 和手动调整。自动色调、自动白平衡、自动色阶与自动颜色只会在主动执行时应用。
输出可使用 sRGB、Display P3、Adobe RGB 或自定义 RGB ICC 配置文件。
HS、SP、F135 和 HR 以长期用于专业冲印店工作流程的代表性胶片扫描仪为处理目标。
机型名称仅用于标识处理目标,不代表实现厂商软件或内部算法,也不代表兼容模式、合作或认可。
缺陷修复
GrainMend RGB 是独立开发的软件修复方式,无需红外通道即可检测并修复灰尘、针孔、划痕和乳剂损伤。
GrainMend RGB
引导、画笔和自动模式都在 Mac 本地处理。处理时间取决于图像尺寸、选区和 Mac。
在整张照片中查找并修复缺陷。
在用户指定的区域内查找缺陷。
直接涂抹需要修复的位置。
将指定来源位置的像素复制到其他位置。
GrainMend RGB 无需红外通道即可寻找缺陷候选。复杂纹理可能产生误检,因此可以检查蒙版和修复结果。
可直接查看检测蒙版和修复结果,并按需要重新修正对应区域。
每个 GrainMend RGB 图层都可以调整强度、查看蒙版,并可单独停用或删除。
误检区域出现的可能性较高时,会向用户提示。
GrainMend IR 是扫描仪插件提供红外通道时可选的辅助方式。IR检测结果会加入与GrainMend RGB相同的编辑历史。
GrainMend RGB 是独立开发的软件方法,不同于硬件红外除尘。GrainMend IR 使用扫描仪的红外通道,但并非 Digital ICE、iSRD 或 SRDx 的实现或兼容模式。
印相与导出
过去在暗房里对着相纸做的事,现在在屏幕上做。定好纸张、边距和布局,看到的样子就是印相文件的样子。
蓝晒、玻璃干版和明胶银盐是照着那种感觉做的,不是测量真实药液、干版或相纸得来的。
支持 sRGB、Display P3、Adobe RGB 以及自定义 RGB 打印机 ICC 配置文件。
可以像在暗房里那样定边距,并以 16-bit TIFF 渲染高分辨率印相文件。
色彩运算管线
在伽玛编码前于 32-bit Float Linear 空间中计算反转与影调,最大程度减少剪切与阶调损失。
根据线性透过率与未曝光片基测量值精确计算密度 D = log₁₀(Dmin/T)。
采用基于 4 个基准点且存在精确反函数的专用印相响应曲线。
胶片乳剂特性、扫描光源与扫描仪风格分阶段独立评估。
在屏幕显示与导出阶段精准转换至 sRGB、Display P3、Adobe RGB 及自定义 RGB Printer ICC。
支持 R/G/B 各通道 16-bit(共 48-bit,281 万亿色)输入与输出,大幅调色时也能抑制色彩断层与阶调损失。
48-bit 输入输出与 32-bit 浮点运算相结合,为胶片归档和大幅面输出留出余量。
导入工作流
支持 RAW/TIFF 导入。解耦背光色温与片基,实现均匀反转。
通过独立进程 negaflow-scanner-sane 插件连接 SANE 扫描仪。仅当设备和后端支持且插件验证结果后,才以 16-bit TIFF 导入。
胶片配置文件
应用内置 15 个扫描仪配置文件,均由我自行拍摄的胶片资料制作。配置文件共记录 928 条图像观测值,目前全部标记为 realOnly。
realOnly 表示配置文件基于真实扫描资料制作,目前仍在持续开发和完善。今后会继续提供来自更多胶片和设备的扫描资料,并以此扩展配置文件的覆盖范围和完成度。
配置文件不会仅凭扫描仪名称自动应用,必须由用户明确选择。文件与清单同时提供 SHA-256。
928 是各配置文件观测值的合计,并不表示 928 张不同照片。同一胶片可能在多台设备中重复统计。所有扫描件均经过直接检查,已排除存在误检的文件,配置文件依据这些实测数据制作。
功能对比
negaflow 是一款独立的 macOS 应用,可完成胶片反转、显影、缺陷修复、打印和导出。下表只说明 negaflow 的当前功能。Negative Lab Pro、FilmLab、Negbase、SilverFast、VueScan 等其他产品的功能、价格和文件处理方式会随版本变化。
| 功能特性 | negaflow | 其他胶片工具 · 请查阅当前产品文档 |
|---|---|---|
| 价格与许可 | 免费,Apache-2.0 开源。无订阅、无试用限制,源码可读 | 免费、买断和订阅方式因产品而异 |
| 运行方式 | 独立的 macOS 应用:导入、显影、修复、打印、导出都在一处 | 可能是插件、独立应用或扫描仪应用 |
| 胶片片基 (橙色面罩) 测量 | 空间分析 (FilmBaseEstimator) 自动测量、吸管、RGB 手动输入 | 不同产品处理片基的方式不同,应查阅其当前文档 |
| 划痕与灰尘修复 (GrainMend) | 使用可检查蒙版的 RGB 修复;插件提供时可选 IR 路径 | RGB 修复与硬件 IR 是不同方法,支持情况因产品而异 |
| 原文件与元数据完整性 | 无损编辑,BagIt 归档规范,SHA-256 校验 | 原文件与附属文件的处理方式因产品而异,使用前应确认 |
| 胶卷级 EXIF 拍摄记录 | 导出时自动合成相机、镜头、胶片与曝光 EXIF | 元数据字段与导出方式因产品而异 |
| macOS 原生硬件加速 | Metal 与 Core Image 32-bit 浮点处理 | 处理方式与硬件加速因平台和产品而异 |
指南
镜头、对位和胶片平整度合适时,相机翻拍可以兼顾速度与细节。下面是从设备搭建到 RAW 显影的实用流程。
需要可拍 RAW 的相机、适合所需放大倍率的微距镜头、胶片夹、灯箱,以及翻拍架或三脚架。接圈和皮腔也能使用,但要在实际倍率下检查四角清晰度与像场平坦度。
使用亮度均匀的漫射光源。CRI 95 以上和 5000–5500K 只是常见起点,并不保证色彩准确。拍摄前检查频闪或条纹,必要时调整快门速度。
传感器平面必须与胶片平行,否则只有一部分能合焦。可靠的做法是镜子法:在灯箱上放一面小镜子,用实时取景调整相机,直到镜头的反射像正好在画面正中。水平仪只有在三脚架中轴真正垂直时才说明问题。
胶片弯曲会让边缘脱焦。先用胶片夹压平;如需玻璃,应使用实际胶片检查反光与牛顿环。
从原生最低 ISO 开始,并实拍找出镜头最清晰的光圈;f/5.6–f/8 是常见起点。放大实时取景手动对焦,使用快门线或延时,拍 RAW 并避免高光端溢出。
把 RAW 在 negaflow 里打开,片基会自动找到:它在亮度分布里归并连通区域,并排除齿孔、胶片夹和裸露的背光。结果不满意,就用吸管取未曝光处,或直接输入 RGB。
指南
拉一条曲线翻过来颜色就发浑,是有原因的。三件事各自要做:把橙色蒙版除掉、在线性空间反转、再套一条印相曲线。
橙色蒙版是盖在整幅画面上的一层滤镜。要在未曝光的胶片上测,而不是画面内部,否则这一格自己的颜色会混进蒙版。negaflow 通过归并亮度分布里的连通区域自动找到它,也可以用吸管或直接输入 RGB。
蒙版是透射率,在线性空间里靠除法去掉。D = log₁₀(Dmin/T)。在带伽马的 8 位图像里做减法,通道就会散开,那就是常见的颜色交叉。
先加伽马再反转,最先糊掉的是暗部层次。negaflow 在 32-bit 浮点线性空间里完成反转和影调计算,最后才交给输出色彩空间。
负片本身没有黑,也没有白,那是相纸定的。以黑场、18% 中灰、白场为锚点的曲线,才能让画面读起来像照片。
片基的值属于同一光源下拍的同一卷。逐格重测,整卷的影调就会飘。用同一个值贯穿全卷,逐格只调曝光。
显影目标是可选择的风格,并非复制冲印店扫描仪的软件或输出。继续编辑可导出 16-bit TIFF;直接使用可导出写入整卷 EXIF 信息的 JPEG。
专业管线与生产力
只复制选中的显影项目,并可用键盘微调各项数值。
彩色负片、正片、黑白负片与正片分别使用适合各自胶片类型的处理路径。
片基测量值与所选光源配置文件分开保存。也可不用自动测量,改用吸管或直接输入 RGB。
把一张照片中选定的设置复制到同一卷的其他照片,再按需要逐张调整。
高级图库与精密工具
即使移动硬盘或 NAS 未连接,也可立即查看图库缩略图与渲染预览。
搜索文件名、文件夹、胶卷、胶片、相机、镜头、关键词和日期,再按评分与工作状态筛选。
从固定的 IT8.7/1 图像与参考文件记录 RGB、Lab 和 DeltaE00。真实扫描仪精度仍需用对应设备与实体色卡测量。
分别调整清晰度、锐化、降噪和胶片颗粒。
在棕褐色与硒色调色中调整阴影色相、高光色相和强度。
只有插件报告支持时,才显示光源、分辨率、bit depth、扫描区域、曝光和 IR 控制。
自由配置网络/打印预设及 {film}_{date}_{roll}_{num} 等动态文件名规则。
跟随 macOS 浅色/深色模式,并遵循原生无障碍访问标准。
应用界面
01
胶卷、文件夹、收藏集、评分、堆叠与虚拟副本。
negaflow-scanner-sane。扫描结果可直接在图库中方便地检查。
GitHub ↗
02
反相与调整引擎名为 Chroma Engine,灰尘和划痕修复功能名为 GrainMend。整套流程均为独立开发,并内置 15 个由我自行拍摄的胶片资料制作的扫描仪配置文件。
03
JPEG 与 16-bit TIFF 导出、ICC 配置文件和打印版式。
04
快捷键、文件夹路径、预设和调整参数都可以自定义。
基本流程
扫描仪插件
negaflow-scanner-sane 是 negaflow 扫描仪导入功能使用的插件。
扫描仪支持
negaflow-scanner-sane 对已知 SANE 1.4 目标采用的处理路径。
| 扫描仪系列 | SANE 后端 | SANE 1.4 状态 | 插件处理路径 |
|---|---|---|---|
| Plustek OpticFilm 7200, 7200 v2, 7200i, 7300, 7400 v2, 7500i, 7600i | genesys |
Complete | 专用胶片扫描仪路径 |
| Plustek OpticFilm 7400 v1 | genesys |
支持表标为 Complete,但机型专用修正在 SANE 1.4.0 之后才合入 | capability 驱动路径;stock 1.4.0 实机结果未验证 |
Plustek OpticFilm 8100, USB 07b3:130c |
genesys |
Complete | 专用胶片扫描仪路径 |
Plustek OpticFilm 8100, USB 07b3:1824 |
无 | Unsupported | 不作为可用设备处理 |
Plustek OpticFilm 8200i, USB 07b3:130d |
genesys |
Complete | 专用胶片扫描仪路径 |
Plustek OpticFilm 8200i, USB 07b3:1825 (GL128) |
无 | Unsupported | 不作为可用设备处理 |
| Plustek OpticFilm 120, 120 Pro, 135, 135i, 9000i Ai | 无 | Unsupported | 不作为可用设备处理 |
| Epson Perfection V700/V750 (GT-X900), V800/V850 (GT-X980) | epson2 |
Good | 在设备报告时使用透射源和定位式平板区域 |
| Nikon Coolscan LS-2000, LS-40 ED, LS-50 ED, LS-4000 ED, LS-8000 ED | coolscan3 |
视型号为 Complete 至 Minimal | 专用胶片扫描仪路径 |
| Nikon Coolscan LS-5000 ED | coolscan3 |
SANE 1.4 中未经测试,可能与 LS-50 类似 | 专用胶片扫描仪路径 |
| Nikon Coolscan LS-20, LS-30, LS-1000 | coolscan |
视型号而定 | 仅 SCSI |
| Nikon Coolscan LS-9000 ED | 无 | Unsupported | 不作为可用设备处理 |
| Reflecta ProScan/CrystalScan/DigitDia and PIE PowerSlide | pieusb,旧 SCSI 型号使用 pie |
视型号与型号编号而定 | 仅使用设备报告的选项 |
| Pacific Image PrimeFilm XA, XAs, XA Plus | 无 | Unsupported | 不作为可用设备处理 |
| 其他支持透射稿的平板或胶片扫描仪 | 视后端而定 | 视型号而定 | 按功能报告处理,不按型号名回退 |
本表不代表所有同名设备都一定可用。请先查看 SANE 最新设备列表,再用 scanimage -L 和 scanimage -A 检查实际连接的设备。
如今模拟摄影再次流行,但背后的流程却停滞不前。除非进行光学放大,胶片必须先转换为数字图像才能被看见。然而实验室与冲印店不断减少,厂商和产品支持也随之缩减。
这个项目始于我在不同经历中感到的不便,以及对新功能的期待。我根据使用 35mm 和中画幅胶片积累的经验与知识,从头到尾独立开发了整套流程。它最初只是供自己使用的小项目,如今 negaflow 已经不止于此。
最重要的是,它要真正好用、顺手、快速,并且能够可靠地产出正确结果。独立开发的 negaflow 原生支持 macOS,也融合了胶片实验室与个人工作流程。
谨以此纪念尼埃普斯拍下第一张照片 200 周年的这个夏天。
更新日志
请从 GitHub Releases 下载当前版本。大多数 Mac 请选择 Universal PKG,它会将 negaflow.app 直接安装到 /Applications。同一发布页面也提供用于手动安装的 DMG 与 ZIP。
negaflow-1.0.5-1-macOS-universal.pkg
Apple Silicon 与 Intel
negaflow-1.0.5-1-macOS-arm64.pkg
仅限 Apple Silicon
连接实体扫描仪需要单独的扫描仪插件。
常见问题
当前的 GitHub 发布文件采用 ad-hoc 签名。若首次启动被系统拦截,请前往 系统设置 → 隐私与安全性 并点击 仍要打开。
连接实体扫描仪需要单独的开源插件 negaflow-scanner-sane。即使没有插件,也可立即对翻拍文件或已有扫描件(TIFF、JPEG、RAW)进行冲印。
是的,支持 macOS Image I/O 处理的所有相机 RAW 格式以及 8-bit/16-bit TIFF、JPEG、PNG 文件。
不会。negaflow 采用无损方式运行。原始文件与第三方附属文件绝不会被修改,所有编辑记录均保存在独立的 SQLite 目录中。
是的,以 Universal PKG 格式发布,同时支持 Apple Silicon (M1/M2/M3/M4) 与 Intel Mac,需要 macOS 14.0 或更高版本。
可以。导出保留 EXIF 元数据的 16-bit TIFF 或 JPEG 文件后,可无缝传递至 Lightroom、Photoshop 或 Capture One。
不需要。插件仅在直接控制物理平板或胶片扫描仪时需要。数码相机翻拍 (RAW/TIFF) 可直接进行冲印。
negaflow 是基于 Apache License 2.0 的开源软件,无需支付任何月费即可免费下载和使用。免费。就是不要钱。没有付费页面,也没有试用期。只要保留许可证和声明、说明改动了什么,改了再分发也可以。名称是另一回事。Apache 2.0 并不授予商标权。
目录使用 SQLite WAL 模式保存,并在内存压力增大时缩减帧缓存。实际速度取决于图库规模、存储设备和 Mac。
可以。支持保存自定义预设,或通过 Settings Paste Scope 选择性将曝光、影调、去尘等参数一括应用至 36 张整卷照片。