The technology
How to use Silver (wip)
This page is under construction: the contents are incomplete. Full manual coming ASAP.
Silver edits inside Apple Photos — select a photo, choose Edit With → Silver, and you get one screen: your photo on one side, a panel of film controls on the other. Every edit is non-destructive, so you can come back and change your mind later; Photos always keeps the original.
The panel is organized as five sections, top to bottom: Film Stock, Adjustments, Halation, Grain, and Film Chemistry. This page walks through them in that same order.

Every Silver stock is built the way film actually works: light exposes silver-halide crystals, chemistry develops them into dye, and grain is a physical consequence of that process. Not a texture laid on top afterward.
00
Quick start
The fastest path from “just opened it” to “this looks like film.”
01
Open a photo in Silver
In Photos, select an image, click Edit, then choose Silver from the extensions list.
02
PICK A FILM STOCK
Open the Film Stock section and tap Choose. Tap any roll in the grid: it sets the color grade, halation, grain, chemistry, and vignette all at once, so you’re looking at a finished look immediately, not five blank sliders.
03
Nudge from there.
Everything the stock just set is still a slider underneath — open any section and adjust it. Double-click a slider to snap it back to that stock’s own default.
04
Tap Done
Photos saves the edit non-destructively — reopen Silver on the same photo any time to keep adjusting.
01
Film Stock
A film stock is a saved recipe. One file that bundles a color grade with matching halation, grain, chemistry, push/pull, and vignette settings. This section is where you browse, apply, and blend them.

CHOOSE
Opens a full-screen grid of every stock you’ve saved or imported, grouped by brand: Ambra, Verda, Vekta, Albion, and White Label for anything unbranded. Each tile shows your own photo rendered in that stock’s look, so you’re comparing against the actual shot, not a generic swatch. Tap a tile to apply every one of its settings at once; tap None to clear back to a blank slate (this asks you to confirm first, since it resets color grade, halation, grain, chemistry, vignette, and development together).
COPY SETTINGS / PASTE SETTINGS
Copies the entire current look — not just the film stock, every slider in every section — to the system clipboard, so you can paste the exact same edit onto a different photo without saving it as a named stock first. Useful for a quick one-off match across a couple of shots.
Intensity
chemistry.intensity
0 – 1
default 1.0
How strongly the loaded stock’s Film Chemistry recipe comes through, from 0(chemistry off, you’re seeing the color grade alone) to 1 (the full recipe). This is the one dial most stocks lean on to control how much of their color-chemistry signature shows — turn it down for a subtler version of the same look, up for the full effect.
02
Adjustments
Three controls for the shot itself, not the film — the closest thing Silver has to conventional photo-editing sliders.
Exposure
exposureStops
−3 – +3 EV
default 0
A straightforward brightness correction, in the same stops a camera’s own exposure compensation uses, for “this shot was a stop under,” not a creative effect. It’s applied before halation and grain, so both react correctly to the corrected image, and it’s independent of whatever film stock is loaded (it always starts at 0, even with a stock applied).
Development
pushPullStops
−2 – +2
default 0 · Pull / N / Push
Push and pull processing: rating film faster or slower than box speed, then adjusting development time to compensate. One slider drives three things together: contrast, grain character, and color saturation; the way a single push/pull decision affects all of them at once on real film. Push (positive) punches up contrast and grain; Pull (negative) flattens and softens both.
Vignette
vignetteAmount
−1 – +1
default 0 · Darken / 0 / Brighten
Corner falloff, the kind a lens or an enlarger produces. Negative darkens the edges of the frame (the familiar vignette look); positive brightens them instead. Unlike Exposure, this one is part of a film stock’s saved identity — picking a stock sets this too.
03
Halation
That warm red glow around bright highlights on real film: light passing through the emulsion’s blue, green, and red layers, bouncing off the film base, and traveling back up through them. Silver models that bounce per layer, so the warm color isn’t a tint someone chose; it falls out of red sitting closest to the base and catching the strongest reflection.
Intensity
halation.intensity
0 – 1
default 0.35
How strong the glow is where it appears — the red layer’s own contribution.
Threshold
halation.threshold
0 – 0.99
default 0.8
How bright a highlight has to be before it starts blooming. Lower catches more of the frame; higher restricts it to the hottest points only.
Radius
halation.radius (mm)
0.05 – 5.0 mm
default 0.72 mm
How far the glow spreads — measured in real millimeters on the film, not screen pixels. Silver converts this using whichever film format is set in Grain below, so the same value blooms wider on a smaller-format negative, matching how enlargement actually works.
Green Penetration
halation.greenPenetration
0 – 1
default 0.55
How far the glow spreads — measured in real millimeters on the film, not screen pixels. Silver converts this using whichever film format is set in Grain below, so the same value blooms wider on a smaller-format negative, matching how enlargement actually works.
Blue Penetration
halation.bluePenetration
0 – 1
default 0.22<<
Same idea for blue — the smallest share of the three, which is why the glow reads warm rather than white.
Ambient
halation.ambientIntensity
0 – 0.3
default 0.06
A separate, much subtler effect: a little light reflects off the base everywhere, not just around blown highlights. Reads as a gentle overall softening and warmth rather than a second glow — keep this low unless you want the whole frame to look slightly foggy.
04
Grain
Silver renders actual silver-halide crystals, live, rather than laying a canned noise texture over the image — so every slider here is a real physical property of the film, not an abstract “grain amount.”
Black & White
grain.blackAndWhite
TOGGLE
Panchromatic B&W grain develops once, against a single luminance exposure, instead of independently per color channel — one layer of silver instead of three, so the image reads as neutral gray. Turning this on hides Channel Correlationbelow, since there’s only one channel left for it to describe.
Intensity
grain.intensity
0 – 1
default 0.5
Grain intensity. Higher values produce richer, more contrasty grain.
Roughness
grain.roughness
0 – 1
default 0.5
How uneven individual crystals’ sizes are, on top of the average size set by ISO below.
ISO
grain.physical.iso
100 / 200 / 400 / 800 / 1600 / 3200
default 400
Real film speed, and the main thing that sets crystal size — each stop roughly doubles it, from a fine 0.2μm at ISO 100 to a coarse 1.0μm at ISO 3200. This is the single biggest lever for “how grainy does this look,” faster stocks read visibly grainier.
Film Format
grain.physical.filmFormat
8mm / Super 8 / 16mm / Super 35 / 35mm
default 35mm
The physical negative size the shot was “on.” A larger negative needs less enlargement to reach the same output size, so identical crystals read finer — this is why a Super 35 or larger-format look reads smoother than 35mm even at the same ISO and Roughness.
Channel Correlation
grain.physical.channelCorrelation
0 – 1
default 0.3
Lower lets each color channel grain independently, which reads as flecks of color in the grain; higher pulls the three channels toward moving together, closer to how real color film mostly behaves. Hidden when Black & White is on.
Clump Unevenness
grain.physical.meanRadius
0.05 – 0.8
default 0.3
Lower lets each color channel grain independently, which reads as flecks of color in the grain; higher pulls the three channels toward moving together, closer to how real color film mostly behaves. Hidden when Black & White is on.
Grain Shape
grain.physical.tabularAspectRatio
1 – 4
default 2.0
1 is round crystals; higher stretches each one into an elongated, “tabular” (T-grain) shape, closer to how most modern emulsions are actually built.
Blur
grain.physical.blurAmount
0 – 1
default 0.6
Lower lets each color channel grain independently, which reads as flecks of color in the grain; higher pulls the three channels toward moving together, closer to how real color film mostly behaves. Hidden when Black & White is on.
Layered Grain
grain.physical.layeredGrain
TOGGLE
Lower lets each color channel grain independently, which reads as flecks of color in the grain; higher pulls the three channels toward moving together, closer to how real color film mostly behaves. Hidden when Black & White is on.
Second Layer Blur
grain.physical.secondaryBlurAmount
0 – 1
default 0.2
Lower lets each color channel grain independently, which reads as flecks of color in the grain; higher pulls the three channels toward moving together, closer to how real color film mostly behaves. Hidden when Black & White is on.