photoprism / photoprism

AI-Powered Photos App for the Decentralized Web 🌈💎✨
https://www.photoprism.app
Other
34.61k stars 1.9k forks source link

Albums: Smart/Conditional Albums #1431

Open cabe1214 opened 3 years ago

cabe1214 commented 3 years ago

As a home user I'd like be able to create a Smart Album into which fotos will be added automatically depending on some condition(s).

i.e. I create a Smart Album "Baby" with the condition "Files which are located in Folder1". Every foto/video located/added to "Folder1" will be automatically added to the album "Baby" without having to insert the newly available files every time into the album.

Acceptance Criteria:

10bn commented 2 years ago

This would be great, I'd love to do location based smart albums!

GlassedSilver commented 2 years ago

For inspiration also checkk out Apple's various apps that have Smart Albums/Smart Playlists.

iTunes, Photos/iPhoto/Aperture, etc...

If there's one thing I have to continue to applaud Apple for it's smart folders being present in any app that has management of assets as its core feature.

To me, any kind of asset managing application is not complete without it. I think it's a CORE functionality.

lastzero commented 2 years ago

@GlassedSilver Apple has better funding. If we would have reached our funding goal, there might be a frontend for manually creating smart albums already. Sadly the work we do still doesn't pay our bills after 3.5 years... On the positive side, moments are smart albums so the functionality is already implemented in our backend. Just a nice UI for creating them manually is missing.

GlassedSilver commented 2 years ago

@GlassedSilver Apple has better funding. If we would have reached our funding goal, there might be a frontend for manually creating smart albums already. Sadly the work we do still doesn't pay our bills after 3.5 years... On the positive side, moments are smart albums so the functionality is already implemented in our backend. Just a nice UI for creating them manually is missing.

I'm not trying to throw shade, just wanted to highlight the importance.

Sorry if I sounded rude in any way, that was not my intention at all! :o

lastzero commented 2 years ago

No worries, just trying to explain why seemingly simple or core features are not implemented yet. Even if we only needed one day for each issue, we would be busy for a year. Wish we had as many sponsors as feature requests.

GlassedSilver commented 2 years ago

No worries, just trying to explain why seemingly simple or core features are not implemented yet. Even if we only needed one day for each issue, we would be busy for a year. Wish we had as many sponsors as feature requests.

I run a LOT of FOSS software, I definitely know what you mean.

I'm also scripting/coding small hobby projects in my spare time sometimes and my ideas always outpace my keyboard speed. :D You have my full sympathy. No software ever is done, all you can try is to close in on the distance between ideas and realization. :)

snarfsmojo commented 2 years ago

I love this idea! an additional condition I'd like to see is people, specifically with the thought of sharing all of the pictures I have of an individual with them.

IE, based on the conditional value "contains person Steven Tyler" I can make a smart album named Steven Tyler, which I could then share with StevenTyler@aerosmith.com, :)

joachimtingvold commented 2 years ago

How will "Smart Albums" change the dynamic of /unsorted when implemented? Will photos "added" via "Smart Albums" show up or don't show up on /unsorted?

lastzero commented 2 years ago

Since Months are smart albums, there would be no unsorted pictures. Or if you manually add a smart album that doesn't filter (much). So probably makes no sense.

GlassedSilver commented 2 years ago

A smart album is a bit of a saved search, so... it's unsorted in my books, maybe it should be a user choice not sure.

rybber78 commented 2 years ago

I'd love that too! It could be as simple as a saved search (perhaps with predefined sorting).

GlassedSilver commented 2 years ago

I'd love that too! It could be as simple as a saved search (perhaps with predefined sorting).

plus maybe some metadata like setting a fixed album art or alternatively generating it from a selection of images dynamically.

charles-997 commented 2 years ago

Another fantastic use-case for smart albums is "filtering" your best images vs simply all images. I rate my images based on a 5 star system. It would be remarkable if I were able to create smart albums based on the image's rating from the EXIF metadata. I rate them in Lightroom and then when photoprism indexs, it picks up the metadata (I assume?). A smart album would allow users to make use of this metadata to create a collection of "best of" images

graciousgrey commented 2 years ago

@charles-997 support for 5 star ratings is not yet implemented, but planned: https://github.com/photoprism/photoprism/issues/713 :)

heitorPB commented 10 months ago

Suggestion for the implementation: add a button (and endpoint as well?) to trigger updating the smart albums. That would be super handy when adding photos from external media. And might be helpful when implementing the last two items in the Acceptance Criteria list.

GlassedSilver commented 10 months ago

Suggestion for the implementation: add a button (and endpoint as well?) to trigger updating the smart albums. That would be super handy when adding photos from external media. And might be helpful when implementing the last two items in the Acceptance Criteria list.

That should be done automatically anyhow, just like in iTunes for example. Nobody presses a button to update their personal Top 25 list.

Baffled by the suggestion that a smart album should be semi-automatic. o.O

graciousgrey commented 10 months ago

