Releases: lstein/PhotoMapAI
Release list
v1.2.0
Release Notes
Welcome to PhotoMapAI, an AI-based image manager. See Features for a quick introduction, Installation to get PhotoMapAI installed on your home computer, and User Guide for usage and configuration.
PhotoMapAI Version 1.2.0
This release deepens PhotoMapAI's integration with InvokeAI, makes keeping albums indexed much more convenient, and removes the need for an internet connection at runtime.
🎨 InvokeAI integration
- Albums backed by InvokeAI image-gallery boards (#331). Point an album at a running InvokeAI installation and select one or more of its boards — PhotoMapAI indexes and browses them like any other album, with search, the semantic map, and metadata all working as usual. Follow-up polish covers clearer album-source display (#335), board selection when editing (#336), and surfacing skipped board images after indexing (#337).
- Append reference images to InvokeAI (#332). A new "Append to InvokeAI" button in the metadata drawer adds the current image to InvokeAI's existing reference-image list instead of replacing it. The recall buttons are capability-gated: they appear only when the connected InvokeAI backend supports them (append requires InvokeAI ≥ 6.13.5), so nothing breaks against older versions.
- Cleaner recall controls: the InvokeAI drawer buttons are now organized into a labeled two-row table (#333).
📇 Album indexing
- Update All button (#342) — refresh the indexes of all your albums in one click, backed by much faster and more accurate index scans.
- Album update shortcut in the semantic map titlebar (#344) — a reindex button with a live progress ring, so you can update the current album without leaving the map. The ring also animates for updates started from the Album Manager (#347).
🌐 Fully offline
- An internet connection is no longer required to run PhotoMapAI (#341). The Swiper and Plotly libraries are now bundled with the app instead of being fetched from a CDN, so everything works offline once installed.
🔒 Notable fixes
Numerous fixes ship in this release as well — including slideshow refresh after index updates (#345) and Python 3.12+ compatibility pins (#340). See the full What's Changed list below.
What's Changed
- chore: add uv.lock by @lstein in #328
- docs(claude): document uv + rebase development workflow by @lstein in #329
- docs: Documentation tweaks by @lstein in #330
- feat: albums backed by InvokeAI image-gallery boards by @lstein in #331
- feat: Append to InvokeAI reference image + capability-gated recall buttons by @lstein in #332
- feat: reformat InvokeAI drawer buttons into a labeled two-row table by @lstein in #333
- docs: bring InvokeAI section up to date with 1.1.1 features by @lstein in #334
- Clearer album-source display, gated on InvokeAI backend by @lstein in #335
- Fix: restore all saved boards when editing an InvokeAI board album by @lstein in #336
- Surface skipped board images after indexing by @lstein in #337
- fix: pin numba>=0.57 to ensure Python 3.12+ compatibility by @lstein in #340
- fix: serve Swiper and Plotly from local vendor files instead of CDN by @lstein in #341
- chore: sync uv.lock with the numba>=0.57 pin from #340 by @lstein in #343
- feat: Update All albums button + fast, accurate index scans by @lstein in #342
- feat: reindex button with progress ring in the semantic map titlebar by @lstein in #344
- fix: refresh the slideshow in place after index updates; surface pre-scan indexing failures by @lstein in #345
- fix: stop Chrome offering to save passwords on the UMAP EPS field by @lstein in #346
- feat: animate the UMAP reindex ring for updates started in the Album Manager by @lstein in #347
- chore(release): bump version to 1.2.0 by @lstein in #348
Full Changelog: v1.1.0...v1.2.0
v1.1.0
Release Notes
Welcome to PhotoMapAI, an AI-based image manager. See Features for a quick introduction, Installation to get PhotoMapAI installed on your home computer, and User Guide for usage and configuration.
PhotoMapAI Version 1.1.0
This is a big feature release — the highlight is a much smoother install experience on Macintoshes, Windows machines and Linux boxes. In addition, since the previous 1.0.5 release there are 22 new features and dozens of fixes large and small.
⭐ New install experience
- Signed, double-clickable desktop installer for macOS, Windows, and Linux (#300). No need to install Python, CUDA, or anything else first — on first launch it downloads a private Python plus the AI libraries, starts the server, and opens your browser automatically. Later launches start in seconds.
- Reliable first-run setup, everywhere. The launcher installs its private Python and required libraries, avoiding interfering with other software installed on the machine.
- GPU "just works": an NVIDIA GPU is detected and used automatically. You no longer need to install the CUDA Toolkit — only a recent NVIDIA driver. Apple Silicon acceleration is automatic too.
- Python 3.14 support (#258).
🗺️ Semantic map (UMAP)
- Automatic cluster labeling — clusters are now named by content (#234).
- Per-image tags in the hover popup (#262).
- Album switcher built into the semantic-map titlebar (#287).
- Smooth zoom everywhere: custom scroll-wheel and pinch-to-zoom that work across all browsers, including Safari and iOS touch (#312).
🔎 Search & discovery
- In-app Back button + browser back/forward for navigating your slide history (#241).
- Encoder model download progress is now displayed in the album UI during indexing (#308).
- Platform-aware default encoder for new albums (#307).
- Broader auto-tagging vocabulary, with an opt-out toggle (#251).
- Search and other server errors now appear as toast notifications instead of failing silently (#278, #288).
🖼️ Slideshow
- Smarter end-of-show behavior: sequential mode stops cleanly on the last slide (with the play button grayed out), while shuffle mode reshuffles endlessly (#293, #296).
- Shuffle autoplay stays alive through long runs and buffer rebuilds (#297, #313).
🎯 Curation
- Grid view plus an automatic UMAP on completion, and a ~200× speedup in BLOCKS curation (#281).
🏷️ Metadata
- EXIF drawer now shows DateTimeOriginal, Orientation, and image dimensions (#279).
- Clickable reference-image thumbnails in the metadata drawer (#238).
- Better handling of InvokeAI v5 metadata and assorted format edge cases (#267, #268).
⚙️ Preferences & quality of life
- Per-device, server-side UI preferences — your layout choices persist per device (#284).
- Move to Trash / Recycle Bin option for image deletion, instead of permanent removal (#273).
- An update badge on the About button when a newer version is available (#280).
- Cached reverse-geocoding for faster GPS location lookups (#272).
🔒 Notable fixes
- Closed XSS, path-traversal, and partial-write security risks (#242).
- Resolved indexing/concurrency race conditions and VRAM-release issues (#243, #271).
- Numerous UI leak and stability fixes across the slideshow, curation, and grid views.
- In-app "Update" now works for launcher installs (#327). Installs created by the desktop launcher run in a pip-less environment, so the About → Update button previously failed; it now upgrades via
uvinstead.
Plus internal refactors, CI repairs, and frontend cleanups under the hood.
Upgrading from the 1.0.6rc1 pre-release? If you installed an
rcbuild with
the desktop launcher, the in-app Update button may fail with
No module named pip(that older build predates the fix in #327). To get onto
1.1.0, just re-run the PhotoMapAI launcher with--reinstall— it reinstalls
the latest release cleanly. After that, the in-app Update button works normally.
Stable installs (1.0.5 and earlier) are unaffected and can update in place.
For the full commit-level history, see the GitHub releasespage.
New Contributors
- @Hank0101Chen made their first contribution in #291
Full Changelog: v1.0.5...v1.1.0
v1.0.6rc1
This is a pre-release issued in order to test the new installer and launcher interface. Full release notes will be posted after full testing. Installers for the three major operating systems can be found at the bottom of this page:
| Operating System | Installer |
|---|---|
| Windows | PhotoMapAI-1.0.6rc1-setup.exe |
| MacOS | PhotoMapAI-1.0.6rc1.dmg |
| Linux | PhotoMapAI-1.0.6rc1-x86_64.AppImage |
What's Changed
- Fix artifact upload: create archives before uploading to GitHub Release by @Copilot in #215
- refactor(metadata): finish wiring invoke formatter to pydantic union by @lstein in #216
- feat: support InvokeAI authentication by @lstein in #217
- fix(metadata): handle unknown InvokeAI metadata fields by @lstein in #218
- feat: Improve umap window size and position by @lstein in #219
- feat(invoke): "Use as Ref Image" button + resilient auth fallback by @lstein in #220
- feat(invoke): show "Use as Ref Image" button for any image when InvokeAI is configured by @lstein in #221
- feat(invoke): add image-board selector for reference uploads by @lstein in #222
- feat(invoke): reuse existing InvokeAI images instead of re-uploading by @lstein in #223
- fix(security): close three HIGH-severity API issues by @lstein in #224
- docs: add InvokeAI Integration user guide page by @lstein in #225
- feat: pluggable image/text encoder layer with OpenCLIP and SigLIP backends by @lstein in #226
- feat: offload idle encoder from VRAM to RAM after configurable timeout by @lstein in #227
- fix(frontend): suppress slide animation when entering grid view by @lstein in #228
- fix(frontend): rebuild swiper after single-image delete by @lstein in #229
- feat(frontend): add wrap-around navigation setting by @lstein in #230
- feat(frontend): show spinner during album switch by @lstein in #231
- bump version to 1.05 by @lstein in #232
- fix(ci): repair v1.0.5 release artifact pipeline by @lstein in #233
- feat: cluster auto-labeling for UMAP by @lstein in #234
- chore(libs): unpin torch by @lstein in #235
- fix(cluster-labels): invalidate vocab cache when phrase set changes by @lstein in #236
- Polish metadata drawer and UMAP cluster hover popup by @lstein in #237
- fix(frontend): smooth metadata drawer by @lstein in #239
- feat(metadata-drawer): clickable thumbnails for in-album reference images by @lstein in #238
- chore(ci): enhance claude.md instructions by @lstein in #240
- feat(back-nav): in-app Back button + browser back/forward for slide history by @lstein in #241
- fix(security): close XSS, path-traversal, and partial-write risks by @lstein in #242
- fix(concurrency): close race conditions from code review by @lstein in #243
- chore(dedupe): collapse low-risk redundancies from code review by @lstein in #244
- chore(ci): add claude workflow by @lstein in #248
- chore(ci): use CLAUDE_CODE_OAUTH_TOKEN for claude-code-action by @lstein in #249
- fix: Export Dataset button reports "undefined files" and does not export by @lstein in #250
- feat(autotag): broaden vocab and add opt-out toggle by @lstein in #251
- fix(albums): index freshly-added album when dir has a stale photomap_index by @lstein in #247
- refactor(embeddings): unify update_index sync/async via shared helpers by @lstein in #246
- fix(umap): preserve cluster id 0 in landmark hover/click by @lstein in #252
- refactor(state): generate persisted setters from a single spec table by @lstein in #253
- refactor(frontend): add fetchJson helper and roll it into the JSON sites by @lstein in #254
- refactor(frontend): unify drag handlers behind a single makeDraggable helper by @lstein in #255
- refactor(touch): extract attachLongPress helper by @lstein in #256
- refactor(encoders): hoist close() and device detection to the base class by @lstein in #257
- refactor(events): consolidate arrow-key slideshow-pause into events.js by @lstein in #259
- refactor(metadata): replace InvokeMetadataView isinstance ladders with strategies by @lstein in #260
- refactor(routers): switch validate / lock / embeddings trio to FastAPI Depends by @lstein in #261
- feat(umap): show per-image tags in hover popup by @lstein in #262
- feat: add Python 3.14 support by @lstein in #258
- fix(metadata): harden discriminator heuristics, iTXt chunks, scalar fallback by @lstein in #268
- fix(invoke5): warn on unknown v5 fields without breaking parsing by @lstein in #267
- fix(frontend): listener / interval leaks in weight-slider, curation, grid-view by @lstein in #266
- fix(backend): thumbnail collisions, cancellable indexing, assert hardening by @lstein in #265
- fix(bookmarks): adjust indices on image delete and surface quota errors by @lstein in #264
- fix(caches): bound _curation_results and add npz mtime to image-label key by @lstein in #263
- fix(indexing): gate image indexing on pixel dimensions, not file bytes by @lstein in #269
- chore(ci): update claude instructions by @lstein in #270
- fix(cluster-labels): single-flight guard for vocab cache builds by @lstein in #274
- fix(umap): respect album_config.umap_eps in /umap_data and /cluster_labels by @lstein in #277
- fix(exif): cache LocationIQ reverse-geocode lookups by rounded coords by @lstein in #272
- fix(embeddings,cli): case-insensitive path diff, VRAM release, broken CLI kwarg by @lstein in #271
- feat(exif): show DateTimeOriginal, Orientation, and Exif image dimensions by @lstein in #279
- fix(spinner): ref-count showSpinner / hideSpinner so concurrent ops don't fight by @lstein in #275
- chore: purge dead code identified in the 2026-05-20 review by @lstein in #276
- feat(about): starburst badge on About button when a new version is available by @lstein in #280
- feat(search): surface server errors via a toast UI instead of failing silently by @lstein in #278
- feat(curation): grid view + UMAP on completion, and ~200x BLOCKS speedup by @lstein in #281
- feat: add Move to Trash/Recycle Bin option for image deletion by @lstein in #273
- fix(frontend): live-refresh back-nav flyout + misc UI tweaks by @lstein in #282
- fix(swiper): duplicate current image when toggling grid → swiper by @lstein in #283
- feat(preferences): per-device server-side UI preferences by @lstein in #284
- feat(frontend): toast users on slow autotagging vocab build by @lstein in #288
- feat(umap): album pulldown in semantic-map titlebar by @lstein in #287
- test(delete_image): pin move_to_trash=False; add Py3.14 to CI matrix by @lstein in #286
- Docs: 1.06 update by @lstein in #289
- fix(umap): keep close button visible at small/medium window sizes by @lstein in #290
- Add Traditional Chinese README by @Hank0101Chen in #291
- fix(umap): increase threshold to 5000 for switching from random walk to closest ordering by @lstein in #292
- fix(slideshow): stop on last slide in linear mode; reshuffle endlessly in shuffl...
v1.0.5
PhotoMapAI v1.0.5
This version adds the following significant features:
- The option to select among three image/text encoders that have different levels of speed and accuracy. See Encoders
- Integration with the InvokeAI image generation package, allowing you to create albums from InvokeAI image collections, send previously-generated images to a running InvokeAI backend to recall and remix them, and to use an arbitrary image as an InvokeAI reference image. See InvokeAI Integration.
- Reorganized Settings dialogue, with the ability to control whether search results wrap around or not.
In addition, there are a number of internal bug fixes, performance enhancements, and security patches. See the next section for details.
Installation
For current users, you may do an online upgrade to this version from the About dialogue. Click on the "?" icon to start.
New users see the Installation Guide for a variety of install methods. Executable installers for CPU-only systems can be found at the bottom of this page. Additional installers for Windows and Linux users who have GPU cards can be found here
What's Changed
- Fix artifact upload: create archives before uploading to GitHub Release by @Copilot in #215
- refactor(metadata): finish wiring invoke formatter to pydantic union by @lstein in #216
- feat: support InvokeAI authentication by @lstein in #217
- fix(metadata): handle unknown InvokeAI metadata fields by @lstein in #218
- feat: Improve umap window size and position by @lstein in #219
- feat(invoke): "Use as Ref Image" button + resilient auth fallback by @lstein in #220
- feat(invoke): show "Use as Ref Image" button for any image when InvokeAI is configured by @lstein in #221
- feat(invoke): add image-board selector for reference uploads by @lstein in #222
- feat(invoke): reuse existing InvokeAI images instead of re-uploading by @lstein in #223
- fix(security): close three HIGH-severity API issues by @lstein in #224
- docs: add InvokeAI Integration user guide page by @lstein in #225
- feat: pluggable image/text encoder layer with OpenCLIP and SigLIP backends by @lstein in #226
- feat: offload idle encoder from VRAM to RAM after configurable timeout by @lstein in #227
- fix(frontend): suppress slide animation when entering grid view by @lstein in #228
- fix(frontend): rebuild swiper after single-image delete by @lstein in #229
- feat(frontend): add wrap-around navigation setting by @lstein in #230
- feat(frontend): show spinner during album switch by @lstein in #231
Full Changelog: v1.0.4...v1.0.5
v1.0.4
This is a bugfix release which addresses two issues:
- PhotoMapAI is not compatible with older versions of Microsoft IE and Edge. We now detect incompatible versions and put up a warning message with instructions on upgrading.
- When clicking on the "Update Index" button in the album management UI, there was no immediate feedback causing users to click multiple times. This is now fixed.
Installation
See Installation for full instructions. Prebuilt binaries with accelerated GPU support can be downloaded from here.
What's Changed
- Fix app broken on Windows due to IE Compatibility Mode by @Copilot in #211
- Show "Update Pending..." immediately when index button is clicked by @Copilot in #213
- Chore: version bump to 1.0.4 by @lstein in #214
Full Changelog: v1.0.3...v1.0.4
v1.0.3
PhotoMap Version 1.0.3
This is a small bugfix release that fixes some aesthetic issues and stops a crash when reading the metadata on some recent InvokeAI-generated images.
Many thanks to @green-s for providing a fix to a bug that prevented PhotoMap from starting up properly when run in a conda environment.
What's Changed
- Add Copilot instructions for repository context by @Copilot in #193
- Show spinner during UMAP cluster selection by @Copilot in #197
- Start server via module argument instead of script path by @green-s in #195
- chore: update deploy actions by @lstein in #190
- chore: bump version by @lstein in #201
- Add linting infrastructure with Ruff, ESLint, and Prettier by @Copilot in #199
- chore: fix version string by @lstein in #202
- Fix UMAP spinner not appearing during cluster click operations by @Copilot in #204
- Bugfix(backend): prevent crash on some invokeai metadata formats by @lstein in #205
- chore: version bump by @lstein in #206
New Contributors
Full Changelog: v1.0.2...v1.0.3
v1.0.2
This release adds a couple small features and corrects several bugs.
Feature: Album Locking
This version introduces a new command line option, --album-locked which accepts one or more album keys separated by spaces. If this option is present, PhotoMapAI will only allow the user to select one of the listed albums. All functions that modify the filesystem, including changing albums, deleting images, and moving images around, are disabled. Use this to give your friends and family access to some, but not all, of your configured albums.
Feature: Display InvokeAI Workflow Metadata
This version now displays metadata added to images by InvokeAI workflows.
Bug Fixes
- Deleted bookmarked images no longer persist in the grid view.
Installation
See Installation for full instructions. Prebuilt binaries with accelerated GPU support can be downloaded from here.
What's Changed
- (chore) fix artifact upload step (again) by @lstein in #183
- (enhancement) detect and handle metadata generated by Invoke workflows by @lstein in #186
- Allow multiple albums in --album-locked option by @Copilot in #185
- Fix deleted bookmarked images remaining visible in grid view due to browser caching by @Copilot in #188
- chore: bump version by @lstein in #189
Full Changelog: v1.0.1...v1.0.2
v1.0.1
This is a bugfix release to address a number of small issues in 1.0.0. The 1.0.0 release notes are reproduced here:
What's New
This release of PhotoMapAI adds many new features, bug fixes, and performance enhancers.
Image Dataset Curation
A completely new image curation panel was contributed by @NMWave. This feature is designed to assist in curating images for use in AI generation and classification models. This mode automates the selection and maintenance of a balanced and diverse set of training images. See Dataset Curation for more information.
Bookmarks
You can now "star" an image and add it to your favorites. You can then filter on favorites, download a zip file archive, move the favorites to a new folder, or delete them en masse.
Slideshow modes
You can now easily select whether the slideshow shows images chronologically or in shuffled order. Simply right click on the slideshow button (on desktops) or long press (on tablets) to choose which mode is active.
More Semantic Map options
You can now control whether the semantic map minimizes itself when selecting a cluster, and conveniently show, hide and clear highlighted images. In addition, the map navigation icon menu has been reorganized to make it more easily accessed on tablets.
Grid View bugs fixed
Multiple strange behaviors in the grid view, including unexpected backwards navigation, loading slowness, and misordered images have now been fixed. Performance is improved as well.
Enhanced cluster display and navigation options
The currently-selected image's cluster is now shown in the metadata panel. Clicking on the cluster name will select other images in the same cluster. In addition, the cluster name and size are shown in the thumbnails that appear when you hover over a point in the semantic map.
Better metadata support for InvokeAI
The metadata display panel has been updated to support images generated by legacy versions of the fantastic InvokeAI generative AI image creation package.
Improved album management
The Album Manager now appears instantly when you click its button in the Settings panel. It also adds a "Back" button to return to Settings when desired. In addition, the user interface for the directory browser has been cleaned up to be more intuitive and responsive.
Installation
There are several ways of installing this application. Please see Installation Instructions as a guide.
If you choose to install an executable bundle, you'll find CPU-only executables under Assets below. The GPU-accelerated versions can be found here: PhotoMapAI v.1.0.1 Executables
What's Changed since 1.0.0
- (docs) fix command-line example for docker by @lstein in #164
- Implement album-lock restrictions for filesystem operations by @Copilot in #166
- Fix cluster badge not updating in metadata panel for both swiper and grid views by @Copilot in #168
- Add single image selection mode to UMAP window by @Copilot in #170
- Redesign fileNameBanner with distinct draggable titlebar by @Copilot in #172
- Increase UMAP fullscreen controlsHeight to prevent overlap with bottom panels by @Copilot in #174
- Fix umap fullscreen exit when click-to-navigate is active by @Copilot in #176
- Add Export action to Bookmarks menu with directory picker improvements by @Copilot in #180
- Free CUDA VRAM after search and indexing operations by @Copilot in #178
- (chore) bump version number & update README by @lstein in #181
- (chore) do not attempt to upload the CUDA installers; they are too large by @lstein in #182
Full Changelog: v1.0.0...v1.0.1
v1.0.0
What's New
This release of PhotoMapAI adds many new features, bug fixes, and performance enhancers.
Image Dataset Curation
A completely new image curation panel was contributed by @NMWave. This feature is designed to assist in curating images for use in AI generation and classification models. This mode automates the selection and maintenance of a balanced and diverse set of training images. See Dataset Curation for more information.
Bookmarks
You can now "star" an image and add it to your favorites. You can then filter on favorites, download a zip file archive, move the favorites to a new folder, or delete them en masse.
Slideshow modes
You can now easily select whether the slideshow shows images chronologically or in shuffled order. Simply right click on the slideshow button (on desktops) or long press (on tablets) to choose which mode is active.
More Semantic Map options
You can now control whether the semantic map minimizes itself when selecting a cluster, and conveniently show, hide and clear highlighted images. In addition, the map navigation icon menu has been reorganized to make it more easily accessed on tablets.
Grid View bugs fixed
Multiple strange behaviors in the grid view, including unexpected backwards navigation, loading slowness, and misordered images have now been fixed. Performance is improved as well.
Enhanced cluster display and navigation options
The currently-selected image's cluster is now shown in the metadata panel. Clicking on the cluster name will select other images in the same cluster. In addition, the cluster name and size are shown in the thumbnails that appear when you hover over a point in the semantic map.
Better metadata support for InvokeAI
The metadata display panel has been updated to support images generated by legacy versions of the fantastic InvokeAI generative AI image creation package.
Improved album management
The Album Manager now appears instantly when you click its button in the Settings panel. It also adds a "Back" button to return to Settings when desired. In addition, the user interface for the directory browser has been cleaned up to be more intuitive and responsive.
Installation
There are several ways of installing this application. Please see Installation Instructions as a guide.
If you choose to install an executable bundle, you'll find CPU-only executables under Assets below. The GPU-accelerated versions can be found here: PhotoMapAI v.1.0.0 Executables
Comprehensive list of what's changed
- (bugfix) handle ref image data nested under "original" by @lstein in #114
- Refactor JavaScript event handlers: consolidate component-specific events and remove eventRegistry by @Copilot in #113
- (feature) When slideshow reaches end, wrap around to beginning by @lstein in #116
- Add JavaScript frontend unit tests with Jest by @Copilot in #118
- (chore) fix the deploy script so that docker-deploy gets secrets by @lstein in #119
- Fix race condition when switching from swiper to grid mode by @Copilot in #123
- Fix shuffle mode slideshow direction reversal and slide repetition by @Copilot in #125
- Fix race condition causing retrograde motion when paging grid-view forward by @Copilot in #127
- Feature: Add image bookmarks with persistent storage and batch actions by @Copilot in #129
- Document the new bookmarks feature by @Copilot in #131
- Move favorites star into ScoreDisplay and reposition seek-slider by @Copilot in #133
- Show slide position in seek-slider yellow strip by @Copilot in #135
- Allow grid-view to scroll while images are loading by @Copilot in #137
- (feature) remove the save to image icon from the plotly menu by @lstein in #140
- Add back navigation and eliminate dialog delay in Album Manager by @Copilot in #139
- Enhance UMAP search result highlighting with larger markers, white borders, and persistent settings by @Copilot in #143
- Fix seek slider thumb position on first display by @Copilot in #145
- Fix localStorage loss and UMAP marker disappearance on iOS/iPad by @Copilot in #147
- Add cluster size to hover thumbnails and metadata window by @Copilot in #149
- Add move images to different folder functionality with create folder support and smart album integration by @Copilot in #151
- Add Dataset Curation Tools (FPS & K-Means) for LoRA Training (#141) by @NMWave and @lstein in #152
- Add touch event support for curator panel dragging by @Copilot in #158
- Fix Album Manager button: missing imports, width overflow, and restore PR #139 features by @Copilot in #156
- Fix metadata panel drag lag by using delta-based positioning by @Copilot in #162
- Add comprehensive test coverage for curation panel functionality by @Copilot in #160
- Bump version to 1.0.0 by @lstein in #163
Full Changelog: v0.9.6...v1.0.0
v0.9.6
What's Changed
- [release] Revert to using API token, not trusted publisher by @lstein in #104
- [feature] Modify slideshow button to toggle between chronological mode and random mode. by @lstein in #105
- Update docs to describe slideshow button mode shifting by @lstein in #106
- [feature] user settable search parameters by @lstein in #107
- (bugfix) restore behavior of iPad image menu on long touch by @lstein in #108
- (docs) add information on the search sensitivity settings by @lstein in #109
- (bugfix) pause running slideshow when shifting from random<->sequential by @lstein in #110
Full Changelog: v0.9.5...v0.9.6
Installation
There are several ways of installing this application. Please see Installation Instructions as a guide.
If you choose to install an executable bundle, you'll find CPU-only executables under Assets below. The GPU-accelerated versions can be found here: PhotoMapAI v.0.9.6 Executables