Skip to content

Releases: vinioliveiras/darkmoon

v1.8.0

Choose a tag to compare

@vinioliveiras vinioliveiras released this 02 Sep 20:33

Highlights

  • Color rendering fixed on GPU — Saturation, Vibrance, Dehaze, Highlights and Blacks were silently rendering noticeably stronger/weaker on the GPU path (now the default renderer) than on CPU, because their shaders had drifted from the real calibration values over several tuning rounds. All five now match CPU output closely.
  • Guided straighten — new "Guided" tool in Crop & Transform: drag a line along an edge that should be level or plumb, release to auto-straighten to it.
  • Rotate anchor — the Crop overlay now has a draggable rotation handle, not just the Straighten slider.
  • Dynamic Full Resolution is on by default now, and arms itself a few seconds after opening a photo instead of waiting for your first edit — and no longer silently reverts an active Colorize/AI Enhance/Cloud AI result once it kicks in.
  • darkmoon Color profiles: per-hue correction now renders on GPU too (previously silently forced a slower CPU-only path); Golden Hour and Teal & Orange removed, keeping Default/Vivid/Pastel/Noir; Contrast slider range extended and its Strength slider properly wired up (it used to have no effect at all).
  • Toggle switches and slider drags feel smoother — a few real causes of UI stutter during edits were found and fixed.
  • Old, orphaned preview-cache versions are cleaned up automatically now instead of accumulating on disk forever.

Full changelog: v1.7.1...v1.8.0

v1.7.1

Choose a tag to compare

@vinioliveiras vinioliveiras released this 01 Sep 15:40

Fix

Slider track click was fully disabled in v1.7.0 while a double-click-to-reset bug was investigated. Re-enabled just the double-click-to-reset — a single click on the track still does nothing (click-to-jump-to-position stays off); dragging and click-to-type-a-value are unaffected.

Full changelog

v1.7.0...v1.7.1

v1.7.0

Choose a tag to compare

@vinioliveiras vinioliveiras released this 01 Sep 15:19

Color Profile section (new)

A new Color Profile section — first in the edit panel, before White Balance — groups two controls that both describe "how much of darkmoon's color treatment applies":

  • Color Profile Strength (formerly "Amount") — how strongly the whole current edit renders, moved here from the toolbar.
  • Color Profile Contrast (formerly a Settings-only global value) — the fixed contrast curve every photo starts from. Now per-photo and per-preset instead of one value for the whole library, so different presets can carry their own.

Recalibration

Several sliders felt too strong or too weak at their default/authored values — recalibrated based on live testing against real photos and presets:

  • Amount / Color Profile Strength: the default (100%) now renders gentler by design (previously a 1:1 pass-through of the literal preset/slider values, which repeatedly proved too strong across several effects at once).
  • Exposure: 1.5x stronger per unit of drag.
  • Texture and Clarity: both meaningfully stronger.
  • Vibrance, Saturation, Dehaze, and the Color Mixer's Saturation/Luminance sliders: weakened after live-testing showed them overpowering real presets (e.g. crushing foliage detail, blowing out skin tones).

Changes

  • "Subfolder images" is now also available in Settings → General (previously sidebar-only).
  • Dialogs and modals now scale up from the center instead of sliding in from below.

Fixes

  • A double-click on a slider to reset it could spuriously commit the first click's jumped-to value to undo history before the reset landed. Track-click (click-to-jump and double-click-to-reset) is temporarily disabled while a proper fix is worked out — drag and click-to-type-a-value are unaffected.

Full changelog

v1.6.0...v1.7.0

v1.6.0

Choose a tag to compare

@vinioliveiras vinioliveiras released this 01 Sep 02:05

Colorization (new)

Restore color to black & white or faded photos with a dedicated Colorize toolbar button (item 37) — on-device (DDColor model), with an Intensity slider (0–100%) to dial back oversaturation. Works best on daytime/normal-lighting scenes; unusual/artificial lighting can produce a warm cast.