It's planned that smart albums should be updated automatically in the background, no button should be needed for this :)

GlassedSilver commented 10 months ago

It's planned that smart albums should be updated automatically in the background, no button should be needed for this :)

Thanks for confirming, appreciated.

heitorPB commented 10 months ago

That should be done automatically anyhow, just like in iTunes for example.

Would that work for network mounted filesystems? How would Photoprism detect file changes in an NFS share?

Baffled by the suggestion that a smart album should be semi-automatic. o.O

I didn't say that =p I asked to have the functionality of updating the albums exposed to end users. Adding a button to click doesn't imply removing the automation. Those are complimentary.

In the case of remote storage of photos, the storage server can trigger a webhook when there are changes on disk. I can also configure my server to wait for the sync to complete before hitting the sync endpoint. Could also have a daily cron job downloading from Google Photos and if there are any new ones, trigger the smart-album update. The possibilities are endless.

Exposing the endpoint/button adds possibilities and flexibility. You don't have to use if you don't want to.

It's planned that smart albums should be updated automatically in the background,

I'm new to Photoprism, but does that mean updating only the smart-albums or re-syncing the library from disk? Would that read only from the database or re-scan the disk folders?

charles-997 commented 10 months ago

Would that work for network mounted filesystems? How would Photoprism detect file changes in an NFS share?

I mount the nfs share to the host system and then pass through to the PhotoPrism docker stack using a volume bind mount. Thus PhotoPrism is agnostic to local directory vs networked directory.

GlassedSilver commented 10 months ago

Baffled by the suggestion that a smart album should be semi-automatic. o.O

I didn't say that =p I asked to have the functionality of updating the albums exposed to end users. Adding a button to click doesn't imply removing the automation. Those are complimentary.

I don't mean to come across as a smart ass, but I didn't say manual, but semi-automatic. There's automation, semi-automation and manual handling. Semi-automation means that an automation is initiated based on user interaction. Think of paddle-shifting in racing cars. It's not manual because the clutch is handled by the car, and you only shift up and down, you don't directly select a gear with the car handling the specific selection.

But it's not automatic either, not fully at least, because if you didn't pull the paddle on your steering wheel you'd stick around in whatever gear you are.

In the case of remote storage of photos, the storage server can trigger a webhook when there are changes on disk. I can also configure my server to wait for the sync to complete before hitting the sync endpoint. Could also have a daily cron job downloading from Google Photos and if there are any new ones, trigger the smart-album update. The possibilities are endless.

Exposing the endpoint/button adds possibilities and flexibility. You don't have to use if you don't want to.

Even in a system that is supposed to work automatically usually workarounds are worked in that facilitate usage like you describe. It's not untypical of folder-watching software to ALSO run a scheduled job to index or receive update commands.

A good example of that is my manga library software of choice: Kavita. :)

It's planned that smart albums should be updated automatically in the background,

I'm new to Photoprism, but does that mean updating only the smart-albums or re-syncing the library from disk? Would that read only from the database or re-scan the disk folders?

Re-scanning can possibly update any metadata that's new for photos and videos in your library, or, obviously, add new content that would then also possibly fall into criteria for a smart album. Re-syncing is a continuous process in software that has smart albums that's initiated whenever metadata for an item changes from within the software, so the item is checked for eligibility in smart folders by either removing it from them or adding it to them going by whatever the new metadata matches or doesn't match anymore for.

That's my understanding at least.

kvalev commented 10 months ago

A smart album will just be a saved query, so there will be little automation needed.

GlassedSilver commented 10 months ago

A smart album will just be a saved query, so there will be little automation needed.

That plus caching, that's a technical difference. More than just a UX improvement.

pacoccino commented 9 months ago

This is the most important feature I've been looking for in any photo library/digital asset management software. I even started to build my own app just for this, but didn't feel good building the nth photo library app out in the wild.

No photo app have a feature like shareable smart albums with a prepared search query, this would be a killer one if Photoprism succeeds implementing this.

What kind of work has to be done for this to work ? How is the backend ready for that ?

lastzero commented 9 months ago

@pacoccino I agree that having user-defined filters will be very helpful in many cases... The main things holding us back are (1) a missing UX concept, (2) having a secure implementation (as the filters could also be used to bypass restrictions if you are not an admin) and of course (3) the fact that we also have to work on other issues like 2FA and provide day-to-day support via email, chat and GitHub Discussions.

Adding an additional field to edit the applied filter is not difficult in itself. We just can't just release it like that for the reasons outlined above. So before we start developing it, it would be great to have a better understanding of the user interface and what else is needed, e.g. on the security side. Any help with this is welcome!

As a quick hack, I think you could e.g. create a "moment" album in the database, set a manual filter via SQL or a database management UI and then share that...

Edit: If you are familiar with JS/CSS, an autocomplete functionality for filters in the existing search bar could be a start, as many users struggle to remember filter names and some don't even know they exist. We could then move from there?

For an overview of the filters you can use: