fotufilm

Download for Mac. See software and stock licences.

Documentation

Fotufilm documentation

Learn how to open a photo, choose a film, make edits, and save your work. You’ll also find guides for the camera, video, and plugins.

Updated September 2026 iOS & iPadOS 18+ macOS 14+

Getting started

Open a photo or video and choose a stock under Film. Choose the film size under Format, then adjust exposure and colour. Press and hold the image to see the original; on Mac, click and hold.

On iOS, Fotufilm checks your device on first launch to set camera and memory limits. Interactions use visual feedback without app-generated haptics. On iPhone, controls and transitions use gentle motion without bounce or staggered entrances. Panels follow your drag and can reverse smoothly. Pull a panel's top handle downward to begin collapsing it into its rounded button immediately; a short pull settles back open. Pull upward to enlarge a resizable panel. These transitions also respect the system Reduce Motion setting.

Platforms and licensing

Fotufilm runs on iPhone and iPad (iOS 18+) and Mac (macOS 14+). On iPhone and iPad, Fotufilm is free with no restrictions: every film, photo and video editing, the camera, supported RAW capture and import, Lab controls, custom film authoring, optical lens filters, and every photo and video export. A free copy shows an Unlicensed tag, and the photos and videos it develops carry a small FOTUFILM watermark in the lower-left corner, lettered like film edge printing. Exporting an unchanged original adds no watermark. If you would like to support development, you can subscribe or buy once from the tag, from Settings, or from Remove Watermark on the export screen. Either one removes the tag and adds a Watermark switch to the export screen; Fotufilm remembers your choice.

The Mac release includes photo and video editing, batch export, the standalone fotufilm command-line renderer, and host plug-ins for DaVinci Resolve and Final Cut Pro.

Importing photos and video

Photos

Fotufilm opens JPEG, HEIC, PNG, TIFF, and supported camera RAW files using embedded color profiles. Camera RAW decodes as scene light to preserve highlight headroom for the film shoulder and halation stages. For Adaptive HDR HEIC, expanded linear highlight ratios are retained while normalizing alternate-rendition gain offsets with a single frame-wide exposure placement shared by the apps and the fotufilm command-line renderer. Automatic and Full Range use the SDR rendition only to measure this exposure placement; Standard Range sends the tone-mapped SDR rendition to the film model.

On Mac, files open via standard file dialogs, drag-and-drop, or Finder context menus (Open With → Fotufilm or Services → Open in Fotufilm). Original RAW data remains untouched for unedited RAW export.

On iPad, open a photo or video from the photo library, from Files, or by dropping it on the editor. A file shared to Fotufilm from another app, or opened with Open In, opens in the editor too.

Scanned negatives on Mac

Choose File → Import Scanned Negative… with an unconverted scan or RAW file. Select Preview Positive, then Import Positive. Automatic conversion estimates color balance without a drawn reference; the full-resolution positive opens with Normal selected and Crop ready. Conversion is approximate: review color and tone, especially with clipped scans or strongly colored subjects. Use unadjusted scans with their file color profile and choose Linear Samples only for a known linear scan. Border sampling remains an optional manual override; choose Auto to return to automatic conversion. Cancel preserves the current photo.

Rolls of negatives

In the desktop and browser editors, each directory of a library folder is a roll; a subfolder is a roll of its own. Opening one photo from the library brings every picture of its roll into the strip below the photograph, in the library's order; choosing several photos opens just those. A frame opened for the first time starts from the film, clear film, light frame and roll balance of the roll's frame edited last.

The Roll panel of a scanned negative balances the whole roll. Measure Roll reads the highlights of every frame and balances each frame on the roll's median colour; each frame keeps its own exposure, so a darker frame does not print darker. The balance is kept with each frame's edit and the shown frame's change can be undone. Balance This Frame Alone returns one frame to its own colour and Balance Every Frame Alone returns the roll. Measure again after cropping or adding frames; a roll shot under several lights is better balanced frame by frame.

On iPhone, a roll is a folder on the shelf with a name and a date. Choose + → New Roll…, name and date it, then fill it from a folder in Files (every picture in it and in its subfolders, in name order), from several files, or from several photos in the order they were picked. Each frame opens on the film the first frame's base looks like. Rolls appear on the shelf's Negatives side ahead of scans in no roll; a roll's menu adds frames, renames or redates it, or deletes it with or without its frames, and a scan's menu files it in a roll or takes it out. The Roll page of the Negative deck measures the roll as above.

Scanned negatives on iPhone

An unconverted scan of a colour or black-and-white negative opens from + → Convert Negative, from Photos or Files: camera RAW and DNG, or a TIFF, JPEG, or HEIC that carries its colour profile. It opens in the photo editor as a scanned negative and stays on the shelf, its edit kept beside it.

The title chooses the film the scan is read as; Normal reads it as a plain positive and develops it like a photograph. The Negative deck holds the scan's own reading. Film Base picks clear film from the frame, between frames or at the film's edge, or estimates it from the thinnest film of the scan, and lists the films the base looks like. Colour separates colours a scan has muted: a camera or scanner channel sees a little of every dye in the negative, not just its own. Set Scanned Under to White Light for a camera or scanner, or to Red, Green and Blue LEDs for exposures under each LED merged into one scan, which have little crosstalk to undo, then raise Crosstalk Correction (0–100%, default 0). The frame's highlights read as before, so its exposure and colour balance stay its own; it applies with Normal as well as with a film. For white-light camera scans the correction is not yet fitted to a measured camera: high values turn warm areas red, so start around 30 to 50%. Light Source evens the scan out by a photograph of the bare light source, and Roll balances the frame with its roll. The Print deck offers every output medium with its lamp, viewing, screen conversion, scan exposure and colour, scanner look and dodging, and print frames; Light & Color and the Grade deck work as on a photograph. Camera-only controls, such as Pre-flash, Scene Light and HDR range, are left out. Dust takes dust and hair off the scan, as below; while it is open, a tap on the picture marks a spot or keeps one. Settings pasted onto a negative keep its own reading, and a film that cannot read negatives is not pasted onto one.

Scanned negatives on iPad

An unconverted scan of a colour or black-and-white negative opens from the negative button in the toolbar, from Photos, Files, or a negative already on the shelf. It opens in the editor as a document, as on iPhone, and stays on the shelf with its edit kept beside it. A scan opened for the first time starts on the film its base most looks like; the film menu chooses another, and Normal reads the scan as a plain positive.

On a negative read as a film, the inspector shows Film, Light & Color, Crop and Roll. The Film panel leads with the scan's own reading. Negative lists the films the base looks like and how likely each is, and Show Negative shows the scan as scanned. Film Base reads the scan against clear film: turn on Pick Clear Film and tap the film between frames or at its edge on the uncropped negative, or choose Estimate to go back to the thinnest film of the scan. Colour Separation sets Scanned Under and Crosstalk Correction, as on iPhone. Light Source evens the scan out by a photograph of the bare light source, taken with the same camera setup, and keeps it for every scan made on that light. Dust takes dust and hair off the scan; with Mark Dust by Tapping on, a tap on the picture marks a spot or puts one back. Each change is a step of the edit's history and can be undone.

In the library, the Negatives section holds the scans on the shelf, and Rolls lists each roll by name and date. New Roll… makes one; a roll's menu adds frames from a folder, renames or redates it, or deletes it. A library folder can be imported as a roll, or set to open its pictures as negatives. A scan's menu files it in a roll or takes it out. The Roll panel measures the roll as described under Rolls of negatives, and the other frames' prints on the shelf are redrawn with the roll's balance. Settings pasted onto a negative keep its own reading.

Dust blocks light, so it is found as film denser than the film around it and sharper than picture detail, measured against the film's own grain; on colour film it must also be grey, since dust blocks every colour alike. Busy and repeating picture, such as foliage, raises the bar. Each spot is rebuilt from the clean film around it, with that film's grain put back. Detection works from the visible scan alone, without an infrared channel, so it can miss very small or faint dust and dust on busy picture.

Negatives converted in the earlier iPad converter reopen as documents with their crop and reading. Conversion is approximate: review colour and tone, especially with clipped scans or strongly coloured subjects.

Video

Standard video decoding reads tagged SDR, HLG, and PQ into a unified scene-linear Rec. 2020 input, preserving declared HDR headroom. For processed standard HDR, a clip-wide exposure placement removes brighter alternate-rendition offsets without compressing highlight detail.

If a clip uses log encoding or has missing or inaccurate color tags, specify the encoding explicitly under Film → Source → Encoding. Supported transfer curves and gamuts include Apple Log, Apple Log 2 / Apple Wide Gamut, S-Log3 / S-Gamut3.Cine, S-Log3 / S-Gamut3, S-Log2 / S-Gamut, F-Log / F-Gamut, F-Log2 / F-Gamut, F-Log2 C / F-Gamut C, and HLG / Rec. 2020. Fotufilm models physical emulsions rather than in-camera digital film-simulation modes.

Source interpretation

Automatic respects the range stored in the file container. Full Range preserves all decoded highlight detail. Standard Range tone-maps HDR prior to film simulation; use this only when Automatic misinterprets range.

Camera calibration and color space

The simulation engine operates internally in scene-linear Rec. 2020 with a D65 white point in 32-bit floating point per channel. All incoming pixels are linearized and mapped to scene reflectance, where an 18% neutral gray card sits at 0.18 and a 90% diffuse white reflector sits at 1.0. Emulsion layer absorption, interlayer chemical diffusion, and halation evaluate entirely in this physical scene-linear space.

Measured camera spectral profiles

For supported camera RAW captures, Fotufilm bypasses generic matrix estimates and evaluates measured 3-channel sensor spectral sensitivities from 380 nm to 780 nm at 5 nm increments, using the Academy Software Foundation dataset (rawtoaces-data).

Bundled measured spectral profiles include:

  • Sony: Alpha full-frame (ILCE-7M3, ILCE-7M4, ILCE-7CM2, ILCE-7RM2, ILCE-7RM3, ILCE-7RM4, ILCE-7SM2, ILCE-7SM3, ILCE-9), APS-C (ILCE-6400), and compact (DSC-RX100M4).
  • Canon: EOS R series (EOS R, EOS RP, EOS R5, EOS R5 Mark II, EOS R6, EOS R6 Mark II, EOS R10), EOS 5D series (EOS 5D, 5D Mark II, 5D Mark III, 5D Mark IV, 5DS), EOS-1D series (EOS-1D X Mark II, EOS-1Ds Mark II, EOS-1Ds Mark III), APS-C / Rebel (EOS 100D, 200D, 200D II, 600D, Digital Rebel XTi, EOS M), and PowerShot S90.
  • Nikon: Z series (Z f) and D series (D850, D810, D800E, D700, D200, D70, D7000, D5300, D5100, D3300).
  • Fujifilm: GFX 100, X-T3, and X-T4.
  • ARRI: ARRI D21.
  • Hasselblad / DJI: L1D-20c (Mavic 2 Pro) and L2D-20c (Mavic 3).
  • Panasonic: Lumix DC-GX9.
  • Insta360: Insta360 X5.

Native video log profiles

Video inputs support exact inverse opto-electronic transfer functions and wide-gamut transformations directly to linear Rec. 2020:

  • Apple Log: iPhone 15 Pro / Pro Max and iPhone 16 Pro / Pro Max in native Rec. 2020 primaries.
  • Apple Log 2: iPhone 17 Pro / Pro Max on iOS 26. The same curve as Apple Log over Apple Wide Gamut, converted through Apple's published primaries.
  • Sony: S-Log3 in S-Gamut3.Cine or S-Gamut3, and S-Log2 in S-Gamut.
  • Fujifilm: F-Log and F-Log2 in F-Gamut, and F-Log2 C in F-Gamut C.
  • Broadcast HDR: ITU-R BT.2100 HLG in Rec. 2020 (diffuse white mapped to 75% per BT.2408).

Unlisted cameras and standard formats

For camera models without bundled spectral measurements, RAW stills decode scene-linearly using container DNG/EXIF color matrices with zero contrast boost, tone compression, or gamut clipping. Standard stills and SDR video convert from tagged source color spaces (Display P3, Rec. 709, sRGB) directly into linear Rec. 2020 before entering the film pipeline.

The editor

Edits are non-destructive; export uses current settings without modifying original files. On iPhone and iPad, an edit of a photograph from the photo library keeps a link to the library original rather than a second copy, so the edit reopens only while the photograph remains in the library; edits synced through iCloud keep their own copy. The editor surfaces controls across Film, Lens, Light & Color, Selective, and Crop.

In the desktop and browser editors, drag the edge between the photograph and the film list or the inspector to resize that panel; the widths are remembered. Double-click an edge to restore it. With an edge selected, the arrow keys move it, Shift moves it further and Return restores it. The photograph keeps at least 420 pixels.

Library and photo strip on iPad

Tap Library in the toolbar, or press L with a keyboard, to browse Edited Photos (every photograph with a kept edit, including those synced from iPhone) and folders added from Files with Add Folder…. A folder's subfolders are listed under it. Search by name, sort by Newest, Oldest, Name or Rating, show only photographs with a minimum rating or with an edit, and change the thumbnail size. Tap the stars on a photograph to rate it; tap the same star again to clear the rating. Touch and hold a photograph to open or rate it. In Edited Photos, Remove from Library deletes the edit and the copy kept with it, not your original; in a folder, Rename… and Delete File… change the file itself.

Opening one photograph brings the rest of what the grid shows into the photo strip under the editor, and Select chooses several to open on their own. Only the photograph shown is read; tap another in the strip to show it. Hold Command or Shift as you tap, or touch and hold, to choose photographs, and press Command-A to choose them all. Paste Settings and presets then apply to every chosen photograph.

Preview behavior

  • On iOS, resting stills develop at display canvas density (capped at 2560 px on the long edge). While adjusting controls, the preview displays a half-density copy for interactive responsiveness.
  • When panning or zooming stops, the visible region is redeveloped at current display magnification. Film previews use bounded GPU tiles, including neighboring pixels for grain and halation, so Super 8 detail does not require one large GPU allocation. Layered colour separation still renders the complete virtual frame and uses more memory at high zoom.
  • Frosted chrome maintains control legibility without modifying canvas color values.
  • Press and hold (or click and hold on Mac) to view the unprocessed source frame.
  • Show Negative displays the developed negative density before print processing.
  • The real-time histogram monitors tonal distribution across the current stage. Its vertical pixel counts use a logarithmic scale so small populations remain visible beside large peaks; horizontal tone values remain linear.
  • New Grain Pattern rerolls the pseudo-random grain distribution while preserving the stock's calibrated spatial density and clump statistics.

Copy settings and presets

Copy Settings takes the chosen sections of the current edit — Stock, Grain, Emulsion, Lab, Filters, Correction, Exposure, Balance, Color, Grade, Source Interpretation, Output, Lamp, Geometry or Local — and Paste Settings applies them to another photograph as one step that Undo reverses. On the desktop and on iPad, it applies to every photograph chosen in the photo strip; Undo reverses it on the one shown. A preset keeps a chosen set of sections under a name on this device and applies to any photograph. Sections that are not chosen keep the photograph's own values. Geometry, Local and Source Interpretation are left out unless chosen, and each photograph keeps its own grain pattern. Settings that name a film which is not installed cannot be pasted.

Film controls

The Film inspector selects the emulsion and configures the physical development model. Controls that do not apply to the chosen stock or medium are hidden automatically.

The current catalogue uses the corrected spectral response for 19 color negatives, calibrated density response for seven black-and-white films, and calibrated curves for all twelve transparent reversals. These are the default profiles; no experimental pack selection is required. Individual dye spectra and response beyond the published measurements remain estimates.

Black-and-white profiles follow the published density response for a specific development process. Acros II uses D-76 at 7 minutes, T-MAX 100 at 6 minutes, and Tri-X 400 at 6 minutes. Double-X uses D-96 at 6½ minutes; HP5 Plus and FP4 Plus use ILFOTEC HC 1+31 at 6½ and 8 minutes respectively. Delta 3200 uses ILFOTEC DD-X 1+4 at 9 minutes, with its documented development choices available in Push / Pull. Rising curves continue gradually into an estimated highlight shoulder beyond the published exposure range. The shoulder shape and ultimate density there remain estimates.

Infrared Color gives foliage red and coral tones and skies teal-cyan, with soft highlights and fine grain. Its creative spectral palette and tone response build on Kodak EIR’s reversal dye formation. Select it directly for ordinary RGB photos; no additional filter is needed. Green paint, fabric and other colors can shift too. The look estimates foliage’s infrared response from visible color and does not measure infrared light.

Kodak Aerochrome 1443 adds the aerial film’s AR-5 reversal response and more pronounced grain. It uses its own published spectral and dye curves with the same visible-color foliage approximation. Select it directly for RGB photos; its colors are an infrared-inspired rendering.

LomoChrome Purple turns greens violet and yellow subjects pink, with cyan-blue skies. LomoChrome Turquoise gives blue skies golden-orange tones and warm subjects blue-cyan tones. LomoChrome Metropolis keeps recognizable colors with muted saturation. Select any of these films directly; no additional filter is needed. They are creative approximations of Lomography’s visible-light C-41 color negatives, numerically fitted to the ColorChecker patches in the manufacturer’s comparison scans. Their spectral sensitivities remain inferred, and the color match is approximate.

