feat(core,fuse,gui): find photos that look alike

The duplicate finder gains an Exact / Similar switch. Similar asks the
daemon for PhotoSimilar, which starts a background pass that hashes the
thumbnail of every shot not hashed yet and replies at once with the sets
found so far and how far hashing has got. The dialog shows a progress bar
and asks again until the pass is done, then lists the sets.

The pass takes thumbnails from the server only: a photo without one is
skipped for the run instead of downloaded whole, and the dialog says how
many photos could not be compared. Decoding and hashing are spread over
the machine's cores.

Every similar photo starts ticked Keep, since photos that look alike can
be different shots. A similar photo stands for its whole shot, so one not
kept goes to Trash with the rest of its shot.
This commit is contained in:
nvrl committed 2026-09-28 09:16:54 +02:00
1 parent c98ed0d83b
commit a90eeecda9
16 files changed
+1276 -250

No files matched your search

+10 -2
View File
@@ -11,8 +11,16 @@ scratch (user data in `staging/` and `recovery/` is never touched by this).
## [Unreleased]
Schema: **34**. Photos gain a `similar_hash` column for the coming similar-photo finder. It
stays empty until the daemon hashes thumbnails, so updating reads and downloads nothing.
Schema: **34**. Photos gain a `similar_hash` column for the similar-photo finder. It stays
empty until the finder is first opened, so updating reads and downloads nothing.
### Added
- **Similar photos.** The duplicate finder gains a Similar switch that also finds resized or
re-encoded copies and shots of one moment, by comparing the thumbnails. The first search
hashes every thumbnail the server has, with a progress bar; photos without one are not
downloaded and are counted as not compared. Every photo in a set starts ticked Keep, since
photos that look alike can be different shots, and a photo not kept goes to Trash with the
rest of its shot.
## [2.3.0] — 2026-09-28