Piwigo is more like a shared gallery. Users create album/folders and upload individual photos, which other users can access. Piwigo has poor support for videos and no support for Live Photos.
Photoprism has only a single user for the free tier. It supports Live Photos and videos, and individual photo uploads. It does facial recognition tagging.
Immich supports video/Live Photos, facial recognition, and has multiple users, but it expects a full backup/synchronization (not individual photos). Sharing between users is manual, not automatic or permissions-based like Piwigo. Each user has access only to their own backups or shared albums.
In summary, I think Piwigo is the simplest to set up and use, but it doesn’t do much beyond photos - it’s a simple shared gallery. Photoprism is good and stable, but you have to pay a subscription for multiple user accounts. Immich is rapidly developing, which means things will break, but also it has the most features. My only issue with Immich is that I don’t want to use it as a backup - only as a “best of” shared gallery. While it’s possible with Immich, I would have to maintain an Immich album on my phone, and sync only that, and I would have to set up shares with other users manually.
One feature that I hope that Immich adopts is to allow for external libraries to be displayed in an existing folder structure. There’s no built-in way to do this and requires a script that uses albums as a workaround. A lot of photographers have organised folders by date/event that span years/decades, so it’s not practical to create these manually with albums.
The closest I’ve found is a cron script which does album generation automatically, but it’s not a ‘future proof’ solution since it could stop working at any time.
Memories (Nextcloud), Photoprism, and Photoview can do this.