Looking for some software to help organize my photos which are currently spread out across lots of random backups. Something that displays the metadata usefully and identifies identical photos would be a big help.
Does NOT need to sync to phone or anything, just need help sorting things into a navigable structure on my machine locally.
DigiKam would likely be what you want.
Immich
My current Linux distro (MX) came with gThumb which grew on me over time. It’s simple, fast and covers the basics. Linux only. https://wiki.gnome.org/Apps/Gthumb
I spun up immich on my computer and it does basically everything you’re asking for. Its duplication detection is pretty good, but definitely tweak the parameters so you don’t get too many false positive matches.
I’ve been eyeing immich for a few years now, but I haven’t committed due to concerns about how to handle backups. What is your approach?
I just backup the folder with the pics to my NAS on a schedule with the rest of my backups.
They seem to have good builtin support. Let immich make a db backup and then add the db backup directory to your normal backup.
(And the filesystem directory with photos of course) https://docs.immich.app/administration/backup-and-restore/I mount a filesystem from a nas which is backed up to S3 with my other data.
My approach is running it in a container (podman, but if you use docker it’s the same) and simply backing up the mounted folders.
Thus way I can just move everything elsewhere and just restart the container.
Thank you I will check it out!
Check out this: https://exiftool.org/#filename
That can move photos into directories according to their EXIF date, which should already help you a lot.
I’ve been using Photprism to manage my NAS photos, cool features to help organize all the photos: https://www.photoprism.app/
On my personal machine, I’ve been using Shotwell for a while now. It does a pretty good job. For duplicates, there’s fdupes in terminal, and more recently I found Czkawka, which is quite nice as well.
Scripting and the command line is an option. It may seem a bit daunting at first but can be a lot faster. Doing AI training stuff I tried brute forcing for awhile but it is just too tedious. A model like a Qwen 3 can be instructed to act like a photo captioning model. It is quite good at optical text recognition in images too.
You can script it to caption the whole image or any number of elements like color, location, subjects, etc., while also limiting the length of text. Then modify the image metadata with the text. It is also possible to feed it a set of json keys and it will fill in the values for the dictionary.
If you go this route, then you start using tools like ripgrep and it becomes possible to find and manipulate many thousands of images quickly to find niche sets in the tens to hundreds in just a single scripted command. You can do stuff like grep -ril foo | xargs | sed ‘s/foo/bar/’ or something like that. Not at my comp right now to pull up the command flags, but that is how to search and edit to change all instances of words in a bunch of files. That one is technically incorrect but it makes far more intuitive sense than alternatives.
Something like Qwen requires enthusiast level hardware, or if you have to, a free google colab instance. If you search for captioning models there are much smaller ones like the ancient BLIP that are less accurate but fast and run on anything. Anyways, I know this reply is not exactly what you wanted, but it is an option, and one I thought was beyond me until I tried it. Hopefully it is useful digital neighbor.
when you say “caption” what do you mean?
Something like,
An image consisting of two men and three children, formally dressed, indoors, they appear to be at an event such as a wedding reception. There is a cake in the background and people dancing. There is a banner in the image that says "Congratulations Tom and Jerry".ah - i see. thanks.
when you say “caption” ehat exactly do you mean?




