AP's UltraMax
AP's UltraMax is a Fujifilm film simulation recipe for X-Trans V cameras. Every setting is published below in full, then how it was derived and why each control sits where it does.
The recipe
An original re-derivation of Kodak UltraMax 400, retuned for Indian skin tones and the Mumbai colour palette. Keeps UltraMax's defining behaviour. Saturated accents popping out of an earthy, warm-muted frame, while fixing the two things about a standard UltraMax build that actively work against warm/olive skin. Full derivation and evidence in the notes.
Distinct from kodak-ultramax-400 (reference, Fuji X Weekly), which targets the punchy drugstore print memory of the stock. This targets the emulsion, on skin that sits lower on the tone curve.
| Setting | Value |
|---|---|
| Film Simulation | Classic Chrome |
| Grain Effect | Strong, Small |
| Color Chrome Effect | Strong |
| Color Chrome FX Blue | Weak |
| White Balance | Daylight, +2 Red & −3 Blue |
| Dynamic Range | DR400 |
| Highlight (Tone Curve) | −1 |
| Shadow (Tone Curve) | −1 |
| Color | +3 |
| Sharpness | 0 |
| High ISO NR | −4 |
| Clarity | 0 |
| ISO | Auto, 500-6400 |
| Exposure Compensation | +1/3 to +2/3 (expose for the skin) |
The two changes that matter most
- Shadow −1, not +1, the single most important deviation.
Two independent primary sources collide here, and together they explain why punchy recipes so often fail on darker skin:
- Kodak's own UltraMax datasheet (E-7023) publishes separate negative-density targets by complexion: a normally-lit forehead reads 1.10-1.40 for a light complexion but 0.85-1.25 for a dark complexion, against a grey-card reference of 0.80-1.00. Read against the curve, lighter skin sits well above mid-grey. Darker skin sits close to it, in the lower-mid tonal zone.
- Fujifilm's own published curve data for Classic Chrome: "The shadow end is hard, but the tonality is soft on the highlight end" It is the second-hardest tonality of any simulation, and per the Dynamic Range & Tone Curve, the contrast controls bank's own rule it needs a Shadow lift just to reach normal shadow detail.
So Indian skin lands in precisely the tonal region Classic Chrome already crushes, and the reference recipe's Shadow +1 stacks more hardness onto that hard end. That's the muddy, detail-starved rendering of darker skin people complain about in high-contrast recipes. Shadow −1 lifts it back to roughly normal, recovering modelling in cheeks, jawline and eye sockets. Not a faded look. A correct one.
- The punch moves out of tone and into colour.
UltraMax has to stay punchy or it isn't UltraMax. But punch bought with crushed shadows and Clarity +3 is bought at skin's expense. So this build sources it differently:
- Color +3 + CCE Strong carry the vibrancy. Classic Chrome has officially "the lowest saturation of all film simulations... Minimized to the limit," so a +3 here is a correction from a floored baseline, not a boost. The real UltraMax scan confirms the behaviour this targets: "the single saturated accent reads strong and clean without going neon", the lift lands on accents, not the whole frame. Exactly right for kaali-peeli yellow, blue tarps, marigold and rani pink on an earthy stage.
- Clarity 0, not +3. Positive Clarity is mid-tone micro-contrast, on faces that means pores, unevenness and texture. Negative Clarity is what Portra and Gold use to flatter skin. Zero is the honest middle: no skin penalty, and it keeps the recipe HEIF-safe and fast-saving (non-zero Clarity slows shot-to-shot writes). Grain carries the texture instead.
- Highlight −1 + DR400 protect the top end in Mumbai's brutal sun. Bright saris, whitewash, sea-haze glare, without going limp. Classic Chrome's highlight end is already soft, so −1 is the sanctioned amount. −2 would.
Why these values (the rest)
- Classic Chrome base, deliberately kept. Its "suppressed magenta" is a real asset here: it stops warm skin drifting pink/ruddy, holding it neutral-warm. That trait is why the base survives Color +3 without skin going lurid. (See the notes for why Classic Negative and Astia were considered and rejected, and where Astia genuinely wins.)
- WB Daylight +2R/−3B. Warmth weighted to red, not yellow. This is the delicate one. The reference recipe's −5 Blue is a heavy yellow push. Maharashtra skin skews warm with olive common, and olive is yellow + green. Piling yellow onto olive is the classic route to sallow. Pulling blue back to −3 and holding red at +2 keeps the frame warm (Mumbai is warm in every light) while sourcing that warmth from red, which flatters golden/almond skin instead of yellowing it. +2R rather than Mumbai's +3R because Color +3 and CCE Strong are already adding warm density. +3R on top drifts ruddy.
- Fixed Daylight, not Auto. Mumbai runs sodium vapour, haze, deep market shade and tungsten interiors, often in one walk. Auto WB wanders across all of it and skin tone wanders with it. Colour-critical work takes fixed WB, the White Balance & WB Shift, the colour-cast control bank's standing rule, and doubly true when consistent skin is the goal.
- CCE Strong is doing more work here than any other single setting. It is a gradation tool, not a saturation tool. It recovers tonal separation inside already-saturated colour, and Fujifilm's own framing notes it enriches "wood, brass, terracotta, deep foliage, red fabric and skin in warm light." That is a literal inventory of Mumbai. It's what lets Color sit at +3 instead of +4.
- CCFXB Weak gives blue tarps and kaali-peeli blue some body. Not Strong: Classic Chrome deliberately removed magenta from skies, and fighting that produces an unnatural sky.
- Grain Strong, Small. Visible consumer-400 grain, but Small: large grain clumps on faces read as noise, not film. This is also closer to the datasheet's actual claim ("excellent sharpness and fine grain," T-GRAIN emulsion) than the reference's Strong/Large, which chases the print rather than the film.
- Sharpness 0. Neutral. Let grain do the texture work. Positive sharpening on skin fights everything above.
- Expose +1/3 to +2/3, metering for the skin. UltraMax is a negative with generous overexposure latitude, and DR400 is holding two stops of highlight headroom, so protect the face and let the top end take care of itself. DR400 pins ISO ≥ 500, which is intended: the baseline grain suits the stock.
Variants
| Situation | Change |
|---|---|
| Portrait priority (skin above all) | Base → Astia, Color +2, Clarity −1. See the notes. Fujifilm's Astia is documented to increase saturation on darker complexions specifically. Not a UltraMax look any more, but the most flattering skin in the bank. |
| Street / texture-forward | Clarity +1, Highlight 0, closer to the reference's grit, at some skin cost. |
| Marine Drive dusk / sea-haze | Highlight −2, Exposure +1/3, lean into the milky gold. |
| Night, sodium vapour / bazaar | ISO ceiling 12800, WB +1R/−2B (sodium is already orange. Don't double it). |
| Festival. Ganpati, Holi | Color +4, Grain Weak, Small, maximum colour density, cleaner faces. |
| Monsoon / overcast wet | Switch recipe → Mumbai Monsoon. This one is built for warm light. |
Validation tier: Original design. Field-test pending. Grounded in four evidence sources: the Kodak E-7023 datasheet (complexion density targets, T-GRAIN fine-grain and "accurate skin-tone reproduction" claims), the one confirmed real UltraMax scan in this bank (accent-pop behaviour, warm lean, muted olive greens), the Mumbai 11-image place study, and Fujifilm's published curve data for Classic Chrome. It has not been shot on actual Indian skin yet, that is the missing tier, and it is the one that matters most for this specific recipe.Faces in harsh midday, open shade, and sodium-lit night are the three highest-value tests, and it can be tuned from evidence rather than reasoning.
The one thing to check first when you field-test it: whether Shadow −1 is enough, or wants −2. Everything above argues the direction is right. The exact amount is the honest open question, because it depends on where your subjects' skin actually falls on the curve. If faces still read muddy in open shade, go to −2 before touching anything else.
Test priority: in order
- A face in harsh midday sun. Is Shadow −1 enough, or does it want −2? The single open question above. Change nothing else until this is answered. Color, WB and DR are not the problem if the face reads muddy.
- A face in open shade. The harder case: shade on this base is where Classic Chrome's hard shadow end and darker skin's lower placement on the curve compound. If −1 holds in sun but fails here, −1.5 is the answer rather than −2 everywhere.
- A face under sodium-vapour night light. Tests the night variant's WB (+1R/−2B, deliberately less warm, because sodium is already orange and doubling it is the classic Mumbai-night mistake).
- A saturated accent in a muted street frame, a blue tarp, a kaali-peeli taxi, a fruit cart. Confirms Color +3 + CCE Strong still gives accent-pop after the punch was moved out of the tone curve.
- The same face on this and the faithful UltraMax 400. The cleanest way to isolate what the Indian-skin tuning actually changed, separately from what the film does.
How this relates to the faithful UltraMax 400 original
This recipe is an interpretation. kodak-ultramax-400 is the datasheet-faithful build, derived from E-7023 on its own terms with no skin-tone tuning. Read together:
| UltraMax 400 (faithful) | AP's UltraMax | |
|---|---|---|
| Question it answers | What does the emulsion do? | What should it do for Indian skin in Mumbai? |
| Shadow (Tone Curve) | 0, neutral, lets the base's firm shadow end give consumer depth | −1, lifted, because darker skin sits where that firmness bites |
| Color | +4, backed by the accent-pop scan | +3, one notch down, because CCE is carrying more of the load |
| WB | +2R/−4B. Kodak consumer warmth | +2R/−3B, less yellow, because olive undertones read sallow under it |
| Validation | datasheet + 1 scan | field-test pending |
Both use the same complexion-density table from E-7023, for different purposes: the faithful build treats it as a metering aid (expose so a grey card sits normal and skin lands where Kodak intended). This one reads the gap between the light and dark rows as evidence about where darker skin falls on a tone curve, and moves the curve. That second step is an explicitly-labelled inference, not a Kodak claim.
If a frame disappoints here, shoot the same scene on the faithful build first. It separates "the interpretation is wrong" from "Classic Chrome can't do this", two different problems with two different fixes.
ISO 500 is the sweet spot, not a compromise (measured 2026-07-27). DR400 pins the ISO floor at 500, and that is exactly where the X-T5's conversion-gain step sits, so it is the cleanest ISO in that region, not a tax you pay for using DR400. ISO 640 is the expensive next click: roughly 0.35 EV of dynamic range for one third-stop, against about 0.02 EV for the step from 400 to 500. In good light, hold ISO at 500 and control exposure with aperture and shutter. Measured from published read-noise and PDR data, see Dynamic Range & Tone Curve, the contrast controls.
Why it looks like this
Original design (field-test pending). See the notes and the Knowledge base.
The brief
A personal UltraMax 400 build tuned for Indian skin tones and the Mumbai colour palette, the two things a standard UltraMax recipe handles worst.
Why a standard UltraMax build fights this brief
UltraMax's reputation is "warm, punchy, grainy drugstore film," and the reference recipe delivers exactly that: Color +4, Clarity +3, Grain Strong/Large, Shadow +1, WB −5 Blue. Three of those five are actively hostile to warm/olive skin, and one is hostile to Mumbai's light.
1. The tone-curve collision (the core finding)
Two primary sources, neither about the other, that together explain the problem:
Kodak E-7023, "Densities of Properly Exposed and Processed Negatives":
| Area measured | Density |
|---|---|
| Grey card (same illumination as subject) | 0.80-1.00 |
| Normally lighted forehead, light complexion | 1.10-1.40 |
| Normally lighted forehead, dark complexion | 0.85-1.25 |
(Kodak's own footnote: "Because of the extreme range in skin color, use these values only as a guide.")
Read against the characteristic curve: a light-complexion forehead sits roughly 0.3-0.4 above the grey-card reference. A darker complexion sits 0.05-0.25 above. Essentially at, or just above, mid-grey. The tonal zone that renders darker skin is therefore the lower midtones, not the upper midtones.
Fujifilm's published tonality data for Classic Chrome (X Stories ep. 2, extracted in Fujifilm Official Design Notes, from the X Stories / product pages):
"The shadow end is hard, but the tonality is soft on the highlight end." …and the tonality overall is "the second hardest after Velvia."
The bank's own derived rule from that: Classic Chrome needs a Shadow lift (−1/−2) just to reach normal shadow detail, because its shadow end crushes by design.
Put together: darker skin occupies the lower-mid zone → Classic Chrome already compresses that zone hard → the reference recipe adds Shadow +1 on top of it. That is three compounding factors pushing the same tonal region toward mud. Hence Shadow −1 here, a two-notch swing, and the recipe's single most consequential change.
Honesty note on this reasoning: Kodak publishes those densities to help judge negative exposure, not to prescribe digital tone-curve values. Mapping them onto a Fujifilm tone curve is my inference from the data, clearly labelled as such, not a Kodak claim. It is a well-supported inference (the direction is unambiguous), but the exact magnitude is exactly what field-testing needs to settle.
2. The olive-undertone trap
Mumbai is Maharashtra, and warm skin with olive undertones is common through Gujarat and Maharashtra. Indian complexions overall skew predominantly golden/almond and warm. Olive is not simply "warm". It is yellow plus green, which is why olive-toned subjects are documented as prone to reading sallow or grey when the surrounding colour handling pushes them wrong.
The reference recipe's −5 Blue is a heavy yellow push. Yellow onto olive is precisely the sallow route. So this build re-weights the warmth: blue pulled back to −3, red held at +2, so the frame stays warm (non-negotiable for Mumbai) but the warmth arrives via red, which flatters golden and almond skin, rather than via yellow, which risks jaundicing olive.
Classic Chrome's officially "suppressed magenta" is the other half of the protection. It prevents the warm push from tipping skin pink/ruddy, holding it neutral-warm instead. This is the main reason the base was kept rather than swapped.
3. Clarity on faces
The bank's own guidance: positive Clarity is "grittier, more three-dimensional (good for B&W, gritty looks)". Negative Clarity is "softer, dreamier... Flatters skin," which is why Portra, Gold and CineStill recipes run it negative. Clarity +3 on a recipe expected to shoot people is a straightforward skin penalty. It emphasises exactly the mid-tone micro-detail a portrait wants suppressed. Set to 0: no skin cost, HEIF-safe, fast-saving, and grain carries the texture instead.
4. Grain size on faces
The datasheet describes UltraMax as a Advanced T-GRAIN emulsion with "excellent sharpness and fine grain." The reference's Grain Strong/Large is therefore chasing the drugstore print memory rather than the emulsion, a legitimate target, and one the VALIDATION-AUDIT already flags. But large grain clumps on faces read as noise. Strong/Small keeps honest 400-speed visibility while staying finer on skin, and is closer to the datasheet besides.
What the datasheet says the film is supposed to do
Worth stating plainly, because it reframes the whole exercise. Kodak's own copy for UltraMax 400:
"Optimized color precision technology provides consistently bright, vibrant colors with accurate skin-tone reproduction for natural-looking people pictures." Feature/benefit table: "Great skin tones and superb color."
UltraMax was designed to deliver bright colour and good skin simultaneously. So this recipe is not fighting the film's nature to protect skin. It is restoring an intent the punchy print-look builds trade away. That is the cleanest possible justification for the whole redesign.
The design principle: move the punch from tone into colour
The recipe has to stay recognisably UltraMax. It does, but sources its energy differently:
| Punch source | Reference build | AP's build |
|---|---|---|
| Crushed shadows | Shadow +1 | Shadow −1 (open) |
| Micro-contrast grit | Clarity +3 | Clarity 0 |
| Highlight snap | Highlight +1, DR-Auto | Highlight −1, DR400 |
| Colour intensity | Color +4, CCE Weak | Color +3, CCE Strong |
Vibrancy now comes from saturation and gradation depth (CCE) rather than from tonal violence. The real UltraMax scan supports that this is the film's actual behaviour, an orange jacket reading "strong and clean without going neon" against an otherwise muted, warm-leaning, olive-green scene. Accents pop. The frame stays earthy. That is Mumbai: "saturated life on an earthy stage," per the 11-image study.
Bases considered and rejected
| Base | Case for | Why not |
|---|---|---|
| Classic Chrome | Suppressed magenta keeps warm skin neutral, not pink. Lowest-saturation baseline means Color pushes land on accents. It's what the reference UltraMax uses. | Hard shadow end, the one real flaw, and it is fixable with a Shadow lift. Kept. |
| Classic Negative | Officially has "mid-tone saturation emphasis", excellent for Mumbai's palette, and it's what the Mumbai original uses. | Officially cyan-green in shadows, magenta in highlights. Cyan-green shadows on skin that already carries olive (yellow+green) is the sallow risk doubled. Magenta highlights push warm skin ruddy. Too risky when skin is the priority. |
| Astia | Documented to render darker skin tones with increased saturation, producing richer tones for darker complexions, the single most skin-relevant fact in the colour-science file. Also Fujifilm's official mixed-light base. | It is a soft slide profile. It cannot produce UltraMax's punchy consumer-negative character, wrong film family entirely. Retained as the "portrait priority" variant, where it is genuinely the better tool. |
| Pro Neg. Hi/Std | Purpose-built portrait profiles. | Same problem as Astia, more so: nothing about them says "drugstore 400 film." |
Per Fujifilm's own capstone: "no matter what you do in Velvia mode, it will never turn into Fortia", the base is chosen first and settings tune within it, they don't relocate it. Classic Chrome is the right fork for this look. Its shadow behaviour is then corrected, not fought.
Validation status
Original design, field-test pending, the honest tier. Grounded in:
- Kodak E-7023 datasheet (archived). Complexion density targets, T-GRAIN/fine-grain spec, the explicit skin-tone design claim.
- One confirmed real UltraMax film scan (via the reference recipe's 2026-07-21 validation). Accent-pop behaviour, warm lean, muted yellow-olive greens, warm shadows holding detail.
- The Mumbai 11-image place study, the palette, the haze, the warm-in-every-light finding.
- Fujifilm's published curve and colour-design data for Classic Chrome.
Not yet tested on actual Indian skin. For a recipe whose entire premise is skin rendering, that is the gap that matters. Highest-value test frames, in order: (1) a face in harsh midday sun, (2) a face in open shade, (3) a face under sodium-vapour night light.
The specific open question to resolve first: is Shadow −1 sufficient, or does it want −2? The direction is well-evidenced. The magnitude depends on where real subjects' skin actually lands on the curve.
What these controls do
The reasoning above assumes you know what each control changes. If a value here is surprising, these explain the control behind it.
- White Balance & WB Shift
- Dynamic Range & Tone Curve
- Grain & Detail
- Color, Color Chrome Effect & FX Blue
- ISO & Exposure
- Film Simulations
- The Auto White Balance Trap in Film Emulation
- The S-Curve Explained: How to Master Fujifilm Highlight and Shadow Tones
- The Tone Curve Audit: Where Most Fujifilm Recipes Fail
Recipes close to this one
Which cameras this fits
Built and measured on the X-T5. The X100VI, X-H2 and X-T50 carry the same 40.2 MP X-Trans CMOS 5 HR sensor, so this is not adapted for them. It is the same recipe. On an X-Trans IV body it needs one documented change: what the change is, why an older recipe looks wrong without it, and how to convert one yourself.
The whole bank reads like this
63 recipes, every value published, each one traced back to the film it emulates and the datasheet it came from.