Skip to content

Vitrine v1.36.0

Choose a tag to compare

@Redrum624 Redrum624 released this 23 Jul 14:47

Fixed

  • Noise reduction was unusable above strength ~5. Cause: the slider's filter-strength mapping carried a base offset (h = 0.015 + slider×0.0012) — strength 0 already applied a full low-ISO denoise and 95% of the slider range smeared detail. New curve: zero means off, mid-slider ≈ the old "5", the top end is strong but not destructive; the CPU fallback now uses the identical curve, and the NR Auto button was re-tuned to keep its effective output. If you had parked the slider around 5, the same look now lives around 50. Affects: src/shaders/nrCurve.ts (new), src/services/AdvancedDenoisingService.ts, src/modules/NoiseReductionModule.ts.
  • The Enhance sharpen (CAS) slider had the same defect: 62.5% of maximum sharpening at slider 0 — and slider 0 meant "off" on the AI route but "62.5%" on the standard route. Now 0 is truly off on both routes and the range is linear. Affects: src/utils/enhanceOps.ts, src/utils/enhanceChain.ts, src/shaders/GpuPreviewPipeline.ts.
  • White Balance temperature shifted the tint. Cause: per-channel gains were derived from a display blackbody curve whose green component drifts against the red/blue axis — a warm move injected ≈+19 tint-units of green, 3200K injected ≈−45 (magenta). Green is now pinned: temperature moves strictly along blue↔amber, tint alone owns green↔magenta (CPU, worker, and GPU all share the one fixed function; ~400 lines of dead shader code deleted along the way). Saved non-6500K edits render slightly differently — correctly now. Affects: src/modules/WhiteBalanceModule.ts, src/modules/utils/ColorUtils.ts.
  • The Basic Adjustments ⚡ Auto never touched highlights or shadows. Cause: the module has both sliders, but the standalone auto's output simply omitted them (Auto All drives them through a separate fold). Standalone Auto now pulls blown highlights down and lifts crushed shadows from the image's own statistics — while snow, beaches, and high-key scenes are explicitly protected (bright-pixel term gated on the 95th percentile). Auto All is unchanged. Affects: src/services/AutoAdjustService.ts.
  • The Enhance panel could lie about its state. Persisted preferences could silently overwrite a photo's own saved enhance/NR settings on any panel remount; slider changes on an applied Sharpen didn't refresh the preview until an unrelated edit did; a refused bake (e.g. clicked while the photo was still developing) still marked itself "applied". All fixed: per-image state always wins over preferences, controls stage until first Apply then commit live like every other panel, only genuinely completed bakes count, and Reset now clears everything the panel shows as active. One asymmetry to know: toggling NR off on an applied enhance updates live, toggling it back on stages until Apply. Affects: src/components/Modules/EnhanceModuleComponent.tsx, src/utils/enhancePrefsStorage.ts.

Changed

  • Sharpening preview is now honest — judge it at 1:1. Cause: sharpen kernels were applied in pixel space at whatever resolution was being processed, so the fit-zoom preview showed ~5× stronger sharpening than the exported file ever had. Kernels now scale to the processing resolution with the export as the reference: exports are bit-identical to before, the fit-zoom preview is subtler (matching what the export actually looks like when zoomed out), and the 1:1 view matches the export exactly. Affects: src/utils/enhanceOps.ts, src/services/ImageProcessingPipeline.ts, src/components/Panels/AdjustmentPanel.tsx.

SHA256 checksums

502d39b9c21dfa5489ad43102bfce40027c6f34df0454a9be2d905d02d15e010  Vitrine Setup 1.36.0.exe
516fee8cb551e43df051792a415a196c73db7094963f4e9346507a4129319c75  Vitrine 1.36.0 portable.exe

Verify on Windows: CertUtil -hashfile "<downloaded file>" SHA256