diff --git a/crates/engine/src/camera_preview.rs b/crates/engine/src/camera_preview.rs index 155629830..d074567a7 100644 --- a/crates/engine/src/camera_preview.rs +++ b/crates/engine/src/camera_preview.rs @@ -35,10 +35,10 @@ use lightcraft_raw::{ /// 8: the bundled NIKON Z 6_2 profile. /// 9: the bundled NIKON Z 8 and NIKON D5300 profiles. /// 10: DNG tone fit for profiles with a look table and for 1024 px (Lightroom) previews. -/// 12: tone curves of low-contrast scenes (range limit 1.2, with the bright-area check for curves under 1.5, #699). -/// 10: tone-only fallback for near-black scenes with too few colour pairs (#1587). -/// 10: DNG tone fitting uses a lens-corrected proxy when the file carries lens opcodes. -/// 11: validated A7CR distortion, including the lens data stored with each smart preview. +/// 12: tone curves of low-contrast scenes (range limit 1.2, with the bright-area check for curves under 1.5, #699); +/// a tone-only fallback for near-black scenes with too few colour pairs (#1587); DNG tone fitting uses a +/// lens-corrected proxy when the file carries lens opcodes; validated A7CR distortion, including the lens data +/// stored with each smart preview. pub const LOOK_VERSION: u32 = 12; #[derive(Clone, Debug)] diff --git a/docs/camera-preview-colour.md b/docs/camera-preview-colour.md index d7f3ace33..7a1235ab3 100644 --- a/docs/camera-preview-colour.md +++ b/docs/camera-preview-colour.md @@ -36,7 +36,7 @@ If the original curve cannot be fitted, the wider curve can still be accepted af A near-black frame can have fewer than 256 colour pairs, so none of those attempts reaches tone fitting (#1587). After all existing looks fail, a tone-only fallback uses the wider signal floors above. At least 90% of the JPEG proxy must be below luminance 0.015. It excludes clipped sensor pixels from training and refuses invalid samples and JPEG highlights at or above 0.85. Every clipped pixel must stay at least as close to its JPEG luminance as the default curve leaves it. At least 256 usable pairs must show luminance rank correlation of 0.5 or more. Two thirds train a quantile curve; the held-out third must reduce squared luminance error by 30% in both linear and gamma-encoded values. This fallback keeps the source's spectral or neutral colour and learns no matrix, hue/saturation table or chroma curve. Earlier accepted looks keep their result. -The extra dark knots move the straight-line extension down toward black without a new serialized curve format or a different CPU/GPU interpolation rule. `LOOK_VERSION` 10 refreshes older fitted smart previews when their originals are online; `RENDER_CACHE_VERSION` 67 redraws cached renders. +The extra dark knots move the straight-line extension down toward black without a new serialized curve format or a different CPU/GPU interpolation rule. `LOOK_VERSION` 12 refreshes older fitted smart previews when their originals are online; `RENDER_CACHE_VERSION` 69 redraws cached renders. No process-version bump is needed under the [rule for changes to source data](process-versions.md#the-rule). The decoded source carries the fitted camera tone in `SourceInfo`; both V1 and V2 use it in `finish::base_tone`. Existing raws edited under V1 or V2 can therefore change when decoded again. Offline smart previews keep their stored pixels and tone until rebuilt from the original. The scan on library opening runs once per look version for each smart previews folder. If an original was offline at that scan, run Build Smart Previews after reconnecting it. diff --git a/docs/sony-lens-corrections.md b/docs/sony-lens-corrections.md index 3bd40a020..dff886b13 100644 --- a/docs/sony-lens-corrections.md +++ b/docs/sony-lens-corrections.md @@ -173,7 +173,7 @@ No Imaging Edge On/Off pairs were measured for this body. Camera JPEGs are the r This branch supplies the warp for camera-look pairing in PR #1586. It does not duplicate that pairing code. -`LOOK_VERSION` 11 refreshes smart previews that stored no A7CR lens data; `RENDER_CACHE_VERSION` 68 redraws cached +`LOOK_VERSION` 12 refreshes smart previews that stored no A7CR lens data; `RENDER_CACHE_VERSION` 69 redraws cached renders. Existing edits are preserved. Reload from Disk reads the new lens data for old imports. Enable the