Repository navigation
Releases: LucienMidnight/hdr-finisher
Release list
HDR Finisher v0.9.1
HDR Finisher 0.9.1
0.9.1 adds a Photo Library for browsing and organising your pictures, and rebuilds Film Look with a larger choice of film stocks, print papers and lens filters.
Photo Library
- Browse pinned folders in a thumbnail grid or filmstrip, open a single picture, or review full screen. Zoom in to inspect real detail, and compare two pictures with linked zoom and position.
- Organise pictures with stars, colour labels, tags, manual albums and smart albums that follow your filter rules. Duplicate albums or turn a smart selection into a manual album.
- Check focus and exposure with overlays, including shadow and highlight warnings based on the source picture.
- Grades save in the background, with autosave status, recovery and conflict choices. Saved grades appear in Library pictures, and virtual copies let you keep several independent versions of a photo.
- Copy and paste selected parts of a grade, or revert a photo or copy. Rename, move and delete photos and folders through confirmed commands with recovery records.
- Background folder checks keep the Library current. Camera RAW browsing, read-ahead and reuse of pictures make moving between photos quicker, and edited Library pictures retain their HDR and SDR views.
Film Look
- Choose from a library of negative and slide films, with stock-specific colour, tone, grain and character. Film Looks combine a stock with selected creative changes, and stage presets let you reuse individual parts of a look.
- Five folding stages follow the picture through camera, development, printing and scanning. Push/Pull, print exposure, print contrast, shadow and highlight contrast, paper choice and scanner controls shape the result.
- Film effects now follow their physical order. Grain at Fit reflects the downsized film scan, and halation favours red light as it would after reflection through the film base.
- Black Pro-Mist, Pro-Mist, Glimmerglass and CineBloom lens filters provide different kinds of glow, with Strength and Size controls.
- Stock-owned controls show which values belong to the selected stock and which you changed, with reset dots to return to the stock value.
Refinements
- New branding, a tighter header, and Library and preset controls styled to match the side panels.
- Grade loading appears immediately when opening a Library photo, and the preview retries on the graphics card when loading a film stock interrupts its first draft.
- Recent projects in the File menu and header reopen your last ten projects, including ones saved with Save As. Drag in the navigation window to pan, and the RAW only filter is back beside HDR in the Library toolbar.
- Fixes for Black and White on large tiled pictures, Library tags and albums saving reliably, and Match no longer applying a late reply to the next photo.
- Neutral Film Look retains weak colour channels and a wider range before HDR highlight compression. Extremely bright, uncompressed grades still have the preview limit described below.
Changed or removed
Bloom has been replaced by the lens filters. Projects or presets that used removed settings, including earlier Film Look controls, must be recreated. Before 1.0, removed settings are not migrated.
Known limitations
This remains a technical alpha. Windows packages are unsigned; macOS packages are not notarized. Very bright uncompressed HDR grades can exceed the preview's numerical range and show clipped colours or white patches; CPU export and Proof remain the reference. The widest lens-filter glows have bounded tails. On macOS and Linux, renaming, moving and deleting photos from the Library is not available yet; the Library says so and leaves your files untouched. Preview/export differences and other retained checks are recorded in Known limitations; release validation status is recorded there separately from these draft notes.
See Known limitations for support and validation status.
Full changelog: v0.9.0...v0.9.1
HDR Finisher 0.9.0
0.9.0 is the largest update so far: about 400 changes since 0.8.12. The headlines are a preview that shows real full-resolution detail, much faster editing on large files, several new tools, and a codebase reorganised so it is easier to work on.
Full-resolution preview
- The preview now shows true source detail when you zoom in. At 100% and above you are looking at the real pixels of the file, not an enlarged smaller copy, and above 100% each pixel is drawn as a sharp square.
- Only the part of the picture on screen is processed, at the detail the current zoom needs. That is what makes native detail practical on 40-megapixel files without running out of graphics memory.
- Large pictures are rendered in tiles when they would not fit in graphics memory in one piece. Masks, local adjustments, Detail, Denoise, Film Look and Vignette all work on that path and match the single-pass result.
- If the graphics device fails, the app rebuilds it and carries on instead of dropping to the slow CPU preview for the rest of the session.
Performance
- Panning at 100% no longer downloads the view again for each move: on a 42 MP test file a pan went from about 0.4 s to about 0.16 s.
- Zooming to a new size is about twice as fast the first time (for example 2.3 s to 1.2 s at 50% on a 42 MP file), and sizes you have already visited are kept on disk between sessions.
- RAW import is faster: lens correction now uses several processor cores, taking a 42 MP import from about 11.7 s to 7.6 s.
- Sliders settle when you let go instead of re-rendering values already on screen, and a single "Faster dragging" option replaces the old preview modes for slower computers.
- Local adjustment masks, including feather, edge shift, straightened and perspective-corrected masks, are now built on the graphics card rather than fetched from the slower CPU path.
- SDR Match renders its trial versions on the graphics card.
- Scopes stay live while you drag and stay on the graphics card when you switch between HDR and SDR.
New tools
- Before / After. View > Preview Compares switches the compare tools between HDR / SDR and Before / After. Tap V to switch to the picture as it was imported, hold V to peek, or use a split layout with Before on one side and your grade on the other.
- Black & White. A new module with eight colour sliders that set how bright each colour becomes in grey.
- Denoise, rebuilt. One adaptive method that measures the noise in your file, with separate controls for four sizes of noise and a Show noise view that displays only what is being removed. The earlier wavelet method has been removed.
- Film grain, rebuilt. A more physical grain with a black-and-white film type and a grain map view.
- Vignette. Horizontal and Vertical Scale, an on-picture outline of where the vignette starts and ends, and Amount can be typed up to 200% either way.
- Local Adjustments eye. One eye switches every local adjustment off or on, in the preview and in export, like the other modules.
- Navigate window. Appears for any zoom closer than Fit, sits clear of the scroll bars, handles very wide and very tall pictures, and can be set to Always Show, Auto or Off from the View menu.
- Revert HDR and Revert SDR in the File menu return one rendition to its starting state.
- Typed values everywhere. Every number beside a single slider can now be typed, and 55 grading controls accept typed values beyond the ends of their slider. The full list is in the typed values reference.
Refinements
- Perspective has a responsive draft while you work; Apply makes it permanent and leaving the tool cancels it. Its guides stay on the picture when you zoom.
- Softness and Microcontrast moved from Film Look to Detail. Halation, Bloom and Diffusion no longer echo bright highlights.
- One status bar reports everything the app is doing. When there is too much to show, the most urgent messages stay and the rest fold into a "+N more" marker. Export reports a short completion message.
- False Color applies its opacity evenly across every brightness band.
- Path feather keeps the same falloff at every zoom, and luminance-mask feather matches between preview and export.
- The viewer stays inside its panel in narrow windows.
Under the hood
- The frontend has been reorganised from two very large files into about 70 focused ones (the main file alone was over 19,000 lines). Nothing about how the app behaves changed; the point is that each part can now be read, checked and changed on its own, by a person or by an AI model.
- A code audit removed unused and legacy code: the old SDR renderer, the first version of SDR Match, wavelet Denoise and the old-preferences conversion.
- Automated checks now test what the app produces rather than the wording of its code, and a new in-app check covers the viewer tools.
Project compatibility
Before 1.0, retired adjustment fields and preferences are ignored rather than migrated. Older projects using wavelet Denoise open with the current adaptive method; retired SDR Match recipes are not preserved. Review those projects after opening.
Downloads
- Windows x64: Setup installer and Portable executable.
- macOS Apple Silicon: DMG and ZIP packages.
- Linux x86_64: Debian and Flatpak packages.
- SHA-256 checksum manifests are included for each platform.
Release automation builds, tests, and verifies the platform packages before publishing.
Known limitations
This remains a technical alpha. Windows packages are unsigned; macOS packages are not notarized.
Preview/export and cross-scale differences, a few pixel-parity checks, and measured responsiveness target misses remain recorded in the viewport-preview PRD. This release does not claim that every guard passes. Linux HDR can show gradient banding on the documented KDE/Wayland NVIDIA path; X11/X...
HDR Finisher v0.9.0
HDR Finisher 0.9.0
0.9.0 is the largest update so far: about 400 changes since 0.8.12. The headlines are a preview that shows real full-resolution detail, much faster editing on large files, several new tools, and a codebase reorganised so it is easier to work on.
Full-resolution preview
- The preview now shows true source detail when you zoom in. At 100% and above you are looking at the real pixels of the file, not an enlarged smaller copy, and above 100% each pixel is drawn as a sharp square.
- Only the part of the picture on screen is processed, at the detail the current zoom needs. That is what makes native detail practical on 40-megapixel files without running out of graphics memory.
- Large pictures are rendered in tiles when they would not fit in graphics memory in one piece. Masks, local adjustments, Detail, Denoise, Film Look and Vignette all work on that path and match the single-pass result.
- If the graphics device fails, the app rebuilds it and carries on instead of dropping to the slow CPU preview for the rest of the session.
Performance
- Panning at 100% no longer downloads the view again for each move: on a 42 MP test file a pan went from about 0.4 s to about 0.16 s.
- Zooming to a new size is about twice as fast the first time (for example 2.3 s to 1.2 s at 50% on a 42 MP file), and sizes you have already visited are kept on disk between sessions.
- RAW import is faster: lens correction now uses several processor cores, taking a 42 MP import from about 11.7 s to 7.6 s.
- Sliders settle when you let go instead of re-rendering values already on screen, and a single "Faster dragging" option replaces the old preview modes for slower computers.
- Local adjustment masks, including feather, edge shift, straightened and perspective-corrected masks, are now built on the graphics card rather than fetched from the slower CPU path.
- SDR Match renders its trial versions on the graphics card.
- Scopes stay live while you drag and stay on the graphics card when you switch between HDR and SDR.
New tools
- Before / After. View > Preview Compares switches the compare tools between HDR / SDR and Before / After. Tap V to switch to the picture as it was imported, hold V to peek, or use a split layout with Before on one side and your grade on the other.
- Black & White. A new module with eight colour sliders that set how bright each colour becomes in grey.
- Denoise, rebuilt. One adaptive method that measures the noise in your file, with separate controls for four sizes of noise and a Show noise view that displays only what is being removed. The earlier wavelet method has been removed.
- Film grain, rebuilt. A more physical grain with a black-and-white film type and a grain map view.
- Vignette. Horizontal and Vertical Scale, an on-picture outline of where the vignette starts and ends, and Amount can be typed up to 200% either way.
- Local Adjustments eye. One eye switches every local adjustment off or on, in the preview and in export, like the other modules.
- Navigate window. Appears for any zoom closer than Fit, sits clear of the scroll bars, handles very wide and very tall pictures, and can be set to Always Show, Auto or Off from the View menu.
- Revert HDR and Revert SDR in the File menu return one rendition to its starting state.
- Typed values everywhere. Every number beside a single slider can now be typed, and 55 grading controls accept typed values beyond the ends of their slider. The full list is in the typed values reference.
Refinements
- Perspective has a responsive draft while you work; Apply makes it permanent and leaving the tool cancels it. Its guides stay on the picture when you zoom.
- Softness and Microcontrast moved from Film Look to Detail. Halation, Bloom and Diffusion no longer echo bright highlights.
- One status bar reports everything the app is doing. When there is too much to show, the most urgent messages stay and the rest fold into a "+N more" marker. Export reports a short completion message.
- False Color applies its opacity evenly across every brightness band.
- Path feather keeps the same falloff at every zoom, and luminance-mask feather matches between preview and export.
- The viewer stays inside its panel in narrow windows.
Under the hood
- The frontend has been reorganised from two very large files into about 70 focused ones (the main file alone was over 19,000 lines). Nothing about how the app behaves changed; the point is that each part can now be read, checked and changed on its own, by a person or by an AI model.
- A code audit removed unused and legacy code: the old SDR renderer, the first version of SDR Match, wavelet Denoise and the old-preferences conversion.
- Automated checks now test what the app produces rather than the wording of its code, and a new in-app check covers the viewer tools.
Project compatibility
Before 1.0, retired adjustment fields and preferences are ignored rather than migrated. Older projects using wavelet Denoise open with the current adaptive method; retired SDR Match recipes are not preserved. Review those projects after opening.
Downloads
- Windows x64: Setup installer and Portable executable.
- macOS Apple Silicon: DMG and ZIP packages.
- Linux x86_64: Debian and Flatpak packages.
- SHA-256 checksum manifests are included for each platform.
Release automation builds, tests, and verifies the platform packages before publishing.
Known limitations
This remains a technical alpha. Windows packages are unsigned; macOS packages are not notarized.
Preview/export and cross-scale differences, a few pixel-parity checks, and measured responsiveness target misses remain recorded in the viewport-preview PRD. This release does not claim that every guard passes. Linux HDR can show gradient banding on the documented KDE/Wayland NVIDIA path; X11/Xwayland uses SDR simulation. RAW and Experimental DNG Import retain their documented compatibility limits.
See Known limitations for the full support status.
Full changelog: v0.8.12...v0.9.0
HDR Finisher v0.8.12
HDR Finisher 0.8.12
HDR Finisher 0.8.12 tightens the frontend pipeline and makes local mask controls respond directly and predictably while editing.
- Replacing a source now retires the previous backend session cleanly and prevents stale requests from restoring superseded state.
- Preview-resolution and source-disclosure controls stay synchronized with the active pipeline state.
- Path-mask drawing follows the cursor through viewer geometry transforms, keeps the live segment visible, and shows feather feedback immediately during interaction.
- Path gizmos remain aligned after crop, rotation, perspective, zoom, and viewer-fit changes.
- Gradient-mask luminance selection is now a single grayscale rail with four handles, live EV readouts, and a clear selected-range fill.
- Control-panel luminance adjustments and on-image mask feedback now update through the same state synchronization path.
- Browser interaction coverage now exercises source replacement, transformed path drawing, feather feedback, pipeline controls, and all four luminance handles with real pointer input.
Downloads
- Windows x64: Setup installer and Portable executable.
- macOS Apple Silicon: DMG and ZIP packages.
- Linux x86_64: Debian and Flatpak packages.
- SHA-256 checksum manifests are included for each platform.
Release automation builds, tests, and verifies the platform packages before publishing.
Known limitations
This remains a technical-alpha release. Windows artifacts are unsigned. macOS packages are ad-hoc signed and are not notarized.
Capture sharpening is evaluated at 1:1. Below roughly 38% of full resolution the radius compensation reaches its floor, so preview sharpening is coarser relative to the frame than the export's. The output limiter is unaffected by this.
Linux HDR preview can show visible gradient banding on the documented KDE/Wayland NVIDIA path; this does not by itself indicate banding in high-bit-depth exports. X11/Xwayland uses an explicit SDR simulation. RAW development remains a constrained beta, and difficult clipped highlights can retain color artifacts.
See Known limitations for the full support status.
Full changelog: v0.8.11...v0.8.12
HDR Finisher v0.8.11
HDR Finisher 0.8.11
HDR Finisher 0.8.11 brings the Proof page back in line with the Grade view. Sharpening no longer produces unbounded halos that hijacked the export's highlight anchor, and the output target is now a guarantee rather than an aim.
- The Proof page no longer diverges from the Grade view in the 400-1000 nit band. Sharpening ringing had been setting the export's Peak Fit anchor, putting it 1.85 stops away from the preview's and silently moving an authored 400 nit shoulder to 154 nit, which cost 28% of the luminance and 23% of the saturation in that band. Both engines now honour the authored shoulder.
- Output target is an unconditional ceiling. Peak Fit and Soft Ceiling both end at the target in the delivery primaries, so a technical delivery spec holds regardless of what Detail, Film Look, grain or output finishing add downstream. A shoulder anchored on a measured peak cannot promise the target on its own.
- Sharpening no longer produces unbounded halos. The halo fence scaled its allowance by the local neighborhood range against a log floor at 1e-7, so any pixel beside a near-black sample reported a twenty-stop range and the fence stopped bounding anything; ringing reached +4.27 stops. The excursion is now capped at 0.25 EV with a raised luminance floor. Sharpening coverage and response to Amount are unchanged, and the peak no longer moves with Amount at all.
- The SDR lane applies its highlight shoulder exactly once. The WebGPU preview had gained a second application for scene-referred sources. The SDR shoulder stays where it is, since it is the scene-to-display placement that fits the remaining scene headroom rather than a limiter, and receives the output ceiling alone.
- Scopes read the same finished render target the viewer presents, instead of recomputing Film Look, so scopes and the presented frame agree by construction.
- The preview still anchors Peak Fit on a source-domain estimate rather than the finished picture, so a grade with heavy Film Look or local work can still show a small difference against the proof in the top stop. Measuring the finished picture in the preview needs the render scheduler to request a refinement after the measurement lands, and is deferred.
- Export clips after output finishing, so output sharpening lands under the ceiling instead of on top of it.
Grading latency is unchanged.
Downloads
- Windows x64: Setup installer and Portable executable.
- macOS Apple Silicon: DMG and ZIP packages.
- Linux x86_64: Debian and Flatpak packages.
- SHA-256 checksum manifests are included for each platform.
Release automation builds, tests, and verifies the platform packages before publishing.
Known limitations
This remains a technical-alpha release. Windows artifacts are unsigned. macOS packages are ad-hoc signed and are not notarized.
Capture sharpening is evaluated at 1:1. Below roughly 38% of full resolution the radius compensation reaches its floor, so preview sharpening is coarser relative to the frame than the export's. The output limiter is unaffected by this.
Linux HDR preview can show visible gradient banding on the documented KDE/Wayland NVIDIA path; this does not by itself indicate banding in high-bit-depth exports. X11/Xwayland uses an explicit SDR simulation. RAW development remains a constrained beta, and difficult clipped highlights can retain color artifacts.
See Known limitations for the full support status.
Full changelog: v0.8.10...v0.8.11
HDR Finisher v0.8.10
HDR Finisher 0.8.8
HDR Finisher 0.8.8 fixes native macOS window controls and the application menu, and brings the latest editing, import, and theme improvements from main.
- Restores the native macOS title bar, traffic-light controls, and full-screen behavior, with the application menu in the macOS menu bar.
- Adds Default Light and Studio Gray themes and refines slider, toggle, and Film Look controls while keeping the viewer frame independent of the selected theme.
- Adds local mask sub-masks and keeps masks anchored to the image when crop geometry changes.
- Adds guided perspective correction separately from manual Straighten and a grain view map for inspecting Film Look grain.
- Selects the Apple HEIC gain map by auxiliary-image type for more reliable HDR import.
- Adds the camera-linear RAW import bridge with bypassable highlight reconstruction for supported Bayer and X-Trans sources.
- Unifies Highlight Compression across HDR and SDR, with Smooth color rolloff as the default Peak Fit behavior. Generated SDR uses the new curve; older projects retain their existing rendering behavior.
Downloads
- Windows x64: Setup installer and Portable executable.
- macOS Apple Silicon: DMG and ZIP packages.
- Linux x86_64: Debian and Flatpak packages.
- SHA-256 checksum manifests are included for each platform.
Release automation builds, tests, and verifies the platform packages before publishing.
Known limitations
This remains a technical-alpha release. Windows artifacts are unsigned. macOS packages are ad-hoc signed and are not notarized.
Linux HDR preview can show visible gradient banding on the documented KDE/Wayland NVIDIA path; this does not by itself indicate banding in high-bit-depth exports. X11/Xwayland uses an explicit SDR simulation. RAW development remains a constrained beta, and difficult clipped highlights can retain color artifacts.
See Known limitations for the full support status.
Full changelog: v0.8.7...v0.8.8
HDR Finisher v0.8.8
HDR Finisher 0.8.8
HDR Finisher 0.8.8 fixes native macOS window controls and the application menu, and brings the latest editing, import, and theme improvements from main.
- Restores the native macOS title bar, traffic-light controls, and full-screen behavior, with the application menu in the macOS menu bar.
- Adds Default Light and Studio Gray themes and refines slider, toggle, and Film Look controls while keeping the viewer frame independent of the selected theme.
- Adds local mask sub-masks and keeps masks anchored to the image when crop geometry changes.
- Adds guided perspective correction separately from manual Straighten and a grain view map for inspecting Film Look grain.
- Selects the Apple HEIC gain map by auxiliary-image type for more reliable HDR import.
- Adds the camera-linear RAW import bridge with bypassable highlight reconstruction for supported Bayer and X-Trans sources.
- Unifies Highlight Compression across HDR and SDR, with Smooth color rolloff as the default Peak Fit behavior. Generated SDR uses the new curve; older projects retain their existing rendering behavior.
Downloads
- Windows x64: Setup installer and Portable executable.
- macOS Apple Silicon: DMG and ZIP packages.
- Linux x86_64: Debian and Flatpak packages.
- SHA-256 checksum manifests are included for each platform.
Release automation builds, tests, and verifies the platform packages before publishing.
Known limitations
This remains a technical-alpha release. Windows artifacts are unsigned. macOS packages are ad-hoc signed and are not notarized.
Linux HDR preview can show visible gradient banding on the documented KDE/Wayland NVIDIA path; this does not by itself indicate banding in high-bit-depth exports. X11/Xwayland uses an explicit SDR simulation. RAW development remains a constrained beta, and difficult clipped highlights can retain color artifacts.
See Known limitations for the full support status.
Full changelog: v0.8.7...v0.8.8
HDR Finisher v0.8.7
HDR Finisher 0.8.7
HDR Finisher 0.8.7 makes Match entire HDR grade produce a normal, editable SDR starting point and removes visible Texture halos from thin wires and high-contrast edges. It includes the latest local main commit, c791cb4 ("Materialize editable HDR-to-SDR matches"), plus the subsequent Texture correction.
- Materializes HDR-to-SDR matching into ordinary SDR controls and ordered local adjustments instead of retaining a hidden captured rendering recipe.
- Keeps the matched SDR result independently editable and records whether the conversion matched within tolerance or needs review.
- Preserves deterministic edit history and existing project behavior around matching, conversion, and source-specific state.
- Adds scale-aware edge protection to Texture in CPU preview/export and in global and masked-local WebGPU rendering.
- Prevents the difference-of-blurs Texture band from drawing light or dark outlines around narrow, high-contrast structures while retaining low-amplitude surface texture.
- Adds regression coverage for dark and bright one-pixel wires, surface-detail retention, WebGPU shader compilation, and global/local Detail rendering.
Release automation builds and verifies Windows x64 Setup and Portable executables, macOS Apple Silicon DMG and ZIP packages, Linux x86_64 Debian and Flatpak packages, and SHA-256 checksum manifests before publishing the GitHub release.
This remains a technical-alpha release. Windows artifacts are not code-signed. macOS packages use the project's existing ad-hoc signature and are not notarized, so macOS users may need Finder's one-time Open flow. Linux HDR presentation is qualified for the documented Kubuntu 26.04 native-Wayland environment; X11/Xwayland uses an explicit SDR simulation.
HDR Finisher v0.8.6
Desktop release for Windows x64, macOS Apple Silicon, and Linux x86_64. Kubuntu 26.04 with native Wayland is the Linux HDR target; X11/Xwayland uses an explicit SDR simulation. macOS users may need Finder's one-time Open flow. Verify downloads against the included SHA-256 checksum files.
Full Changelog: v0.8.5...v0.8.6
HDR Finisher v0.7.7
Unsigned desktop release. macOS users may need Finder's one-time Open flow; do not disable Gatekeeper globally. Verify downloads against the included SHA-256 checksum files.
Full Changelog: v0.7.6...v0.7.7
HDR Finisher v0.7.6
Unsigned technical preview. macOS users may need Finder's one-time Open flow; do not disable Gatekeeper globally. Verify downloads against the included SHA-256 checksum files.
Full Changelog: v0.7.5...v0.7.6