ControlDescriptionDefault
FilmSelects the emulsion. Normal preserves the source frame without film transformation.Starting stock
FormatSets physical negative dimensions. Smaller formats increase grain enlargement and spatial halation reach.Match the Film
GrainScales calibrated silver or dye-cloud grain variance. Black-and-white films use continuous silver texture so individual samples do not appear as dots.1.00×
MottleModulates low-frequency grain clump covariance.Film’s Own
Grain SizeMagnifies the Film grain model's crystals and dye clouds, scaling their fluctuation so the sheet's RMS granularity at the 48 µm aperture holds.1.00×
Colour GrainMixes each layer's Film grain toward the layers' mean at constant variance, from independent colour grain to a single shared grain.100%
Red LayerScales the red-sensitive layer's grain in the Film grain model, leaving the other layers alone.1.00×
Green LayerScales the green-sensitive layer's grain in the Film grain model, leaving the other layers alone.1.00×
Blue LayerScales the blue-sensitive layer's grain in the Film grain model, leaving the other layers alone.1.00×
Scan SoftnessSets the scanning aperture the Film grain model averages each pixel over, relative to the pixel pitch.1.00×
Grain ModelSelects the film grain simulation method: Standard (fast calibrated RMS noise) or Film (the stock's crystals at fixed places on the emulsion, with each pixel the light through its patch of film).Standard
HalationControls back-surface reflection and scatter around high-contrast exposure boundaries.+0.0 EV
Halation ReturnSets the red returned/direct exposure percentage and preserves the film’s return colour balance. CineStill 800T and 400D start at their measured 3%; raise it toward 10–15% for the heavier glow of web scans. Use Film Return restores the selected film’s value.Selected film (CineStill: 3%)
Halo ColourShifts negative halation toward source light spectrum.0%
Return SpectrumSelects base reflectance spectral weighting.Flat
Base HazeBlurs the returned light by the base's impurity scatter, a Gaussian sigma in micrometres. Both halation models apply it; 0 keeps the film's own figure.0 µm
Anti-HalationScales the absorption of the Layered Transport construction's anti-halation layer, or the dyed coating standing in for one. Lower lets more light return from the base, so the halo brightens and widens; 0 removes the layer, as on a film with its backing taken off. The amount moves between the film's own calibrated return and the return of the same stack without absorbers at a measured launch.100%
Base ThicknessScales the Layered Transport construction's support. Light returning from the base's back surface travels farther through a thicker base, so the halo's ring widens.1.00×
Pressure PlatePlaces a camera's pressure plate against the back of a Layered Transport construction. Light the base's back surface lets out returns from the plate, adding to the halo; a film with an opaque backing hides it.0%
CouplersControls development inhibitor release chemistry for interlayer color separation and edge contrast.1.00×
SeparationScales how far the released inhibitor crosses each interlayer.1.00×
Edge ContrastScales inhibition acting within a layer rather than across two.1.00×
Fringe AmountSpreads a share of inter-layer inhibition farther around colour boundaries.0%
Fringe RadiusSets the broad spread on the film in micrometres.100 µm
PushAdjusts development time using the film's push/pull curves, each measured, carried from a sister film, or estimated from its process.+0.0 EV
Bleach BypassRetains metallic silver in color negative processing, increasing contrast and lowering dye saturation.0%
ExpiredSimulates room-temperature aging: speed loss, baseline fog density, increased grain, and layer sensitivity drift.Fresh
Long ExposureEvaluates the emulsion's measured reciprocity failure characteristics under low-intensity long exposures.Off

On iPhone, open Film → Emulsion to find Fringe Amount beside Edge Contrast. Try 5–20% with a Fringe Radius of 50–150 µm. The radius must exceed the film’s narrow inhibitor radius to act. The fringe color follows the film’s layers; these controls model development chemistry rather than lens aberration. Setting Fringe Amount to 0% preserves the existing transport. These settings are saved with photo and video edits.

In the iPhone photo and video editors, the Films strip shows one tile per film on Digital Reference, the same output a new edit opens on. Reversal films show it as their Direct Positive, and Normal remains available. Photo paper, release print and transfer variants are not separate strip tiles; they remain available under Output.

The lab controls are listed above with the emulsion: push and pull, bleach bypass, expired film and long exposure.

Lens controls

Lens correction compensates for geometric optical distortion, peripheral illumination falloff, and lateral chromatic aberration. Enable Correct Lens to apply embedded DNG lens profiles or calibrated camera profiles.

ControlDescriptionDefault
FiltersAn ordered stack of absorbing and diffusion filters before film exposure.
RAW CorrectionsOn, a camera RAW decodes as the camera's maker intends: Apple's decoder corrects the lens's distortion and vignetting where it knows the lens, and the picture is the camera's default crop. Off shows the capture as the sensor recorded it — the lens's own distortion and dark corners, and on Linux the whole sensor area with its edges — so the true flaws of the capture print. Choosing Film Border or Film Border Positive turns it off. On the Mac and iPhone Core Image always delivers the camera's crop. Lens Correction's own correction still applies when it is on. Included in saved edits and exports.On
Lens CorrectionEnables the matched lens profile or the calibrated camera profile.Off
LensIdentifies the matched lens model.Matched
AmountSets overall correction intensity.100%
DistortionCorrects or introduces radial barrel and pincushion distortion.+0.00
VignettingCompensates for peripheral illumination falloff.+0.00
Red / CyanCorrects lateral chromatic aberration by scaling the red channel radially.+0.00
Blue / YellowCorrects lateral chromatic aberration by scaling the blue channel radially.+0.00

Light & Color

Light and Color adjustments apply in scene-linear space prior to film exposure. Grade adjustments apply down-pipeline after the print stage.

In the Mac editor and plugins, Source Illuminant defaults to Stock Native, following the selected film's reference light: 3200 K for 500T, for example. Choose a daylight or tungsten preset, or Custom and a temperature from 1000 to 25000 K, to simulate another source. This is stock-balanced emulation, not recovery of the original scene spectrum. Warmth and Tint refine that light; warmer light means lower Kelvin and positive tint adds green light. The stock's calibration reference stays fixed.

RAW decoding retains its as-shot white, independently of the film's source light. Source edits do not decode the RAW again or change the printing head or viewing lamp. Custom Kelvin uses a smooth daylight or Planckian spectrum, not a measured LED or fluorescent spectrum. Existing RAW edits that relied on automatic capture-light simulation can look different. Explicitly stored camera-light overrides are retained as Custom.

ControlDescriptionDefault
ExposureAdjusts exposure in stops (EV) before film simulation.+0.0 EV
Auto AdjustSolves exposure and tone recovery using the native film latitude. Choosing another film recalculates while Auto is active. Disabling Auto retains the solved values; manual exposure or tone edits disengage it.
HighlightsScales scene radiance above 18% neutral gray.+0.00
ShadowsScales scene radiance below 18% neutral gray.+0.00
RegionalApplies spatially aware contrast compression across adjacent luminance zones.On
Camera PreflashPre-exposes the camera frame with uniform illumination to lift shadows.0%
WarmthAdjusts scene-light temperature relative to Source Illuminant, without changing RAW decoding.+0.00
TintChanges the scene spectrum toward green or magenta, perpendicular to the blended blackbody/daylight locus.+0.00
Source IlluminantDefaults to the selected stock's native light, independent of capture metadata. Presets or Custom override only the film-exposure illuminant.Stock Native
Source Illuminant (K)Sets a custom source temperature from 1000 to 25000 K; active when Source Illuminant is Custom.6504 K
SaturationScales radial chroma across all hues uniformly.1.00×
VibranceScales chroma non-linearly, prioritizing muted tones.+0.00
Encoded GradeGrades the sRGB-encoded signal, where a grading suite's corrector works, instead of display-linear light.Off
Shadows WarmthCool to warm, in the shadows+0.00
Shadows TintMagenta to green, in the shadows+0.00
Shadows LevelAdjust the brightness of the shadows.+0.00
Midtones WarmthCool to warm, in the midtones+0.00
Midtones TintMagenta to green, in the midtones+0.00
Midtones LevelAdjust the brightness of the midtones.+0.00
Highlights WarmthCool to warm, in the highlights+0.00
Highlights TintMagenta to green, in the highlights+0.00
Highlights LevelAdjust the brightness of the highlights.+0.00
RangeKeeps a share of the stops an HDR photograph records above diffuse white. Light above a knee just under white is compressed in log2 so the brightest highlight lands at the kept range, hue held; 0% fits it to white, 100% keeps all of it.100%
Roll-OffScales the highlight shaping that fits an HDR photograph's kept range into the film's latitude: 0 adds none and leaves the highlights to the film's shoulder, 1 is the automatic fit, 2 doubles it.1.00×

Three-band Grade

Applies post-print color balance and level trims across Shadows, Midtones, and Highlights. Encoded Grade evaluates the trim on final non-linear output encoding rather than scene-linear light; keep disabled for standard workflows.

Frame & Selective

Crop and perspective

  • Aspect constrains cropping to standard aspect ratios or freeform framing.
  • Straighten applies planar rotation up to ±15°.
  • Vertical and Horizontal rectify Keystone perspective distortion.
  • Rotate and Flip apply 90° increments and axial mirroring.
ControlDescriptionDefault
CropChooses the part of the frame the print is made from.
StraightenRotates the frame off level by up to fifteen degrees.+0.0°
VerticalTilts the picture plane about the horizontal axis.+0.0°
HorizontalTilts the picture plane about the vertical axis.+0.0°
RotateTurns the frame in quarter turns.Upright
FlipMirrors the frame left to right.Off
SelectiveDevelops a colour, a light or a subject differently from the rest of the frame.

On Mac, Four-Corner Crop lets you position each corner independently. Leave Crop or press Return to straighten the selected area. Rotation and flipping keep the corners attached to the image; undo, saved edits, and full-resolution export retain the selection. Drags use a cached display preview and commit one edit on release; film thumbnails refresh after leaving Crop. Choose an aspect ratio for a rectangular crop, or Reset Crop to start again.

Selective edits

Isolates subjects or color ranges for localized pre-exposure correction (Exposure, Highlights, Shadows, Temperature, Tint, Saturation, and Vibrance). Boundaries are refined with Edge, Feather, Range, and Softness controls. Selective edits are saved with the photo and included in photo exports. On iPhone, tap Done to keep the changes or Cancel to discard them. Undo and Redo include selective changes. Subject masks follow crop and rotation. Show Mask is a temporary preview and is never exported. Selective masks apply to still images.

Camera

The iPhone camera renders the selected film in the live viewfinder. Normal displays the decoded camera image without film simulation. The LIGHT control selects the simulated Source Illuminant. New sessions default to Stock Native, so each film uses its own reference light. D65, 2856K, 3200K, 4300K, 5500K, and 6500K are explicit overrides and stay fixed when films change. Previously saved explicit selections are retained. Capture white balance stays fixed at D65, independently of this control; it is not automatic. The selected source carries through to saved photos and their editable recipes. LIGHT is unavailable in Normal mode, where no film is simulated.

ISO, shutter speed, and white balance sit inside the bottom of the live picture on a borderless ultra-thin material panel with no added colour tint. The full values stay visible as camera readings change, including when the panel stays the same width. Tap a value to open its adjustment ruler. Swipe values with the same momentum, snapping, and selection feedback as the editor’s film strip; Auto restores the selected setting. A appears only when a setting is manual and restores ISO, shutter speed, aperture, and white balance to automatic control. The panel animates width changes and the appearance or removal of A, with shorter transitions when Reduce Motion is enabled.

On a lens with a variable aperture (the iPhone 18 Pro main camera, iOS 27 or later), the panel also sets the aperture in the lens’s recommended ƒ-stops. Lenses with a fixed aperture do not offer it. A held aperture fixes the exposure the same way a held ISO or shutter speed does.

Before layer exposure, colors outside physical spectral boundaries are mapped back to the spectral locus boundary. Each film responds through its calibrated spectral sensitivity curves.

Still capture

Settings → Camera → RAW Capture defaults to Apple ProRAW. This mode uses the regular live video preview and requests lossless Apple ProRAW for still photographs where the selected camera supports it. ProRAW uses an approximately 12 MP sensor readout to prioritize the moment the shutter is pressed over 48 MP resolution. Framing is unchanged; the app uses the largest supported size up to 12.5 MP, or the smallest advertised size when the camera has no size in that range. The live preview is not a ProRAW stream. When applying a film, Fotufilm develops the ProRAW original into a finished HEIF photograph and preserves the DNG for later edits. The camera prepares a photo-quality live session before the shutter is pressed. Apple Log is used only when it supports that configuration and the same preview framing; otherwise the preview uses supported HLG or native video. For SDR output, the preview uses the photograph’s SDR conversion. New captures start with Exposure at 0 EV. ProRAW development uses the RAW decoder’s baseline exposure without an added preview-matching or metadata-based correction. The original DNG is unchanged. ProRAW development preserves the file’s recorded white balance, including its tint correction. The selected film light is retained in the preview, saved photograph, and editor. If a full-resolution film render exceeds the available memory budget, the finished HEIF uses a smaller size while the full-resolution ProRAW original is retained. ProRAW mode never falls back to Bayer RAW. Cameras without ProRAW save their 14-bit Bayer RAW reading as a DNG at approximately 12 MP, taken from the same prepared live session so the photograph shows the scene at the shutter press; zoomed and front-camera photographs on those cameras are processed. When such a camera has no HLG format that also takes full-quality photographs, the preview uses native video. Both RAW options are disabled on iPhones without Apple ProRAW support. The choice is remembered between launches; Reset to Defaults restores Apple ProRAW. On cameras that offer both readings, the viewfinder's settings row also shows a RAW mark naming the current one; tapping it switches between Apple ProRAW and Bayer RAW without leaving the camera, and the Settings choice follows.

Full-resolution film development and saving continue after the photograph opens in the editor. Fotufilm processes one photo at a time. If you return early, the camera resumes when that photo finishes so live preview and another capture do not compete with its full-resolution render. Still photos are requested when you press the shutter, without waiting for finger release. ProRAW, Bayer RAW on cameras without ProRAW, and processed stills use zero-shutter-lag buffering where the current camera configuration supports it. Processing and saving can continue after exposure without changing the captured scene. Long exposures, flash, and manual exposure can still affect capture timing. ProRAW retains lossless encoding and quality-prioritized processing; developing and saving can still take time.

Select Bayer RAW to enable native Bayer still capture and the experimental Bayer viewfinder. On supported cameras it develops successive RAW readings into a preview of up to approximately two megapixels. It targets 24 frames per second and lowers preview resolution when sustained processing load or heat requires it. The selected film, exposure, zoom, and device temperature can still reduce the displayed rate. Preview decoding uses a faster draft path and limits automatic shutter time to the preview frame interval. Saved photographs retain the full-resolution still workflow and its normal exposure range. Zoom crops the RAW preview without changing the sensor's native magnification. Cameras without Bayer preview support continue to use their available video preview. Video mode uses its own video capture pipeline.

In Bayer RAW mode, supported hardware requests native Bayer RAW at the greatest reported bit depth. The viewfinder briefly pauses while the camera captures and develops the full-resolution photograph, then resumes on returning to the camera. For Bayer captures, Fotufilm stores the delivered 14-bit samples without quantization, together with the camera's capture metadata, in a DNG compressed losslessly where the device offers a lossless RAW codec. These negatives preserve the captured precision for later edits. Zoom does not prevent Bayer capture: a zoomed photograph keeps the whole sensor reading and opens in the editor cropped to the zoomed framing, which can be widened back to the full frame. Grain keeps the size it has at the lens's native magnification, as it would through a longer lens. When the lens or geometry prevents Bayer capture, Fotufilm requests lossless Apple ProRAW where available. Native 10-bit HEIF / YCbCr serves as secondary fallback; 8-bit readings are used only when no deeper format exists.

The retained negative decodes to scene-linear Rec. 2020 Float32 and develops through the Metal optical graph, producing a linear 16-bit float Digital Reference master. Reversal film and Normal derive either a 10-bit HLG / Rec. 2020 HEIF or a 10-bit Rec. 709 HEIF; negative film saves the Standard derivative only.

Video capture

Video capture requests Apple Log 2 where available, then Apple Log, falling back to 10-bit HLG, with native 8-bit YCbCr reserved for cameras without deeper stream support. Any other source the lens and clip size offer can be chosen instead: Apple Log 2, Apple Log, HLG, or 8-bit Display P3 or Rec. 709. On iPhone 16 Pro, video uses native 10-bit 4:2:2 Apple Log. The camera develops every stock on Digital Reference. Normal and reversal film under Reference Exposure support HDR delivery; negative film and the levelled slide conversions record SDR. The top-right GRAIN control toggles real-time grain simulation (limiting capture to 30 fps). Leave GRAIN off for video without simulated grain. Grain-free rendering reduces processing time, but sustained 4K at 30 fps is still being validated on iPhone 16 Pro.

Video reads the camera’s bi-planar scene signal directly into the Metal optical graph at native capture resolution, forming the 16-bit float Digital Reference master read directly by the live viewfinder. Recording does not round-trip through display-referred intermediate buffers.

The sampled-curve engine update preserves every curve point and caches cubic coefficients for camera rendering. See the iPad performance measurements for the tested baseline and device limits.

Video editing

On iPhone, open a ProRes Log clip and choose More → Input Color Space. Select Apple Log · Rec.2020 or Apple Log 2 · Apple Wide Gamut to match the recording. S-Log, F-Log, and HLG profiles are also available. Standard follows the file’s SDR, HLG, or PQ color tags; camera log profiles must be selected explicitly. The selection applies to playback, thumbnails, and export. Photos clips remember their selection when reopened; files imported from Files keep it while the editor is open. Reset Grade keeps the selected input color space.

Video uses the same Film, Lens, and Light & Color stages as stills. Scrubbing or pausing renders full preview resolution.

Encoding
Converts tagged SDR, HLG, and PQ to scene-linear Rec. 2020. For camera log footage, explicitly select the profile used when recording.
Cadence
Native preserves source timing; 16, 18, or 24 fps assigns exported frames longer motion duration.
Preview quality
Modulates interactive playback resolution without changing export geometry.
Supported tools
Crop and Selective masking apply to stills only.

Exporting

Photo export

SettingOptions
ResolutionFull native resolution or smaller scaled dimensions within device memory bounds.
File typeJPEG, PNG, HEIC, TIFF, or Original RAW (passes through camera RAW unmodified).
CompressionSmaller File, Balanced, or Best Quality for JPEG and HEIC.
HDR HighlightsSupported for reversal films in HEIC format on HDR-capable devices.
MetadataInclude Location, Capture Details without location, or No Metadata.

On Mac, you choose where the file is saved before it is developed. On iPad, the finished file is offered afterwards: Save to Photos, Save to Files…, or Share….

Export queue on iPad

Photos can be edited first and developed together later. In a photo's export options, choose the resolution, file type, compression and metadata, then Add to Queue instead of Export. Each queued photo keeps the edit and settings it had when it was added; later edits to the photo do not change a copy already waiting, so the same photo can be queued again with other settings or another edit. The queue button appears in the toolbar once something is queued; on iPadOS 26 and later its badge counts the photos waiting or ready to save.

Render All develops the waiting photos one after another at full quality while editing carries on, and Stop halts the queue after the photo in progress. When they are done, the developed files are offered together to Save to Photos, Save to Files…, or Share…. Files not saved yet stay in the queue under Save…, and leave it once they have been saved. The queue is kept across relaunches. The originals stay in Edited Photos, so a photo deleted from the library before it is rendered fails with a note; videos are exported one at a time.

Video export

On iPhone and iPad, every film starts on Standard grain, for photos, videos and Reset Grade alike. Choose Film for one photo or video with its Grain Model control; the choice is saved with that edit. Faster Export is enabled by default and uses accelerated Metal processing at full source resolution, including HDR and ProRes. Film grain requires Maximum Detail.

SettingOptions
ResolutionSource dimensions or smaller scaled resolutions.
Frame rateSource, 16, 18, 24, 25, 30, or 60 fps (capped at source rate).
FormatQuickTime (.mov), MPEG-4 (.mp4), Apple ProRes 422 Proxy / LT / 422 / HQ (.mov). On macOS, HEVC 10-bit (.mp4), Apple ProRes 4444, and Apple ProRes 4444 XQ (.mov) are available. ProRes 422 is 10-bit 4:2:2; ProRes 4444 is 12-bit 4:4:4. ProRes 4444 XQ requires macOS 15.
Dynamic rangeSDR, or HDR Highlights for reversal stocks; Maximum Detail or Faster Export. On iPhone, both processing options support HDR and ProRes. On Mac and iPad, HDR, HEVC 10-bit, and ProRes enforce Maximum Detail.
AudioPass through source audio or export silent stream.

Browser demo

The CPU and WebGPU film renderers use the same scene-linear film model. WebGPU uses hardware float32 arithmetic and GPU display encoding, checked against the CPU reference for linear, 8-bit and 16-bit output quality.

Use the browser editor to develop photos and videos with Spectrum 2 controls. The layout follows the Mac app, with Film, Expose, Develop and Print panels, Satoshi typography and Material Symbols Rounded icons. It opens with an empty canvas, ready for your own photos or videos. Choose a film and output medium, crop or rotate the image, inspect pipeline stages and export the result. Media is processed locally in your browser.

The + menu offers Image, Video and Negative imports. More options groups automatic adjustments, saved edits, tools and help. Panels, menus and dialogs animate between states and respect reduced-motion preferences.

More options also opens Open-source licenses, the Privacy policy and Terms in a separate tab, keeping your editing session open.

On phones, Film opens a horizontal strip of previews. Swipe to browse and tap to apply a film; Film settings opens its controls. Expose, Develop and Print open below the photograph. Tap Film again or close the strip to give the image more room. Pinch to zoom around your fingers and drag to pan. After movement pauses for 300 ms, the visible region develops at physical screen resolution, including Retina displays. The last sharp region stays visible until its replacement is ready; continued movement cancels obsolete work.

The Fotufilm startup bar animates while preparing shaders, negative conversion and 16-bit output, then fades out. Its label shows the current stage; compilation time varies, so it does not estimate a percentage. If a preparation step makes no progress for 90 seconds, the editor restarts on the CPU and resumes any pending preview. Cold preparation usually takes a second or two. The editor remains usable with CPU previews while the GPU prepares.

The demo retains all 47 films. Aerochrome, Infrared Color, Lomochrome Metropolis, Purple, Turquoise and Phoenix use fixed profiles: exposure, grading, grain amount, crop, source illumination, output media and export remain available. Film customisation, optical filters, Auto Adjust and print frames are unavailable for these six films; the Film panel identifies them.

Library: add folders of photos to browse them together, including subfolders. The library lists JPEG, PNG, WebP, AVIF, HEIC, TIFF, EXR, camera RAW and video files, and shows each folder separately or all at once. Search by file name, sort by name, date or rating, and filter by rating or by photos you have edited. Rate photos from one to five stars. Opening a photo restores its last edit, and later changes are saved to the library automatically. The library remembers what each folder contains, so even a folder of 100,000 photos appears at once and is checked for changes in the background. Removing a folder forgets its ratings and edits; the files themselves are never changed or uploaded.

Thumbnails come from the preview a camera or phone embeds in the file where it is large enough, so RAW folders appear without developing every frame; videos show their first frame. A Halide kernel compiled to WebAssembly resamples them in linear light and applies the camera orientation. Thumbnails, ratings and edits are kept in the browser's storage for this site. Chrome and Edge remember added folders between visits, asking again for access after a restart if needed. Other browsers add a folder for the current session only; its ratings and edits return when the same folder is added again.

RAW opening previews use bounded strips without loading a second image-engine runtime. If the preview worker stops, preparation resumes from the decoded pixels. Full-resolution samples remain available for editing and export. Cancelling also stops preview initialization.

Open a photo, supported camera RAW file or linear RGB EXR. EXR imports retain negative and above-white floating-point values through cropping and rendering. Embedded chromaticities are converted to the engine's linear Rec.2020 working space; files without chromaticities use linear Rec.709. The browser supports flat, single-part RGB half-float or float EXRs up to 120 megapixels and 512 MB. Export offers 8-bit PNG, JPEG or WebP and lossless 16-bit Display P3 TIFF with an embedded colour profile.

Automatic negative conversion preserves pixels with clipped or out-of-gamut colour channels in wide-gamut scans. Such channels are clamped individually during the approximate inversion; they no longer turn the entire pixel black. Nonfinite samples and wholly unlit pixels remain excluded. The Negative import offers Contrast, the conversion curve's slope at mid-grey in stops from the automatic value, and the editor's Exposure, Highlights, Shadows, Temperature, Tint and Saturation; the positive opens with those adjustments applied and still editable. It also suggests which installed films the scan's clear film base looks like, from each film's spectral model: a starting point rather than an identification, most reliable on raw or linear scans that show unexposed film or the bare light past the film's edge.

Histogram: drag the heading to move the graph and the lower-right corner to resize it. Focus either handle and use arrow keys for keyboard control; Shift makes larger steps. At small sizes, the controls and axes fade away. Drag the graph itself to move it, or enlarge it to restore the controls. H or the toolbar closes it. Position, size and selected modes are retained when reopened during the editing session. Reduced-motion preferences disable transitions.

Choose Log or Linear pixel counts and RGB, Luma, Chroma, OKLab L or OKLab a/b. Luma measures encoded brightness; Chroma shows Cb (blue/yellow) and Cr (red/cyan) differences from −0.5 to +0.5. OKLab L measures perceptual lightness from 0 to 1, while a/b measures green–red and blue–yellow balance from −0.4 to +0.4. Colour-balance views mark the neutral centre. Histogram analysis reads the sampled pixel colour space directly, including in Safari on iPhone. Analysis respects the preview’s sRGB or Display P3 primaries; OKLab decodes into linear light before conversion. Curves use light smoothing without changing raw counts. The graph dims while an updated preview is analysed, then transitions to the new counts.

Video: open MP4, MOV, M4V, WebM or MKV files when the browser supports their video codec. Use Play, Pause and the position slider below the preview. Set Trim in and Trim out in seconds. All film, output-medium, exposure, color, crop, rotate, flip and pipeline-inspection controls apply to the current frame; export applies the finished settings throughout the trim range. Preview playback can skip frames while the film engine is busy. Export renders every frame with its original timing, including variable frame rate, and varies the grain seed per frame.

The video player offers five-second skips, a full-width seek bar, precise time, selection looping, preview mute and playback speed. Video settings contains input color space, trim and export audio. Preview mute does not change exported audio. Space/K plays or pauses; J/L and arrow keys skip; M mutes while the viewer or player is focused. Video timing/status text stays hidden below the preview. Camera-log and tagged color conversion runs in a WebGPU worker where supported, with CPU fallback.

Input color space offers the same choices as the Mac app: Standard, Apple Log / Rec.2020, Apple Log 2 / Apple Wide Gamut, S-Log3 / S-Gamut3.Cine, S-Log3 / S-Gamut3, S-Log2 / S-Gamut, F-Log / F-Gamut, F-Log2 / F-Gamut, F-Log2 C / F-Gamut C, and HLG / Rec.2020. Select the format used when recording; log encodings are not detected automatically. Standard follows supported SDR, HLG or PQ color tags. HEVC Main / Main10 4:2:0 uses a software decoder when native decoding cannot expose original pixels. Native decoded YUV planes retain 10- and 12-bit code values where exposed by the browser; curve and gamut conversion produces scene-linear Rec.2020 floats before film processing. Unsupported native pixel formats or color tags report an error instead of silently tone-mapping the input.

Export video offers MP4 / H.264 and WebM / VP9, full resolution or a smaller long edge, and Medium, High or Very high quality. Output is 8-bit SDR. The primary video track is exported; Include audio preserves available audio tracks with synchronized timing, copying compatible audio or transcoding when required. If audio cannot be preserved, export reports an error; choose another format or disable Include audio. Odd output dimensions are padded by one pixel for codec compatibility. Input color space, trimming and audio settings are included in undo and saved edits.

Videos stay on this device. Input is read from the selected file in bounded chunks; export encodes frames one at a time with backpressure and writes to a chosen disk file. Where the browser has no save picker, export uses browser-managed disk storage and provides a Download link when complete. Save that download before dismissing it or leaving the page. Cancel and failed exports discard their temporary output. There is no whole-file memory fallback or fixed input-file size limit; disk quota, browser codec support and available memory for an individual frame still apply. Video frames above 40 megapixels are rejected. Closing the page clears the current editing session.

Film rendering requires WebAssembly. The demo uses WebGPU when the browser supports its required features, with a CPU fallback. Normal can use the scene-linear reference when the WASM runtime cannot start. Large images and Layered Transport can take longer to develop. Layered Transport uses the film's default output medium and does not expose individual pipeline stages. RAW photos with a detected capture light require Legacy halation.

Settings

Starting Film and Format
Sets defaults for newly opened media; the film is Gold 200 until you choose another. Match the Film applies native stock dimensions.
Suggest a Film
Predicts an initial stock based on scene characteristics; manual selection always takes precedence.
Photos and Videos Range
Default SDR or HDR delivery targets. Negative films default to Standard SDR.
Photo Quality
Accurate evaluates non-linear film curves directly; Fast uses 3D LUT interpolation. macOS defaults to Accurate; iOS defaults to Fast.
Video Quality
On iPhone, Faster Export is the default and uses accelerated full-resolution Metal processing. Maximum Detail uses the reference renderer. On Mac, Full processes at source resolution; Fast processes internally at 1080p before upscaling to export geometry.
Video File Size
Sets output encoding bitrate: Automatic, Smaller Files, Higher Quality, or Maximum.
Film Model
Default toggles for Disc Grain, Estimated Halation Shape, interlayer diffusion barriers, and edge contrast inhibition.

Custom films

Film Workshop is temporarily hidden on Mac and iPad, including its menu and keyboard shortcut. Existing custom films remain available. On Mac, use Load custom pack… in the film sidebar to import a custom film package (.fotufilmpack). Stocks define emulsion type (color negative, reversal, monochrome), physical format, sensitometry curves, spectral sensitivity distributions, dye density partitions, grain statistics, halation parameters, and print response.

Importing adds verified packs to the local library; malformed or incompatible definitions are rejected.

Mac packs and plug-ins

Desktop download

Download the desktop app for Mac. The Linux AppImage, an alpha, is attached to the newest pre-release.

In the desktop app, a new photo starts with Output Medium on Match Film, so the print matches the film: RA-4 paper for a still negative, the stock's release print for a motion negative, and the direct positive for a slide. Changing the film keeps the print matched, an output medium you choose yourself stays where the next film offers it, and photos edited before keep their output.

Host plug-ins

Reopening a saved Final Cut or Motion project retains its film format, output medium, lens choices and texture-stage controls.

The 1.8 desktop release includes all 40 public film profiles under CC BY-SA 4.0, attributed to Fotufilm (fotufilm.com). Sampled characteristic curves require matching app and plugin builds. The macOS app bundles plug-ins for DaVinci Resolve and Final Cut Pro, installable from the Plugins menu:

  • DaVinci Resolve: Installs an OFX bundle system-wide (requires administrator credentials). Restart Resolve after installation.
  • Final Cut Pro: Enables the FxPlug extension and registers its Motion template under Effects → Fotufilm.

Each Mac release also attaches Fotufilm-OFX-macOS-<version>.zip, the signed Resolve plug-in on its own, for copying into /Library/OFX/Plugins by hand or with a plug-in manager.

For where to place the node and how to grade around it in either host, see colour grading with Fotufilm on the support page.

DaVinci Resolve controls

The Fotufilm inspector groups controls in the order the light passes through them: Input, Film, Light & Colour, Lens & Filters, Development, Grain, Halation, Colour Separation, Output and Pipeline. Input, Film and Output start open; Pipeline holds Stage and Render Mode and starts closed. The Final Cut Pro plug-in uses the same groups in the same order. Controls are disabled when the selected stage, stock, medium or parent setting cannot use them; Texture Only selectors are hidden in other stages.

ControlBehavior
Color ManagementTimeline reads and returns Timeline Color Space, preserving existing grades. Fotufilm converts the selected Input Color Space to scene light, develops the film, and encodes the selected Output Color Space. Match the pixels reaching this node; upstream host conversions still count. Do not add another display tone map after a finished print.
Timeline Color SpaceWhat this node is being handed — the one control that is not taste. The film model is scene-referred in linear Rec.2020: mid-grey at 0.18, specular highlights above 1.0. The input is decoded to that and the result encoded back, so a wrong setting shows the emulsion the wrong light and lands the characteristic curves whole stops off. Auto reads the space the host tags the clip with, where the host says. A display-referred space (Rec.709, sRGB) clips at diffuse white, leaving halation nothing bright to scatter; a wide-gamut log or linear timeline keeps the highlights the model was built for.
Input Color SpaceThe actual input pixels, after any upstream nodes or host color management. In an unmanaged DaVinci YRGB project, camera log can enter directly without an input CST. Only used in Fotufilm mode; Print Only receives density data and ignores this setting.
Output Color SpaceEncode the finished print into this space without another tone map. Match Resolve's monitoring and export settings to it. Only used in Fotufilm mode; Negative Only writes density data and ignores this setting. Texture Only returns scene light in this space.
StockThe emulsion. Each is a measured stock: its own spectral sensitivity, characteristic curves, couplers, halation and granularity.
Film FormatThe gauge the frame is exposed on. The image height maps onto the gauge's frame height, so a smaller format is enlarged more and shows coarser grain, wider halation and stronger adjacency — the same emulsion at a different magnification. Match Film takes the gauge the chosen stock is known on.
Film Frame Coverage (%)Short edge of the film frame retained after cropping. 100 uses the full frame; 50 enlarges half the frame. Changes grain, halation and other spatial scales, without cropping pixels. Account for any upstream resize yourself.
ExposureCamera exposure, in stops.
Temperature (K)Spectral scene temperature. Lower Kelvin adds warm light. Relative in mired to Source Illuminant; 6504 leaves the selected or stock-native lamp unchanged.
TintGreen/magenta balance of the illuminant.
HighlightsScene-referred highlight recovery, applied before the film model. Keyed to each pixel's regional brightness, so pulling a sky down moves the sky as one piece.
ShadowsThe same shift, fading in below mid-grey.
Regional Tone MaskOff, the highlight and shadow shifts key to each pixel's own luminance instead of to the region it sits in. Identical output when both rest at zero.
Camera PreflashPre-exposure of the taking film in linear scene radiance units, lifting shadows without shifting highlights.
SaturationChroma multiplier applied to the scene before the film responds. 1 leaves it untouched.
VibranceChroma boost weighted toward the least colourful pixels; already-vivid colours are left alone.
Source IlluminantLight presented to the film; Stock Native follows the selected film's reference. Temperature and Tint adjust this light. Custom sources use a daylight or Planckian spectrum, not a measured LED spectrum.
Source Illuminant (K)Custom source light before Temperature and Tint; used only when Source Illuminant is Custom.
Filter 1An absorbing filter on the front of the lens. It is integrated spectrally against the chosen film's own three layer sensitivities, which is why the same filter is a different filter on a different stock — an 85B is a correction on tungsten film and a heavy warm cast on daylight film. It also adds the veiling glare of two more air-glass faces, whatever the Veiling Glare slider says — and that added glare is why this control is live only on the Full stage: no kernel this build carries can measure it in a span that ends at the developed negative.
Filter 2A second filter, behind the first. They stack in the order given: their transmittances multiply, and the gap between them makes a ghost of its own.
Filter 3A third filter, behind the second.
MeteringHow the exposure was set with those filters fitted. Metered through is the camera's own photopic cell reading the light that got past the glass, and is the default; it can underexpose behind a narrow filter, because the meter does not use the film's sensitivity. Filter factor is the published compensation, worked out against the emulsion, which restores the luminance record without cancelling the colour change. None is a fixed manual exposure, so the light the filter took lands on the film as underexposure. Ignored with no filter fitted, and live only on the Full stage, which is the only span a filter is live in.
DiffusionA diffusion filter on the front of the lens. A share of the light meets a particle and leaves in a new direction, and the lens images it somewhere else on the frame; the share that missed every particle is untouched, which is why a diffused picture keeps its edges instead of going soft. The black families carry absorbing particles: the blacks still lift and the highlights bloom much less.
Diffusion GradeThe particle loading a product line's 1/8, 1/4, 1/2, 1 and 2 name: one formulation more heavily loaded, so the grade moves how much light takes part and never how far it goes. Ignored with no diffusion filter fitted.
Focal LengthThe taking lens's focal length in millimetres, read only by the diffusion filter: a ray deviated by an angle ahead of the lens lands focal length times that angle off its unscattered position, so the same filter glows bigger on a longer lens, exactly as it does in the world. 0 — the default — is the gauge's own normal lens, which is what the grade numbering on a filter's ring is calibrated around.
Veiling GlareVeiling glare from the taking lens, as a multiplier on the stock's figure. It defaults to 0 because a photographed clip already carries the glare of the lens that shot it, and this stage would veil the shadows a second time. Raise it for light that has met no glass — a render or a synthetic chart — or to stand in for glass worse than the camera's.
Filter CoatingCoating on every fitted absorbing and diffusion filter. Changes transmission and added glare. Multicoated preserves the existing filter look.
Push / PullPush or pull conditions for this film's stated developer and process: measured from its own published curves, carried from a sister film's published curves, or estimated from the process's published push response. The control is disabled when the stock pack lists no conditions.
Bleach BypassHow much of the developed silver the bleach leaves in the negative. The retained silver is a black-and-white image over the colour one: contrast up, chroma down, together.
Film Age (years)Years the roll sat past its process-by date. Speed falls a stop a decade with the blue-sensitive layer going first, base fog rises, and grain rises with the fog — the muddy, crossed toe of an old roll.
Long Exposure (s)Exposure duration for the stock's measured reciprocity response. 0 disables the override. Corrections stop at the last measured duration; no motion blur is added. Use the same value in paired Negative Only and Print Only nodes.
GrainMultiplier on the stock's measured granularity. 0 disables it.
MottleUse the stock's coarse grain mixture, or set a custom share. Full mode only.
Mottle Amount (%)Share of grain variance carried by coarse clumping. Total calibrated granularity is preserved. Custom mottle uses the engine's video delivery size.
Grain AnimationTimeline changes grain each frame. Frozen uses the same field at every time; the texture still responds to changes in the image.
Grain ModelStandard uses the calibrated clump field. Film lays the stock's crystals at fixed places on the emulsion and averages the light through each pixel's patch of film.
Grain SizeFilm grain model only. Magnifies the film's crystals and clouds, with their fluctuation scaled down so the 48 µm aperture still reads the sheet's granularity: coarser, softer grain above 1, finer below.
Colour GrainFilm grain model only. 100% keeps the three layers' grain independent, as the emulsion lays it; 0% gives them one shared grain. The grain's total strength is kept.
Red LayerFilm grain model only. Multiplier on the red-sensitive layer's grain, 1 at the sheet's granularity.
Green LayerFilm grain model only. Multiplier on the green-sensitive layer's grain, 1 at the sheet's granularity.
Blue LayerFilm grain model only. Multiplier on the blue-sensitive layer's grain, 1 at the sheet's granularity.
Scan SoftnessFilm grain model only. The side of film each pixel averages, in pixels: 1 is a scan as sharp as its pitch, wider softens the grain, narrower sharpens it.
Grain SeedSame seed and same frame give the same grain. Grain also advances with the timeline, so a still frame is still, and a moving one is not.
Halation ModelLegacy or layered optical transport. Layered uses an inferred stock construction where included, otherwise an illustrative stack.
HalationMultiplier on the fraction of light the base returns. On the legacy model it scales the light going down rather than the finished halo, so raising it widens the halo as well as brightening it — the way a thinner antihalation layer would. With Estimated Halation Shape on, the film's geometry is pinned and this scales the amount alone. 1 is the stock's authored look — the sheet's look scale times the measured film, whose calibrated returns sit at the patent-floor absorber densities and are all but invisible on their own. The measured film survives at 1 over the look scale (0.025 on a rem-jet stock). Typing past the slider reaches 100.
Estimated Halation ShapeRenders halation through the stock's provisional annular profile — the reflex ring at the base's critical angle — where no independently calibrated profile exists. Off is the legacy Gaussian model and the render every existing project made; the annular road costs roughly half again as much frame time.
Halo ColourHow much the halo keeps the source's own colour instead of the film's layered red. The returning light re-enters the emulsion from below, so a colour film's ring is red whatever the light was; raising this lifts the dimmer records to the strongest record's return, and the ring brightens toward the light's colour. 0 is the film.
Return SpectrumGain over the stock's halation return spectrum. 0 preserves the stock; positive values strengthen this band. Does not create return in an absent band.
DIR CouplersMultiplier on inter-image inhibition, the mechanism behind the stock's colour separation and its Mackie lines. 0 disables it.
SeparationInterlayer inhibitor reach. 1 preserves the stock; 0 seals the layers off.
Edge ContrastWithin-layer inhibition. 1 preserves the stock's retained self-inhibition.
Fringe AmountBroad inter-layer transport fraction, 0-1. 0 keeps the stock's own transport.
Fringe Radius (µm)Broad transport Gaussian sigma on the film, 20-300 micrometers. Read only while Fringe Amount is above zero; 0 keeps the stock's own radius.
Red–Green ReachAdditional multiplier on Separation for the red–green interlayer.
Green–Blue ReachAdditional multiplier on Separation for the green–blue interlayer.
Output MediumChoose where the finished image lives. Match Film uses RA-4 paper for a still negative, the stock's native release print for a motion negative, and the direct positive for reversal film. Digital Reference is the HDR path; paper, projection, Lab Scan, Telecine and Negative are SDR. Cineon Log is a flat scan of the negative for grading, delivered as Cineon code values rather than a picture. Slide film also supports Ilfochrome/Cibachrome positive paper. Negative and Cineon Log are available only for negative film.
Viewing IlluminantChoose the light used to judge a physical print. Medium Reference means D50 for photo paper or calibrated 5400 K xenon for a projected release print. Only the viewing light changes; the developed print is not re-timed. Digital Reference, Lab Scan, Telecine, Cineon Log and Negative ignore this control.
EnlargerThe lamp house a reflection print is enlarged under. Diffuser is the sheets' own diffuse read and changes nothing; Condenser prints a silver negative harder through the Callier effect. Read only where the medium is an enlarged reflection print.
Screen ConversionReference Exposure holds calibrated exposure; Graded Print softens highlights; Auto Levels meters frame highlights. A positive is normalised to SDR instead: its base or its brightest content to white. Digital Reference only.
Paper GradeVariable-contrast paper grade 0–5 for Graded Print and Auto Levels on Digital Reference: grade 2 is the calibrated curve, softer grades roll highlights off earlier, harder grades later. Mid-grey and film-base black hold. Negatives only.
Scan ExposureExposure of the Digital Reference conversion in stops on top of the chosen style, or of a Lab Scan at mid-grey; positive lightens. A negative's print exposure, a slide's scanner gain, a lab scanner's density key.
Cyan / RedDigital Reference and Lab Scan colour negatives: positive adds cyan, negative adds red. Manual correction after Auto Levels; relative units, not scanner steps.
Channel Contrast MatchDigital correction of channel-contrast mismatch, not physical printer timing. Off preserves the measured record slopes; raise for a more neutral crossover.
Magenta / GreenDigital Reference and Lab Scan colour negatives: positive adds magenta, negative adds green. Manual correction after Auto Levels; relative units, not scanner steps.
Yellow / BlueDigital Reference and Lab Scan colour negatives: positive adds yellow, negative adds blue. Manual correction after Auto Levels; relative units, not scanner steps.
DodgingLab Scan negatives: the scanner's regional dodging, 0 off, 1 its own, 2 double.
Scanner LookLab Scan negatives: 0 is the neutral scan, 1 the minilab scanner's finish.
Red LightCinema print film only: the release printer's red light in printer points, 25 at the stock's aim. Each point is 0.025 log exposure; more red light adds cyan.
Green LightCinema print film only: the release printer's green light in printer points, 25 at the stock's aim. Each point is 0.025 log exposure; more green light adds magenta.
Printer PreflashPre-exposure of the print paper in relative log exposure units, softening highlights without lifting maximum density.
Blue LightCinema print film only: the release printer's blue light in printer points, 25 at the stock's aim. Each point is 0.025 log exposure; more blue light adds yellow.
Negative ViewingHow the developed negative is read when Output Medium is Negative. Light Box sets the lamp so the clear film base sits just under white and keeps its orange. Scanner divides by the film base, so the base reads white. Other output media ignore this control.
StageWhich span of the pipeline this node performs. Full is the whole thing and is what every other setting here describes. Negative Only stops at the developed negative and writes its per-layer densities — data, not a picture — and Print Only takes exactly that back and finishes it on the selected medium, so the two in series reproduce Full. Texture Only lays the film's spatial character over the frame it is handed and leaves its colour alone. A Negative Only node must feed a Print Only node directly, with the same stock and lab settings and nothing in between: the densities are not colour and anything that grades, resamples or transforms them is not editing a picture.
Texture StagesWhether Texture Only carries this stage. Ignored by every other stage, where the strength controls below select what runs.
Render ModeDefault preserves the launch-time renderer setting. Realtime and Reference override it for this node, for both preview and delivery.

Release prints time a correctly exposed gray card to about 1.0 density above clear film (10% transmission); photo paper retains its 18% gray target. The output medium sets this aim for every camera stock. Release-print midtones are darker and highlights have more room than with the previous paper-gray timing. Kodak 2383 uses separate red, green and blue curves.

Release printing uses an approximate UV-blocked tungsten RGB additive printer, separate from the xenon viewing light. Its filter passbands are approximate because complete measured spectra are unavailable in the source sheets. ETERNA-CP retains its published dye curves; their disagreement with the published Gray curve leaves its neutral spectral calibration uncertain.

Motion-picture negatives can be printed onto six cinema print films: Kodak Vision 2383, Kodak Vision Premier 2393, Fujifilm ETERNA-CP 3513DI, Kodak EXR 5386, Agfa CP30 and Fujifilm ETERNA-CP 3521XD. EXR 5386 is the print film Kodak made before Vision, with lighter blacks than 2383. Agfa CP30 is Agfa-Gevaert's last release print. ETERNA-CP 3521XD is Fujifilm's deeper-black print. Each one is timed to its manufacturer's published aim densities. Fujifilm publishes no dye or sensitivity spectra for 3521XD, so it uses 3513DI's spectra with its own published curves. The command-line IDs are exr-5386, agfa-cp30 and eterna-cp-3521xd.

Red Light, Green Light and Blue Light re-time a print on cinema print film the way a lab's colour timer does, in printer points from 1 to 50. 25-25-25 prints the film's published aim. Each point changes that light by 0.025 log exposure, about a twelfth of a stop. More red light adds cyan to the print, more green adds magenta and more blue adds yellow; raising all three together makes the print darker and lowering them makes it lighter. Each light acts on its own printer beam, so a beam that also reaches a neighbouring layer of the print film moves that layer slightly too. The lights appear for negatives only, in Print → Adjust on iPhone and iPad and in the Output section on the Mac and in the browser. The command-line flags are --printer-red, --printer-green and --printer-blue.

Command-line renderer

The standalone fotufilm binary composites scene-linear Rec. 2020 associated alpha before film exposure, allowing additive light at zero alpha to trigger halation and tone reproduction. Background defaults to black; specify alternative scene-linear backgrounds using --background white or --background R,G,B. Rendered output is opaque.

Application updates

Select Check for Updates from the application menu to poll for new builds. Updates download the signed installer verified against published release checksums, refreshing the app and both host plug-ins simultaneously. Turn on Include Pre-releases in Settings to be offered pre-release builds as well as final releases.

Mac keyboard shortcuts

ActionShortcut
Open⌘O
Export⌘E
Undo / Redo⌘Z / ⇧⌘Z
Auto Adjust⇧⌘A
Sample a Selection⇧⌘S
Copy Photo⇧⌘C
Copy Settings / Paste Settings⌥⌘C / ⌥⌘V
New Grain Pattern⇧⌘G
Reset All Edits⇧⌘R
Zoom in / out / fit⌘+ / ⌘− / ⌘0
Show Original⌘\
Show Negative⌥⌘N
Show Histogram⌃⌘H
Film Stocks / Inspector⌃⌘S / ⌥⌘I
Inspector tabs⌘1 through ⌘5

Privacy and permissions

  • All image and video development executes locally on device hardware. Media is never uploaded.
  • Camera permission is required solely for viewfinder and capture.
  • Photos permission enables reading and saving images without scanning library contents.
  • No advertising, tracking, or analytics SDKs are included.
  • Share Crash Reports (disabled by default under Settings › Privacy) transmits sanitized crash stack traces with app and OS version. Reports never contain media, filenames, edit parameters, geolocation, account tokens, or persistent hardware identifiers, and are purged within 30 days.
  • The Mac app needs no activation. It may fetch update manifests; pack downloads happen in the browser.

Troubleshooting

Preview and export appear different

Interactive preview runs at display canvas resolution with optimized interpolation. Full export executes at target pixel geometry using direct sensitometric curve evaluation. Evaluate critical grain and sharpness at 100% on the exported file.

Full-resolution export is disabled

Target dimensions exceed safe device VRAM or unified memory limits. Select the highest available permitted resolution.

Log video displays incorrect contrast or color

Configure Film → Source → Encoding to match the camera's recorded transfer function and color space (e.g. S-Log3 / S-Gamut3.Cine, Apple Log) rather than relying on automatic container tags.

Lens correction has no effect

Verify that an embedded DNG profile or camera lens match was identified. If no profile exists, adjust Distortion, Vignetting, and Chromatic Aberration manually.

Controls are hidden or unavailable

Available controls depend on your film and output medium. For example, bleach bypass works with colour negative films. On iOS, every film and every export is free.

Still need help? Email support@fotufilm.com with your device model, OS version, Fotufilm build number, selected film, and any error message.

The Mac sidebar offers Load custom pack…; Film Workshop and the pack purchase button are hidden. Load custom pack… imports an optional custom pack from the bottom of the film sidebar. Packs also load in the Fotufilm plugins on the same Mac and user account. Restart Resolve or Final Cut Pro after importing or updating a pack, and keep the plugins updated with the app. Pack updates replace the previous version. If a pack needs a newer Mac app, update Fotufilm and load the pack again.

Halation Return sets the red returned/direct exposure percentage from 0 to 100%, preserving the film’s relative record returns. CineStill 800T and 400D start at their measured 3%; raise it toward 10–15% for the glow web scans are known for. On iPhone, open Film → Emulsion; on iPad, open Film → Character. The value is saved with each edit and works with Legacy and Layered Transport. Use Film Return clears an override and follows the selected film again. Existing edits without an override use the current stock value.

Halation Model in Film Model settings selects Legacy or Layered Transport. Legacy remains the default. Both models use the same capture illuminant; without capture-light metadata, both use the film’s reference light to preserve neutral balance. Layered Transport uses an inferred stock construction where included, otherwise an illustrative stack. These constructions are estimates, not measured film stacks. Layered Transport may use more memory and render more slowly. Donor-layer stocks currently require Legacy. Estimated Halation Shape applies only to Legacy.