Skip to content

Releases: EthanChas/EFAS-Negative-Inversion-Software

EFAS Negative Inversion Software v0.9.0

Choose a tag to compare

@EthanChas EthanChas released this 17 Oct 17:00

What's new in 0.9.0

  • Graphics card rendering. The heavy per-pixel work (the OKLCH colour modules, shadows / highlights, saturation, the tone table and the vignette) runs on your graphics card through Vulkan, as one compute pass. On a 30 MP photo the colour work takes 0.17 s instead of 53 s. Settings > Graphics card turns it off and sets a limit (10-100%) on the share of the card's time it may use. If there is no Vulkan, or anything goes wrong, EFAS carries on on the processor with the same result to within one level.
  • A 16-bit scan stays 16-bit. Shadows / highlights, saturation, the camera matrix, chroma denoise, local contrast, the colour modules and the tone table now work on the 16-bit picture and round to 8 bits once, before sharpening. The gaps a negative's narrow range used to show in the histogram after a strong edit are gone, and a 16-bit TIFF export keeps its 16 bits unless sharpening, edge colour, a vignette, a border or a watermark is on.
  • Each scan is read with the curve it was made with. Convert > Conversion > Encoding: Automatic (BT.709 for a RAW file EFAS decodes, sRGB for anything else), sRGB, BT.709 or Linear. The Modern conversion used to read every file as sRGB, which overstated the density of a negative's densest parts. Photos you edited before this version keep sRGB, so their pictures do not change; Automatic moves one over. Dust, scratch and heal repairs are now made on the 16-bit scan itself, and thumbnails of photos you have not opened use the Modern conversion, so a tile matches the photo.
  • Hotstack folders and tethered shooting. Right-click a folder in a Library list and choose Mark as Hotstack: it turns red and is watched, and each photo that lands in it (from Canon's EOS Utility, say) is shown as it arrives, optionally in the editor. Finish Session files the session's photos into a dated folder, with their edits, ratings, tags and sidecars; Retake (under the flame button) makes the next photo take the place of the one being retaken, and sets the old one aside.
  • Folder tools in the Library. Right-click any folder, in the editor or the Workbench: New Folder, Rename Folder, Move Folder to... (or drag it onto another), Delete Folder (to the Recycle Bin, after a confirmation that shows what is inside) and Remove from Library, now for any folder, with Bring Back Removed Folders. Photos keep their edits, ratings, tags, versions and thumbnails when their folder is renamed or moved. Move to Folder... moves selected photos, with their sidecars, into another folder and never overwrites a name that is taken.
  • Classroom. A new view with 105 guides, in the order a beginner needs them: photography basics, how film works, scanning, getting around EFAS, an in-depth guide to every tool, whole-roll work and worked examples. It has search, an outline of the page, links between guides, and Show me, which takes you to the tool a guide is about.
  • Slideshow. Plays the Workbench's photos, the selected ones or the open folder, with their saved edits, with a cut or a crossfade, captions, music (three pieces made inside EFAS, or your own .wav / .mp3) and Export video to MP4.
  • Edge Bleed and Edge Color. Edge Bleed (Negative tab) fills the holder and sprocket area, repairs bleed, dodges the edges and masks the border. Edge Color (Color tab) adds a tint, warmth and light that grow toward the picture's edges, with an Auto match. Flat Field now has three methods: EFAS, NegPy and Improved.
  • Colour and tone. Per-channel tone curves with point pickers; a Color Mixer in OKLCH with vibrance and hue / saturation / lightness for eight colour ranges; Color Toning for shadows, midtones and highlights; a Lab Look module (Fade, Glow, colour balance by tone, and Frontier / Noritsu / Pakon / Crystal scanner stand-ins). docs/how-modules-stack.md says the order the modules apply in.
  • Presets. A search box, and folders you can make, nest, move, drag, remove and sort. Built-in Film Stocks (DarkSlide's 78 film profiles, MIT, credited) and Scanners (DarkSlide) join the original scanner set.
  • Smaller things. A module search box above the modules; Start over; clipped-share arrows on the histogram that mark those tones on the picture; an Errors filter in the Workbench; folder icons in the Library lists.

The Windows build is attached. On Linux and macOS, run from source (see the README).

EFAS Negative Inversion Software v0.8.0

Choose a tag to compare

@EthanChas EthanChas released this 15 Oct 21:33

What's new in 0.8.0

  • Modern conversion (the default). Negative tab > Conversion > Method now offers Modern (film & paper) and Original (stretch). Modern treats the film, the scene and the paper separately: it takes out the dyes' crosstalk, puts back part of the film's toe and shoulder, balances the three channels, and prints through a paper curve with a toe and a shoulder, so highlights roll off instead of clipping. Controls: Film, Crosstalk, Film curve, Grade, Print density, Paper toe, Paper shoulder, and Red / Green / Blue grade for colour crossover. A shadow-reach rule keeps flat negatives from printing grey.
  • Your older photos keep their look. Photos edited before this version stay on Original; new photos and photos you only opened get Modern. The choice is saved per photo and carried in presets.
  • Film crosstalk profiles. Sixteen film profiles (Kodak Portra, Ektar, Gold, Ultra Max, Aerocolor, VISION3; Fujicolor 200, 400, C200, Natura 1600, Pro 400H, Superia X-TRA 400; Harman Phoenix II) from NegPy's profile gallery, bundled unchanged under the GPL-3.0, plus your own .toml profiles from the data folder's crosstalk folder.
  • Panel icons. Modern line icons beside the panel names and on the tool rail, loaded from SVG files in assets/icon (Lucide, ISC licence) and recoloured to the theme. Headers with no collapse arrow keep their icon clear of the module's colour bar.
  • Preset folders start closed.
  • Measure conversions. tools/benchmark_conversion.py exposes a picture onto a modelled colour negative and scores each conversion against the original.
  • See docs/film-and-paper-conversion.md for how Modern works and how far to trust it.

The Windows build is attached. On Linux and macOS, run from source (see the README).

EFAS Negative Inversion Software v0.7.1

Choose a tag to compare

@EthanChas EthanChas released this 15 Oct 18:50

What's new in 0.7.1

  • Linear camera RGB RAW decode (optional). Settings > RAW decoding > "Invert negatives before the camera's colour matrix". RAW files open in the camera's own colour channels, the negative is inverted there, and the camera's colour matrix is applied to the finished positive in linear light. Off by default. While it is on, a 16-bit TIFF export of a RAW photo is written at 8 bits.
  • Film base for the whole roll. Negative tab > Find Film Base for the Whole Roll reads the clear border of several frames into one film base. Nothing changes until you confirm.
  • Linux and macOS fixes. Plugin reloads always use the edited source, plugin file errors give a readable message, fonts that cannot measure text are skipped for watermarks, and the uninstall helper no longer waits on an exited process.
  • tools/compare_decode.py writes the standard and linear conversions of a RAW file side by side.

The Windows build is attached. On Linux and macOS, run from source (see the README).

v0.7.0

Choose a tag to compare

@EthanChas EthanChas released this 13 Oct 22:24

This software is heavily under development and may have issues and bugs. Back up your photos and use it at your own risk.

AI Generated DESCRIPTION: these release notes, the changelogs, the README and the guides are written by AI (Claude, by Anthropic), because it is more effective and better organised than writing them by hand. MINOR Code correction.

Windows build attached (single .exe, no install; Windows 10/11). It updates itself from Info > Version. Linux and macOS: run from source (see the README).

The big one: plugins

  • Plugins in Python and Lua (Settings > Plugins; a Plugins menu and a Plugins tab; View > Plugin Output for everything they print and every error found in them). A plugin can add menu items and modules (buttons, sliders, check boxes, drop-downs, text boxes), read the open photo and change its edit the way the sliders do, measure the picture, apply presets, add tags and react to events. Every plugin starts switched off. Lua plugins run in a sandbox (no files, no programs, time-limited); Python plugins run with the same access as EFAS itself, so only switch on Python plugins you trust. Five working examples install from Settings > Plugins, and New plugin... makes an empty one. Full documentation for plugin authors is in docs/plugins.

New

  • Print Response (WB Correction tab): Snap, Toe and Shoulder (with a width for each roll-off) shape the picture's response curve the way a print's characteristic curve is shaped, with a small graph.
  • Preset folders and built-in presets. Names with slashes (B&W/Number 1) form a tree in the Presets list and the Film Profiles list. Two buttons switch the Presets list between My Presets and Built-in Presets. The built-in set has Lab Scanners (Frontier 100, Crystal 100, Pakon, Noritsu) and Film Stocks (Cinestill, Fuji Superia, Kodak Gold, Portra, Portra Airy): approximations of their tone, saturation and warmth, not measurements. Hover a preset to preview it on the picture first (Settings > General turns that off). A Clear button takes a look off the photo. See docs/presets.md.
  • Error marking (Negative tab, and View > Error Marks, or Shift+E): drag boxes round faults in a scan, each kind with its own colour and tag (scratches red, watermarks yellow, transport lines dark navy, Newton rings, light leaks, dust and hairs, fingerprints, unknown). Right-click a mark to change or remove it. Marks are notes kept with the photo and follow the crop and rotation; they are never exported.
  • Four-Corner Straighten (Crop & Rotate): click the four corners of the photo, in any order; the Angle and Keystone are set to make them a true rectangle and the picture is cropped to it, in one undoable step.
  • On/off lights on the editing modules: green is on, red is off; click one to make the picture without that module while keeping its settings. A square in the Classic theme, a circle with a grey border in the others.
  • Histogram: stays in view while the sidebar scrolls; Log scale and Split (red, green and blue in separate strips) buttons; the Color graph is greyed out for a black-and-white negative.
  • Crop Roll can make every crop the same size (on by default), each centred where its own border was found.
  • Scanning light (Negative > Color trim): a starting colour trim from the colour temperature of the light the negative was photographed on.
  • Find (Ctrl+K) also reaches presets, module presets and smart collections.
  • Dividers inside the modules between their sections, for readability.
  • Modern is the default theme for a fresh install (Settings > Themes switches back to Default or any other).
  • From v0.6.1: White / Black point droppers; Film Colour Reference (Lomography gallery); Library sorting; "close a tab's modules when you switch tabs" (on by default).

Improved

  • The flat-field map ignores specks of dust on the light-source reference.

Fixed

  • Settings > Themes let you select several themes at once.
  • The Film Colour Reference could not be opened again after closing it with the X.
  • The watermark credit line and the metadata "Software" tag now say "EFAS Negative Inversion Software".

Notes

  • If you had chosen a theme before, EFAS keeps your choice; only a fresh install (or one that never picked a theme) starts in Modern.
  • Updating from v0.6.0 works from Info > Version.

v0.6.0

Choose a tag to compare

@EthanChas EthanChas released this 13 Oct 14:26

This software is heavily under development and may have issues and bugs. Back up your photos and use it at your own risk.

AI Generated DESCRIPTION: these release notes, the changelogs, the README and the guides are written by AI (Claude, by Anthropic), because it is more effective and better organised than writing them by hand. MINOR Code correction.

Windows build attached (single .exe, no install; Windows 10/11). It updates itself from Info > Version. Linux and macOS: run from source (see the README).

Themes

  • Settings > Themes has six looks: Default (the original Windows 98 style), Modern (flat, rounded, opaque Windows 11 style, roomier and easier to read), Midnight (true black), Graphite (neutral grey), Darkroom (red-only safelight colours for working in a dark room) and High contrast (black, white and yellow with larger text).
  • Pick a look, an accent colour (Modern, Midnight and Graphite) and a text size (85-130%), then press Apply theme. Restyling takes a few seconds, so it happens only when you ask.
  • Modern has smoother sliders: 1000 positions instead of 100, a thin groove with the covered part in the accent colour, and a click on the groove puts the handle right there.
  • Your own themes as CSS files: import one (colours, sizes, fonts in a :root { --bg-app: #202020; } block, plus optional style sheet rules), export any theme as a starting point, and remove imported ones. A file is checked first and mistakes are reported in plain words. See docs/themes.md.

New

  • Permanent flat field: one flat field for your scanner's light that applies to every photo, in every folder, in exports and across restarts (Flat Field module). A folder with a flat field of its own uses that one instead, so the two never stack.
  • Always work in HQ (Settings > General): turns HQ on for every photo you open. Off by default.
  • Tagging: a Tagging panel on the left of the editor and the Workbench, modelled on darktable's; nested tags (People/Family), a quick tag bar (press T), a dropdown of every tag you have made, and search that matches a nested tag by any level. The panel starts closed.
  • Calendar pickers for the date fields in metadata.
  • History is kept between sessions: close and reopen the app and the history list is back, in order.
  • Delete a single auto dust detection (show the mask, delete just the wrong one) and a Reset Deleted button.
  • Watermark overhaul: your own SVG and PNG logos, many more fonts, independent camera and lens text, drag and resize on the picture. The film carrier look is gone.
  • Compact histogram read-out: exposure, contrast, range, clipping, colour and saturation in a few short rows, with the detail in tooltips, plus the negative's grading in one line.
  • Find (Ctrl+K) reaches any module, slider, button or menu action by name; Undo for whole-roll actions; Check Flat Field; Even Out Roll; safer batch export with output sharpening and 16-bit TIFF for tone-only edits.
  • File > Uninstall EFAS removes the program and, if you tick it, all its data, after a clear warning that it cannot be undone.
  • The window, taskbar and exe now carry the EFAS logo and the name EFAS Negative Inversion Software.

Improved

  • Shadows & Highlights no longer washes the whole picture out.
  • Auto Crop and Crop Roll update the thumbnails straight away.
  • Flat field keeps a 16-bit scan 16-bit. It used to drop the picture to 8 bits first, which banded a stretched negative; it now keeps every level, and the flat and linear exports apply it too.

Fixed

  • Edited thumbnails (crops, rotations) went missing after the rename because the cache folder changed. They are now moved from every old cache folder into the data folder. Your edits themselves were never lost.
  • The uninstall helper could hang or flash console windows; it is now reliable.

Notes

  • Your data moves to ~/.EFAS (your user folder) with clear file names. The first time you start v0.6.0 it copies everything from the old folder, checks the copy, and only then removes the old one. Back up first if you like; nothing is deleted unless the check passes.
  • The Modern themes use Segoe UI Variable, which Windows 11 has; on Windows 10 it falls back to Segoe UI.
  • Updating from v0.5.2 works from Info > Version.

v0.5.2

Choose a tag to compare

@EthanChas EthanChas released this 11 Oct 20:33

This software is heavily under development and may have issues and bugs. Back up your photos and use it at your own risk.

AI Generated DESCRIPTION: these release notes, the changelogs, the README and the guides are written by AI (Claude, by Anthropic), because it is more effective and better organised than writing them by hand. MINOR Code correction.

Windows build attached (single .exe, no install; Windows 10/11). It updates itself from Info > Version. Linux and macOS: run from source (see the README); the test suite now passes on Windows, Linux and macOS in GitHub Actions.

Fixed

  • Crop Roll did not find the border on real scans. It looked for the border in the raw negative, where the border and the picture can look alike. It now looks in the same inverted picture the editor's Auto Crop uses. Photos with no clear border are left alone, as before.
  • Workbench side panels were slightly cut off at the right edge. The column now sizes itself to fit its content.
  • Fit quality no longer flips between runs on perfect (noise-free) data.
  • Settings saved twice in quick succession could read back the old values.
  • Source installs failed without piexif and tifffile; both are now declared as requirements.

New

  • Crop Roll shows a progress bar ("12 of 88") while it runs, refreshes the filmstrip and Workbench thumbnails to show the crops, and ends with a message saying how many photos were cropped, how many already had a crop and how many had no clear border.

Notes

  • Updating from v0.5.1 works from Info > Version.

v0.5.1

Choose a tag to compare

@EthanChas EthanChas released this 11 Oct 19:43

This software is heavily under development and may have issues and bugs. Back up your photos and use it at your own risk.

AI-generated text: these release notes, the changelogs, the README and the guides are written by AI (Claude, by Anthropic), because it is more effective and better organised than writing them by hand. The code is developed with AI assistance too.

Windows build attached (single .exe, no install; Windows 10/11). It updates itself from Info > Version. Linux and macOS: run from source (see the README).

New

  • Crop Roll and Reset Crops buttons beside the photo count above the filmstrip. Crop Roll auto-crops every photo of the roll (and straightens slightly tilted ones); photos that already have a crop are left alone unless you ask. Reset Crops removes the crop from every photo that has one and keeps every other edit. Both ask first, and the photo open in the editor can be undone with Ctrl+Z.
  • Workbench search suggestions: type rat for rating:, rating:> for rating:>=1 to >=4, camera: for the cameras in your library, or a plain word like canon for values that start with it, each with a short description and photo count.
  • Library folder list in the Workbench, shared with the editor's Library. Click a folder to show only its photos and subfolders; the reset button (loop icon) in its header shows every photo again. Settings > General can hide it.
  • Open modules on hover (Settings > General): hovering a module opens it and leaving closes it. Click a header to pin it open. Off by default.
  • Colour-code modules (Settings > General): each module gets its own header gradient. The colours are fixed, not random, and you can pick another colour for a module by right-clicking its header. Off by default.

Notes

  • Existing projects and presets are unchanged; the new settings are off by default (except the Workbench Library list, which is on).
  • Updating from v0.5.0 works from Info > Version.

v0.5.0

Choose a tag to compare

@EthanChas EthanChas released this 11 Oct 18:24

This software is heavily under development and may have issues and bugs. Back up your photos and use it at your own risk.

Windows build attached (single .exe, no install; Windows 10/11). It updates itself from Info > Version. Linux and macOS: run from source (see the README); the code is written to be portable but has not been tried on a real Linux or Mac machine yet.

New: scanning

  • Scan quality verdict in the Negative tab (good, clipped, underexposed or limited by film density), in plain words.
  • Find Film Base Automatically: finds the clear film border and shows it on the scan; nothing changes until you confirm.
  • Merge Scans (File menu): exposure brackets, or separate red, green and blue lit scans, merged into one measured 16-bit linear scan. Small camera movements are corrected.
  • Check Roll Consistency: finds frames scanned with a different light level or colour from the rest of the roll.
  • Keystone correction with Auto Keystone, in Crop & Rotate.
  • Optional colour target fit (Camera Set-ups) that measures a set-up's colour accuracy; it does not change conversions.

New: exporting and sharing

  • Flat, linear-light and density 16-bit TIFF outputs for grading in other software, with an optional conversion record.
  • Shareable film profiles (.efasprofile): checked for damage and sense on import, and always added as "supplied by someone else".
  • Command line: python -m photoeditor convert | presets | info | check-roll | merge (from a source install).

New: library

  • Remove from Workbench and Delete from Disk (to the Recycle Bin, behind a very explicit confirmation), from the Workbench, the filmstrip and the File menu. Removed Photos brings photos back.
  • Virtual copies (Versions panel): several edits of one scan, with an x2 badge in the Workbench and optional export.
  • Smart collections: saved Workbench filters.
  • Find Duplicates: identical files and look-alikes, with a suggested copy to keep.
  • Info > Report a Problem: a redacted report you can read, save and attach to a GitHub issue. Nothing is sent automatically.

Notes

  • Existing projects and presets are unchanged; the new features are opt-in, and the standard conversion is byte-for-byte what it was.
  • The guide is in docs/scanning-and-export-guide.md.

v0.4.0

Choose a tag to compare

@EthanChas EthanChas released this 07 Oct 15:25

This software is heavily under development and may have issues and bugs.

Windows build attached (single .exe, no install; Windows 10/11). Linux and macOS are work in progress.

New

  • Info > Version and Info > Check for Updates...: shows the installed version and checks the GitHub releases page for a newer one.
  • Update notice on start: if a newer version exists the app asks whether you would like to update. Updating downloads the new .exe, verifies its size and SHA-256 checksum, replaces the running program and restarts. Can be turned off under Settings > General.
  • Open source: now released under the GNU GPL v3.0 (free to use, edit and redistribute; redistributions stay open source).
  • README: privacy statement (offline only, no data sent out), credits, requirements and build steps.

Notes

  • Anyone on v0.3.0 needs to download this version by hand once; it is the first version with the updater.
  • The only network request the app makes is to the GitHub releases page, to check for updates.

v0.3.0

Choose a tag to compare

@EthanChas EthanChas released this 07 Oct 14:58

Third tagged version, now named EFAS Negative Inversion Software. Windows build attached (single .exe, no install; Windows 10/11). Linux and macOS are work in progress.

New

  • Data persistence fix: all data now lives in one fixed folder, ~/.photoeditor, that every way of launching the app sees. Older copies in %APPDATA% (including the private copy used by packaged apps) are merged in on start. Settings moved from the registry to a file in that folder.
  • Backup health check: the app keeps a "best" backup, and offers to restore it at start if the live database looks far smaller than it should.
  • Saved layout: the sidebar widths you set are restored on the next start.
  • Export starts on Original size by default.
  • Tags, snapshots, 16-bit TIFF/PNG input, split view, straighten tool, Finishing (vignette, borders, film-carrier frame), test strip and ring-around proofs, curved scratch tool.
  • A symbols folder with every icon and glyph used by the app.
  • Detailed README with credits, requirements and build steps; code comments and docstrings trimmed.

Notes

  • Requires Python 3.10+ when run from source (tested on 3.13).
  • Parts of the app are adapted from NegPy (GPL-3.0).