-
DarkRoom 0.21.0
Stable🐳 Android image / Build and push (push) Successful in 4sBuild and test / android-image (push) Successful in 5sBuild and test / Desktop (Linux) (push) Successful in 1h27m54s🐳 Windows image / Build and push (push) Successful in 5sBuild and test / windows-image (push) Successful in 5sBuild and test / Layer separation (push) Successful in 33sBuild and test / Android (aarch64) (push) Successful in 24m50sBuild and test / Windows (x86_64, cross) (push) Successful in 55m19sBuild and test / Publish the release (push) Successful in 1m20sreleased this
2026-10-04 06:49:54 +00:00 | 42 commits to master since this releasePhotographs keep the style they were made with: raws open with the edit they already carry, render through a tone measured against the photographer's own earlier exports, and gain an AI denoise. Camera profiles now follow the library to every device.
Photographs open with the edit they already carry. A DNG holds the develop settings it was given before it came to DarkRoom — per-colour saturation, hue and luminance, highlights, blacks, exposure, vibrance and the rest. A photograph DarkRoom has no edit of now opens with that edit translated, as one undoable step named "Earlier Edit", so a library keeps its look. From there it is an ordinary edit, saved with the photograph; Undo shows the photograph without it. Export does the same for a photograph never opened. It is applied only when DarkRoom is sure there is no edit of its own — offline, or with the server unreachable, nothing is applied, so a real edit that failed to arrive is never written over.
A new default tone for raws, measured against the library's own exports. Raws now render through the DNG reference curve — a camera profile's own tone curve, or the DNG specification's default where it has none — at contrast 1.5. On held-out photographs the difference from the library's earlier exports fell to about an eighth of what 0.20.0's tone gave. The previous curve stays one click away under Tone Mapping → Curve → Sigmoid. Every raw looks different from 0.20.0; previews made before refresh when the photograph is rendered again.
Baseline exposure. A DNG's BaselineExposure (+0.25 EV on many cameras) is now applied, and a camera profile copied from a DNG carries it, so the same camera's CR2s land at the same brightness.
Vibrance delivers what its value says. It measured saturation on linear values and halved its effect on every warm colour, so it gave about a third of its nominal strength. It now judges saturation as the eye sees it, protects skin hues specifically, and is scaled against measured exports. Edits that use vibrance, and the Vivid presets, are stronger than before.
AI Denoise. Bayer raws offer an AI Denoise switch in develop: a learned demosaic and denoise that runs in the background while the ordinary render shows, with a Keep grain control, and is used when exporting. The model ships in the Arch package, the APK and the Windows installer.
Camera profiles sync. A profile saved with "Use this profile for every " now travels with the library, so the tablet and the desktop render that camera's raws the same.
The DNG reference curve can also be chosen per photograph, and a profile's own tone curve is used when it has one.
Grid thumbnails offline. A zoomed grid no longer goes blank offline where the small thumbnail was already stored — it stands in while the larger one is fetched. And reading dates stops at the first sign the server is unreachable, with the offline banner, rather than waiting out every image.
Inference is safer. A hardware provider that crashed the app during start-up twice is not tried again until the device or the runtime changes. ONNX Runtime's own log goes into the app's log.
macOS groundwork. A CoreML rung for inference, debug-level logs in ~/Library/Logs, and a container that links the inference engine for Apple silicon. There is no macOS build in this release.
Update tablet and desktop together: the catalog's schema is unchanged, but the two versions render the same raw differently.
The APK, the desktop binary, the Windows installer and SHA256SUMS are built by CI from this tag's commit.
Downloads