Fixes

  • TIFF files decoding as noise — a 16-bit-per-channel TIFF (common for camera TIFF exports) rendered as pure static. Common image decoding now correctly normalizes bit depth and channel count for any source (also fixes RGBA PNGs).
  • Blurry/blocky editing view and JPEG exports — the default editing preview resolution was too low for modern high-DPI displays, and exporting an already-compressed source (JPEG, etc.) was stacking an unnecessary extra lossy JPEG generation on top of the file's own compression. Preview resolution raised, and the redundant compression pass removed for non-RAW sources.
  • Colorize dialog slow to open / opening twice on a fast double-click — the GPU probe now runs after the dialog is already on screen, matching how the AI Denoise dialog already did it. The same double-open guard was added to both dialogs.
  • Reset not clearing Colorize/AI Enhance/Cloud AI — Reset now reverts the underlying processed image buffer too, not just the toggle state.
  • "RAW files only" leaving dead entries in Recent Files — a JPEG/PNG/etc. entry there stayed clickable but silently failed to open; it's now hidden while the filter is on, matching folder scans.

Changes

  • AI Denoise's Amount slider now defaults to 50% instead of 100%, matching every other Amount slider in the app.

Full changelog

v1.5.0...v1.6.0

v1.5.0

Choose a tag to compare

@vinioliveiras vinioliveiras released this 31 Aug 10:39

Linux support (new)

darkmoon now runs on Linux (x64), portable/no-install build — same feature set as Windows:

  • RAW decoding (LibRaw, built from source, verified against real camera files)
  • AI denoise / upscale (on-device ONNX models, CPU — no DirectML equivalent on Linux, so the GPU-accelerated denoise path from Windows falls back to CPU here)
  • Everything else: masking, curves, color grading, lens correction, GPU-shader preview rendering, export

Known gaps on this first Linux build:

  • Cloud AI denoise (Topaz/OpenAI/Gemini) works, but the saved API token doesn't persist between launches yet — Windows uses DPAPI for that, which has no Linux equivalent wired up yet.
  • No custom native splash screen (Windows' small rounded pre-load window) — Linux opens the standard window directly.
  • Requires common system libraries most desktop distros already have: libjpeg, zlib, liblcms2, libgomp, GTK3.

Extract the tarball anywhere and run bundle/darkmoon.

Full changelog

v1.4.1...v1.5.0

v1.4.1

Choose a tag to compare

@vinioliveiras vinioliveiras released this 30 Aug 18:34

Fixes

  • Loading-preview blur — the blurred placeholder shown while a photo's full preview is still decoding had a few rough edges, all fixed this release:
    • It no longer bleeds haze past the photo's own edges into the surrounding canvas.
    • It no longer distorts a portrait photo's aspect ratio (or a landscape one) to fill the viewport.
    • Its edge is now crisp instead of fading out like a vignette.
    • The blur itself is much softer — just enough to signal "not the real thing yet" instead of obscuring the photo.

Site

  • Added meta description and Open Graph/Twitter card tags, so the site shows up properly (title, description, preview image) when shared or indexed.
  • Updated the README and site screenshots to match the current UI.

Full changelog

v1.4.0...v1.4.1

v1.4.0

Choose a tag to compare

@vinioliveiras vinioliveiras released this 30 Aug 17:43

New mask types

  • Luminance — select by brightness (eyedropper + tolerance/feather), same workflow as Color Range.
  • Flow — a brush variant with a per-pass deposit rate, so repeated strokes build up coverage instead of painting at full strength in one pass.

(Ported from RapidRAW's mask set — Subject/Sky/Foreground/Depth AI masks are tracked as a follow-up.)

Visual refresh

A pass toward a calmer, Photomator-inspired dark palette:

  • Every panel section is now a rounded, bordered card instead of a flat list.
  • Dropdowns, dialogs, and the right-click/File menus share one consistent background tone.
  • Dialog corners, close buttons, and the Export button were all unified.
  • The whole gray palette got a subtle blue lean and several rounds of contrast tuning.

Animations (new Settings toggle)

Interface transitions are on by default — segmented-tab selection slides, panel sections highlight on hover, zoom eases between levels, folders expand smoothly, and the preview fades in after a committed edit (with a blurred placeholder while it's still decoding). Turn them all off in Settings > General > Interface animations if you'd rather have everything instant.

Fixes

  • Applied-preset marker could silently get lost when switching photos quickly right after applying a preset — a race condition in how the marker was persisted, not just a missing highlight. Fixed.
  • AI Denoise's loading message now says "Disabling…" instead of "Applying…" when you turn it off.
  • The site's landing page is now actually responsive (a missing viewport meta tag meant the old breakpoint never fired on real phones).

Full changelog

v1.3.0...v1.4.0

darkmoon v1.3.0

Choose a tag to compare

@vinioliveiras vinioliveiras released this 30 Aug 12:57

Raw-domain denoise, cloud AI denoise, and a rethought Amount slider.

Raw-domain denoise (PMRID)

New denoise pass that runs on the sensor's own Bayer data before demosaic, instead of on the already-processed sRGB image — closer to how Lightroom's own raw noise reduction works. Only available for standard Bayer-sensor RAW files (not X-Trans/Foveon), shown disabled with an explanation otherwise.

Cloud AI denoise

A new "Cloud AI" tab in the AI Denoise dialog lets you use your own API key with Topaz Labs (a real, non-generative denoise model), OpenAI, or Google Gemini (both generative — clearly flagged, since they can alter fine detail rather than just remove noise). Every result is cached, so re-opening or exporting the same photo never re-triggers a paid call. API keys are encrypted at rest with Windows' own DPAPI.

Custom on-device denoise model

Settings > Performance now lets you point the on-device Denoise pass at your own .onnx model file instead of the bundled one — a drop-in replacement, not a generic model loader. Falls back to the default automatically, with a clear notice, if the file doesn't load.

Amount slider rework

The Amount slider under the preset list is no longer tied to "just applied a preset" — it's now a persistent overall edit-strength dial that never rewrites the individual sliders. Push any slider further in either direction on top of the current Amount at any time.

Also

  • Denoise Amount now defaults to 50% instead of 100% — full-strength denoise tends to look over-smoothed on real photos.
  • The Real-ESRGAN Upscale toggle is removed for now (results weren't good enough, little real use).
  • Every app dialog (Settings, About, Export, AI Denoise, confirmations) now shares one dark, near-black background.
  • German added as a third language.

Download: darkmoon-v1.3.0-windows-x64-portable.zip — extract and run darkmoon.exe (Windows x64). Bundles the on-device AI models (NAFNet-SIDD, Real-ESRGAN, PMRID), so this release is a noticeably bigger download (~350MB) than previous ones.

darkmoon v1.2.2

Choose a tag to compare

@vinioliveiras vinioliveiras released this 29 Aug 18:05

Small perf/polish release on top of 1.2.1 — continues the export speed work.

Export performance

  • Fixed a correctness bug in the Highlights slider's new lookup-table optimization: pixels that had already blown past full white (after Exposure/Brightness/Whites) were being clamped into the wrong bucket instead of using the exact math — could under-recover genuinely blown highlights.
  • rgbToHsv/hsvToRgb (used by Color Mixer and Vibrance) no longer allocate a list per pixel — they were producing a fresh List<double> for every pixel touched by those adjustments, a real source of garbage-collector pressure on a full-resolution export.
  • The temporary per-export timing breakdown (visible in the export success popup since 1.2.1) is off again.

Interface

  • The loading bar's Cancel "X" no longer shows a boxed outline — it's back to a plain X on the compact status bar.

Download: darkmoon-v1.2.2-windows-x64-portable.zip — extract and run darkmoon.exe (Windows x64).

darkmoon v1.2.1

Choose a tag to compare

@vinioliveiras vinioliveiras released this 28 Aug 19:18

Polish and speed release on top of 1.2.0 — much faster export, presets that drop straight into Lightroom, and smoother UI.

Export

  • Big speed-up on full-resolution export: the Exposure+Dehaze pass and the float→8-bit conversion now run across CPU cores like the rest of the pipeline, and the sRGB↔linear conversions, Contrast and tone falloff are table-driven. Roughly 4× faster than v1.2.0 on a 40 MP file; the resample step is also skipped entirely for near-full-size exports.
  • Rapid export is on by default now.
  • The export result popup has a Copy button and shows a per-stage timing breakdown.

Presets

  • Exported .xmp presets are now written the way Lightroom and Camera Raw expect: XMP packet wrapper, capability flags, a recent version tag, a stable UUID (re-importing updates in place instead of making a duplicate) and a "darkmoon" group. They import cleanly into Lightroom Classic and other software.

Interface

  • Dialogs (Settings, About, Export, AI Denoise, confirmations) and dropdown menus open and close with a quick OS-style fade/scale instead of snapping.
  • Color Mixer HUE sliders show each channel's real colour on the track instead of a shared grey gradient.
  • Opening Crop & Transform resets zoom to Fit and turns Before/After off.

Changes

  • The full-quality editing preview is now off by default (toggle in Settings); default resolution lowered to 30%.
  • Removed the Adobe Color palette import feature.

Download: darkmoon-v1.2.1-windows-x64-portable.zip — extract and run darkmoon.exe (Windows x64).