Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,4 @@ test_image*

**/*fail*.txt
**/*final*.txt
green.txt
15 changes: 15 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,21 @@

Todo: More testing Linux / Mac. Create Windows .exe. Write better documentation / help. Add splash screen / icon. Fix raw image support.

## 1.6.2 (2026-03-28)

- Added a reusable soft-mask subsystem for local adjustments (mask model, mask engine, masked operations).
- Added a Background Darkening tool (K key) as the first consumer of the mask system.
- Paint rough background hints (left-click) and subject protection (right-click).
- Strokes act as smart hints combined with image analysis, not hard mattes.
- Modes: Assisted, Paint Only, Strong Subject Protection, Border-Connected Auto.
- Controls: darken amount, edge protection, subject protection, feather, dark range, neutrality, expand/contract, auto from edges.
- Configurable mask overlay (blue default, selectable colours, toggle visibility).
- Darkening uses pedestal subtraction + multiplicative darkening for natural results.
- Mask data stored in normalised coordinates, survives rotate/straighten/crop changes.
- Added "Darken Background (K)" button in the Image Editor effects section.
- J and K keys no longer navigate to next/previous image. Use arrow keys instead.
- K key now opens the Background Darkening tool (works from loupe view or inside the editor).

## 1.6.1 (2026-03-13)

- Added a slim custom title bar with hover-revealed menus.
Expand Down
17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# FastStack

# Version 1.6.1 - March 13, 2026
# Version 1.6.2 - March 28, 2026
# By Alan Rockefeller

Ultra-fast, caching JPG viewer designed for culling and selecting RAW or JPG files for focus stacking and website upload.
Expand All @@ -16,7 +16,9 @@ This tool is optimized for speed, using `libjpeg-turbo` for decoding, aggressive
- **Helicon Focus Integration:** Launch Helicon Focus with your selected RAW files with a single keypress (`Enter`).
- **Instant Navigation:** Sub-10ms next/previous image switching, high performance decoding via `PyTurboJPEG`.
- **Image Editor:** Built-in editor with exposure, contrast, white balance, sharpness, and more (E key)
- **Quick Auto White Balance:** Press A to apply auto white balance and save automatically with undo support (Ctrl+Z). For better white balance, load the raw into Photoshop with the P key.- **Photoshop Integration:** Edit current image in Photoshop (P key) - always uses RAW files when available.
- **Background Darkening:** Mask-based background darkening tool (K key) with smart edge detection, subject protection, and multiple modes. Paint rough background hints and the tool refines them into natural-looking dark backgrounds.
- **Quick Auto White Balance:** Press A to apply auto white balance and save automatically with undo support (Ctrl+Z). For better white balance, load the raw into Photoshop with the P key.
- **Photoshop / Gimp Integration:** Edit current image in Photoshop or Gimp (P key) - always uses RAW files when available.
Comment on lines +19 to +21
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

README now contradicts its own shortcut list.

These bullets repurpose K and broaden P, but the Keyboard Shortcuts section later in the file still documents J / K navigation and Photoshop-only P. Please update that section in the same patch so users don't get two different key maps.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 19 - 21, The README's feature bullets redefine
shortcuts (K for mask darkening, A for auto white balance, P for Photoshop/Gimp
with RAW) but the Keyboard Shortcuts section still lists J/K for navigation and
P as Photoshop-only; update the Keyboard Shortcuts section to match the new
mappings: remove or reassign K from "J / K navigation" to "K = Mask-based
background darkening (smart edge detection, subject protection, multiple
modes)", add "A = Quick Auto White Balance (applies and saves, undo support)",
and change "P" to "Edit current image in Photoshop or Gimp (uses RAW when
available)"; ensure any mention of J remains accurate (e.g., J for previous
image) so there is no contradiction.

- **Clipboard Support:** Copy image path to clipboard (Ctrl+C)
- **Image Filtering:** Filter images by filename
- **Drag & Drop:** Drag images to external applications. Press { and } to batch files to drag & drop multiple images.
Expand Down Expand Up @@ -85,7 +87,7 @@ Example:

```cmd
set FASTSTACK_TURBOJPEG_LIB=C:\path\to\turbojpeg.dll
venv\Scripts\python.exe -m faststack.app "C:\path\to\photos"
faststack "C:\path\to\photos"
```

### Troubleshooting on Windows
Expand All @@ -105,15 +107,16 @@ Fastest fixes:

```cmd
set FASTSTACK_TURBOJPEG_LIB=C:\path\to\turbojpeg.dll
venv\Scripts\python.exe -m faststack.app "C:\path\to\photos"
faststack "C:\path\to\photos"
```

If you do nothing, FastStack will still run, but JPEG decoding and thumbnail generation will use Pillow instead of `libjpeg-turbo`, which is slower.

## Keyboard Shortcuts

- `J` / `Right Arrow`: Next Image
- `K` / `Left Arrow`: Previous Image
- `Right Arrow`: Next Image
- `Left Arrow`: Previous Image
- `K`: Mask-based background darkening (smart edge detection, subject protection, multiple modes)
- `G`: Jump to Image Number
- `I`: Show EXIF Data
- `F11`: Toggle Fullscreen (Loupe View)
Expand All @@ -131,7 +134,7 @@ If you do nothing, FastStack will still run, but JPEG decoding and thumbnail gen
- `Ctrl+E`: Toggle edited flag
- `Ctrl+S`: Toggle stacked flag
- `Enter`: Launch Helicon Focus with selected RAWs
- `P`: Edit in Photoshop (uses RAW file if available)
- `P`: Edit in Photoshop or Gimp (uses RAW file when available)
- `O` (or Right-Click): Toggle crop mode (Enter to execute, Esc to cancel)
- `Delete` / `Backspace`: Move image to recycle bin
- `Ctrl+Z`: Undo last action (delete, auto white balance, or crop)
Expand Down
4 changes: 4 additions & 0 deletions faststack/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from .app import cli

if __name__ == "__main__":
cli()
Loading
Loading