Skip to content

Latest commit

 

History

100 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Luma

Luma is a native macOS photo-editing prototype built with SwiftUI and Core Image.

The goal is a fast local editor for browsing photos, making common non-destructive adjustments, applying simple portrait retouching, and exporting edited JPEG, HEIC, PNG, or TIFF files without sending images to a server.

What Works

Library

  • Import local photos and folders.
  • Drag photos or folders into the workspace to import them.
  • Click the empty workspace to open the system file picker.
  • Restore the local catalog across launches.
  • Load photo metadata, histograms, and thumbnails in the background so importing and restoring large libraries stays responsive.
  • Browse thumbnails and preview the selected photo.
  • Adjust the thumbnail grid size from the library sidebar.
  • Keep thumbnail cells stable while showing rating and flag state.
  • Move to the previous or next visible photo from the toolbar or keyboard.
  • Jump to the first or last visible photo from the Photo menu.
  • Search by filename, camera, lens, format, and common exposure metadata.
  • Sort by file name, capture date, rating, flag, color label, file size, format, camera, lens, or import date.
  • Reverse the current library sort order.
  • Filter by picked, rejected, rated, unrated, unflagged, labeled, unlabeled, individual color labels, recent imports, RAW, non-RAW, edited, unedited, and minimum star rating.
  • Clear active library filters in one action.
  • Hide rejected photos during everyday browsing.
  • Keep the preview selection aligned with the visible library filter.
  • Clear in-memory image caches when needed.
  • Rate photos from zero to five stars.
  • Use number keys 0-5 to clear or set the selected photo rating.
  • Mark photos as picked or rejected.
  • Add color labels and use number keys 6-9 for red, yellow, green, and blue labels.
  • Clear rating, flag, and color label from the selected photo in one action.
  • Sync the selected rating and color label to all picked photos.
  • Remove photos from the local catalog without deleting the original file.
  • Remove all rejected photos from the local catalog without deleting original files.
  • Reveal the selected original file in Finder.
  • Copy the selected original file path to the clipboard.
  • Create virtual copies for alternate edits without duplicating the original image file.

Editing

  • Non-destructive adjustment model.
  • Before and after comparison.
  • Side-by-side original and edited comparison.
  • Luminance and RGB histogram display.
  • Fit, 100 percent, zoom in, and zoom out controls in the preview.
  • Highlight clipped shadows and highlights in the preview.
  • Undo and redo for adjustment changes.
  • Collapse advanced adjustment panel sections.
  • In-memory preview caching for repeated renders.
  • Keep the current preview on screen while edits re-render, showing a small progress indicator instead of a full-screen spinner.
  • In-memory thumbnail caching for smoother library browsing.
  • Rotate left and right.
  • Flip photos horizontally or vertically.
  • Straighten.
  • Vertical and horizontal perspective transform controls.
  • Crop to common aspect ratios, including square, portrait, classic photo, and wide formats.
  • Adjust the crop framing position after choosing a fixed aspect ratio.
  • Reset crop framing, straighten, and rotation without changing tone edits.
  • Apply built-in presets for vivid color, landscapes, portraits, black and white, warm film, and matte film.
  • Apply one-click Auto Enhance.
  • Apply a one-click black and white look from the panel or Photo menu.
  • Copy and paste adjustments between photos.
  • Sync the current adjustments to all picked photos.
  • Reset the selected photo adjustments from the Photo menu or keyboard.
  • Reset tone adjustments without changing crop, local, or retouching edits.
  • Apply a built-in preset to all picked photos.
  • Reset adjustments on all picked photos.
  • Inspect a luminance histogram.

Lens Corrections

  • Lens distortion correction for mild barrel or pincushion adjustment.
  • Defringe control for reducing color fringing on high-contrast edges.
  • Lens vignette correction for brightening dark corners.
  • Reset lens corrections without changing crop, tone, local, or retouching edits.

Light And Color

  • Exposure.
  • Highlights.
  • Shadows.
  • Whites.
  • Blacks.
  • Contrast.
  • Saturation.
  • Hue.
  • Warmth.
  • Tint.
  • Vibrance.
  • Fade for matte black-point lift.
  • Texture.
  • Clarity.
  • Dehaze.
  • Noise reduction.
  • Sharpness.
  • Vignette with radius control.
  • Film grain with amount, size, and roughness controls.
  • Tone curve controls for shadows, darks, lights, and highlights.
  • Color grading for shadows, midtones, and highlights with balance control.
  • Radial local exposure, saturation, and warmth with center, radius, and feather controls.
  • Linear gradient exposure, saturation, and warmth with start and end controls.
  • Invert radial and linear local masks.
  • Flip linear gradient direction without changing the exposure amount.
  • Reset radial and linear local adjustments independently.
  • Multi-point spot healing with source offset, radius, feather, and strength controls.
  • Add, select, delete, and reset spot-heal points.
  • Click the preview image to place a selected spot-heal point directly on the photo.
  • Reset local adjustments without changing global edits.
  • HSL Color Mixer controls for red, orange, yellow, green, aqua, blue, purple, and magenta.
  • Reset color mixer channels without changing other edits.

Portrait Retouching

  • One-click Auto Beauty.
  • Skin smoothing.
  • Wrinkle softening.
  • Blemish fading.
  • Whitening.
  • Rosy tone.
  • Brightening.
  • Skin warmth.
  • Glow.
  • Softening.
  • Detail.
  • Eye enlargement using face detection when eye landmarks are available.
  • Face slimming using face detection.
  • Body slimming with a simple center-weighted distortion.
  • Reset beauty adjustments without changing other edits.

Metadata And Export

  • View basic file information.
  • Inspect common EXIF fields such as camera, lens, exposure, focal length, and capture time.
  • Identify system-readable RAW files with a RAW badge and filter RAW or non-RAW images.
  • Render and export in a color-managed sRGB space, so exported files are correctly tagged and match the on-screen preview.
  • Export the selected edited photo as JPEG, HEIC, PNG, or TIFF.
  • Apply export presets for full-size, large web, social, and thumbnail output.
  • Choose JPEG or HEIC quality.
  • Resize exports by long edge.
  • Apply output sharpening after export resizing.
  • Add a text watermark during export.
  • Choose whether exported filenames get a custom suffix.
  • Reset export settings to the default JPEG output.
  • Batch export all picked photos as JPEG, HEIC, PNG, or TIFF.

Run

Open the package in Xcode:

open Package.swift

Or build it from the command line:

swift build

Run tests from the command line:

swift test

Current Limits

  • RAW support depends on what macOS ImageIO and Core Image can decode on the current machine.
  • RAW files are decoded through the Core Image RAW pipeline (CIRAWFilter), which handles demosaicing. Luma does not yet expose camera-profile, lens-correction, or wide-gamut controls, and the working and output space is sRGB rather than a full ICC color-management pipeline.
  • Portrait retouching is simple Core Image based processing. It is useful for quick edits, but it is not yet a semantic face/body retouching engine.
  • Healing and masking are still early, and brush-based retouching is not complete yet.
  • Preview and thumbnail caching are in memory only. Very large libraries and large RAW files still need disk-backed caching and more scheduling work.

Next Work

  • More local adjustment mask types.
  • Brush and more gradient tools.
  • Brush-based healing and spot removal.
  • Disk-backed preview and thumbnail cache for very large libraries.
  • More complete RAW and color pipeline, including camera profiles, lens correction, and wide-gamut output.

About

Native macOS photo editor built with SwiftUI and Core Image, with local non-destructive edits, portrait retouch, and multi-format export

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages