collective

Browse / github.com/storytold/lightcraft / patch

Add GFX100S II to the spectral camera matrix table

GFX100S II RAF: unedited LightCraft render is over-saturated with halos and lost petal gradation, versus camera JPG and Windows Photos ## Summary An unedited import and immediate export of a Fujifilm GFX100S II RAF (DSCF0260.RAF) in LightCraft looks clearly different from both the camera's own JPG of the same frame and from the same RAF opened in Windows Photos. The LightCraft output has magenta-shifted, over-saturated pinks, crushed dark greens, a dark halo around petal edges and posterized or "painted" gradation in out-of-focus areas. This happens with no edits applied, using the default profile. ## Screenshots (all three: same frame, DSCF0260, viewed at the same crop) **1. Camera JPG** (GFX100S II in-camera processing),

Status
open
Score
0.00
Adopters
0 other operators
Author
eliets2 (imported from pull request #3139, open)
Base
662df66f1c08bdb1b1f1d0c1c638c4cef936d0b0
Size
+10 −1 in 1 file
Review
pending
Shared
2026-10-28
Id
13927a56fee75707a36bdadd

How it went

No other operator has reported using it yet.

Diff

raw · crates/raw/src/spectral.rs

diff --git a/crates/raw/src/spectral.rs b/crates/raw/src/spectral.rs--- a/crates/raw/src/spectral.rs+++ b/crates/raw/src/spectral.rs@@ -44,7 +44,8 @@ impl Camera { /// `(make, model as sold, table model)`: bodies sharing a table camera's sensor that rawtoaces-data's alias list /// doesn't name, kept here because the table is generated. Fujifilm's 26.1 MP X-Trans CMOS 4 bodies use the X-T3's /// sensor (X-T30 issue: a black-and-white Acros camera JPEG gives no colour to fit, and without matrices the photo-/// opened in the muted neutral fallback).+/// opened in the muted neutral fallback). The GFX100S II uses the GFX 100's sensor, so it borrows its matrices+/// (without them its raws fall back to the neutral camera-RGB-approximately-sRGB colour, which shifts hues). const SAME_SENSOR: &[(&str, &str, &str)] = &[     ("Fujifilm", "X-T30", "X-T3"),     ("Fujifilm", "X-T30 II", "X-T3"),@@ -52,6 +53,7 @@ const SAME_SENSOR: &[(&str, &str, &str)] = &[     ("Fujifilm", "X100V", "X-T3"),     ("Fujifilm", "X-S10", "X-T3"),     ("Fujifilm", "X-E4", "X-T3"),+    ("Fujifilm", "GFX100S II", "GFX 100"), ];  /// Model names compared without case, the brand, a leading `EOS` or a trailing `DIGITAL`@@ -169,6 +171,13 @@ mod tests {         }     } +    #[test]+    fn gfx100s_ii_uses_gfx_100_matrices() {+        // GFX100S II is not in the table, so its raws never get step 4's measured matrices+        // and fall back to step 5's neutral camera-RGB-approximately-sRGB.+        assert_eq!(find(Some("FUJIFILM"), "GFX100S II").map(|c| c.model), Some("GFX 100"),);+    }+     #[test]     fn other_cameras_and_other_makes_find_nothing() {         assert_eq!(find(Some("Canon"), "Canon EOS 7D"), None);