Skip to main content

Development: 2024 - January

· One min read
Niaz Faridani-Rad
Maintainer of LibrePhotos

Upstream:

  • ✨ Frontend: Migration to vite. Improves dx and build times (Implemented by sickelap)
  • ✨ Frontend: Continuation of migrating to RTQ (Implemented by sickelap)
  • ✨ LibrePhotos: api/photos/id/summary now return if it is processing or not
  • ✨ LibrePhotos: Add deduplication function for faces to django-admin
  • ✨ LibrePhotos: Updated a bunch of dependencies and updated language strings from the community
  • 🔨 Frontend: Fix a bug when setting heavyweight workers
  • 🔨 Frontend: Fix refetching behavior when assigning a face to a person
  • 🔨 LibrePhotos: Fix duplicate import of faces from Apple Smartphones

If you are interested on how I develop this application, you can watch me develop features live on my channel


Sponsoring development:

My work is sponsored by 7 awesome people!

If you like the work I do, then you can support me via GitHub sponsors or via PayPal

Development: 2023 - December

· 2 min read
Niaz Faridani-Rad
Maintainer of LibrePhotos

*Upstream:

  • 🚀 LibrePhotos: You can now download a large language model to post process captions

Now you can add previous attained knowledge to captions like names and places. This is a setting, which should only be used be high performance systems with at least 16GB RAM, because large language models are cutting edge tech.

  • 🚀 LibrePhotos: You can now see the image tag on the sidebar
  • 🚀 LibrePhotos: Tags in a caption will now add a new album in things
  • ✨ Frontend: Generated captions will now be shown as a suggestion
  • ✨ Frontend: Allow setting heavyweight worker higher than 3
  • ✨ Frontend: Added an edit mode for captions
  • ✨ Frontend: Face Labeling List is improved as entries render as buttons with a hover effect
  • ✨ Frontend: Added a warning when selecting a large captioning model
  • ✨ Frontend: Already existing tags will now get suggested, if you enter #
  • ✨ Frontend: Implemented a rich text editor for nice rendering of tags in caption textarea
  • ✨ Frontend: Continuation of migrating to RTQ (Implemented by sickelap)
  • ✨ LibrePhotos: Allow searching for lenses like "front camera"
  • ✨ LibrePhotos: Calculating Clip Embeddings is now a separate service
  • ✨ LibrePhotos: Image captioning is now a separate service and unloads after 30 seconds
  • ✨ LibrePhotos: Updated around a bunch of dependencies and updated language strings from the community
  • 🔨 Frontend: Changing the person in the lightbox, will now refetch correctly the new person
  • 🔨 LibrePhotos: Do not change capitalization when saving a caption
  • 🔨 LibrePhotos: Fix multiple issues when importing faces from Apple Smartphones
  • 🔨 LibrePhotos: Download models when changing captioning model

If you are interested on how I develop this application, you can watch me develop features live on my channel


Sponsoring development:

My work is sponsored by 9 awesome people!

If you like the work I do, then you can support me via GitHub sponsors or via PayPal

Development: 2023 - November

· One min read
Niaz Faridani-Rad
Maintainer of LibrePhotos

Survey:

I want to answer two questions: What is the best way to implement automatic image captioning, and what systems are the users of LibrePhotos using?

Fill out this questionnaire, to help me out! https://forms.gle/vJjzxwpXf5vwTm9v9

Upstream:

  • 🚀 LibrePhotos: You can now download a new image captioning model called BLIP
  • ✨ Frontend: Shared album will now be visible in URL, which allows for deep-linking. (Implemented by sickelap)
  • ✨ Frontend: Tons of maintainability issue fixed by sickelap
  • ✨ LibrePhotos: Progress of downloading models is now visible in the logs
  • ✨ LibrePhotos: Updated around a bunch of dependencies and updated language strings from the community
  • 🔨 LibrePhotos: Download of pictures should work now, even if the zip file is large. Fixed by AnkurPrabhu

If you are interested on how I develop this application, you can watch me develop features live on my channel


Sponsoring development:

My work is sponsored by 10 awesome people!

If you like the work I do, then you can support me via GitHub sponsors or via PayPal

Development: 2023 - October

· 2 min read
Niaz Faridani-Rad
Maintainer of LibrePhotos

Survey:

I want to answer two questions: What is the best way to implement automatic image captioning, and what systems are the users of LibrePhotos using?

Fill out this questionnaire, to help me out! https://forms.gle/vJjzxwpXf5vwTm9v9

Interview:

I did an interview with console. If you want to know more about me and the project, you can find the interview here: https://console.substack.com/p/console-180

Upstream:

  • 🚀 LibrePhotos: Machine Learning models will now get downloaded on the first scan and saved within the protected_media folder. This reduces the size of the cpu based image by 50%, which should make updating faster.
  • 🚀 LibrePhotos: You can now see the available space on the sidebar on the right!
  • 🚀 Frontend: You can now filter by photo and by video (Implemented by AnkurPrabhu)
  • 🚀 LibrePhotos: ONNX is now available as an ML execution engine
  • 🚀 LibrePhotos: You can now select the image caption model you want to use
  • ✨ Frontend: Search query will now be visible in URL, which allows for deep-linking. (Implemented by sickelap)
  • ✨ Frontend: Tons of maintainability issue fixed by sickelap
  • ✨ LibrePhotos: A lot of new and improved translations from the community
  • ✨ LibrePhotos: Updated around 40 dependencies
  • 🔨 LibrePhotos: Face recognition should now work on the GPU image
  • 🔨 Frontend: Fixed an issue, where public photos with no timestamp breaks settings

New Issues:

  • 🐞 Nextcloud integration does not work (Link)

  • 💡 Zoom out to display more thumbnails in the gallery (Link)

  • 🐞 Possible issue while Scanning with Network Mount? (Link)

  • 🐞 Cuda initialization error in latest GPU backend (Link) Details section on public page (Link)


If you are interested on how I develop this application, you can watch me develop features live on my channel


Sponsoring development:

My work is sponsored by 9 awesome people!

If you like the work I do, then you can support me via GitHub sponsors or via PayPal

Development: 2023 - Week 36/37

· 2 min read
Niaz Faridani-Rad
Maintainer of LibrePhotos

I want to answer two questions: What is the best way to implement automatic image captioning, and what systems are the users of LibrePhotos using?

Fill out this questionnaire, to help me out! https://forms.gle/vJjzxwpXf5vwTm9v9

Upstream:

  • 🚀 LibrePhotos: You can now choose a different geocoding provider (Implemented by sickelap)
  • 🚀 LibrePhotos: We now provide an image with GPU support. Follow these instructions
  • ✨ Frontend: You can now remove a face from a person in the ligthbox
  • ✨ Frontend: You can now rename or remove a person in the face dashboard
  • ✨ LibrePhotos: Removed startup warnings
  • ✨ LibrePhotos: A lot of new and improved translations from the community
  • 🔨 Frontend: Fixed the place tree
  • 🔨 Frontend: Fixed a couple of issues when downloading server stats
  • 🔨 Frontend: Refetch photodetails when generating a caption
  • 🔨 LibrePhotos: Fixed more edge cases when reading face regions from exif
  • 🔨 LibrePhotos: Fixed an issue, where the same face would be detected twice

New Issues:

  • 💡 Album tags (Link)

If you are interested on how I develop this application, you can watch me develop features live on my channel


Sponsoring development:

My work is sponsored by 10 awesome people!

If you like the work I do, then you can support me via GitHub sponsors or via PayPal

Development: 2023 - August

· 2 min read
Niaz Faridani-Rad
Maintainer of LibrePhotos

I want to answer two questions: What is the best way to implement automatic image captioning and what systems are the users of LibrePhotos are using?

Fill out this questionnaire, to help me out! https://forms.gle/vJjzxwpXf5vwTm9v9

Upstream:

  • 🚀 LibrePhotos: You can now export server stats
  • ✨ Docs: New docs for photo list, exif fields, thumbnails, dev environment and delete feature
  • ✨ Frontend / LibrePhotos: Updated a lot of dependencies
  • ✨ LibrePhotos: Added an env to know the current version
  • ✨ LibrePhotos: Add reasonableness check for filename parsed dates (Implemented by EricInBj)
  • ✨ LibrePhotos: Fix marking a favorite, when writing to sidecar was enabled (Implemented by XanderStrike)
  • ✨ LibrePhotos: Remove deprecated endpoints
  • ✨ LibrePhotos: New summary endpoint
  • ✨ LibrePhotos: A lot of new and improved translations from the community
  • 🔨 LibrePhotos: Fixed opening shared albums resulting in a blank page
  • 🔨 LibrePhotos: Fixed empty names of persons
  • 🔨 Frontend: Fixed the public photos page
  • 🔨 Frontend: Fixed the social graph
  • 🔨 Frontend: Fixed a case where the Sign-Up button would not appear
  • 🔨 Frontend: Fix hover text in face dashboard
  • 🔨 Frontend: Fix duration in album modal
  • 🔨 Frontend: Fix user album deletion text
  • 🔨 Frontend: Fix saving timestamps
  • 🔨 LibrePhotos: Fixed an edge case in migration 0027
  • 🔨 LibrePhotos: Fixed upload setting, when using prod
  • 🔨 LibrePhotos: Fixed multiple edge cases when reading face regions from exif

New Issues:

  • 💡 Edit Person details - edit name (Link)

If you are interested on how I develop this application, you can watch me develop features live on my channel


Sponsoring development:

My work is sponsored by 10 awesome people!

If you like the work I do, then you can support me via GitHub sponsors or via PayPal

Development: 2023 - July

· 3 min read
Niaz Faridani-Rad
Maintainer of LibrePhotos

Upstream:

  • 🚀 LibrePhotos: Deprecated redis and redis-rq with django-q2

django-q2 will give us a lot of new possibilities. The most important one is, that the queue will actually be remembered. In the future the queue can be modified and has native options for cron jobs.

  • 🚀 LibrePhotos: More settings for face detection and face clustering

There are five new settings, which you can tweak, to make it better fit your dataset. I hope that there will be a couple of people who will try out all the different settings, so that we can find better defaults :)

  • 🚀 LibrePhotos: Scanning uploaded photos happens automatically when completed
  • ✨ Frontend: Load top groups first in PhotoListView
  • ✨ Frontend: Fetching photoDetails was refactored to RTK
  • ✨ LibrePhotos: Upgraded all dependencies
  • ✨ Frontend: Upgraded alot of dependencies
  • ✨ LibrePhotos: A lot of new and improved translations from the community
  • 🔨 Frontend: Fixed videos don't play when navigating to "Sharing" - "Shared with you" (...)
  • 🔨 Frontend: Fixed videos as cover_photos in sharing
  • 🔨 Frontend: Fixed scrolling down leaves empty spaces and invalid page
  • 🔨 Frontend: Fixed bad album alignment on mobile view
  • 🔨 Frontend: Fixed nextcloud import
  • 🔨 LibrePhotos: Fixed people thumbnails
  • 🔨 LibrePhotos: Fixed long running jobs not starting
  • 🔨 LibrePhotos: Fixed reading of exif data from .jxl files

New Issues:

  • 🐛 Video previews hangs when listing a huge amount of videos (Link)
  • 🐛 Drop-down menu judders (Link)
  • 🐛 Error creating Matpotlib cache (Link)
  • 🐛 Documentation Website Update (Link)
  • 🐛 Sharing high amounts of pictures with other user(s) fails (Link)
  • 🐛 Face training is ineffective (Link)
  • 💡 Optimize counter tiles on library page for mobile view (Link)
  • 💡 Add scan progress to library page (Link)
  • 💡 Allow to upload photos directly to user albums (Link)
  • 💡 Add Folders as an Photos view (Link)
  • 💡 Allow remembering credentials on login page (Link)
  • 💡 Add birthdate and other info for a face (Link)
  • 💡 Make faces be a possibility in more than one person in case of mistake (Link)
  • 💡 Remove face when looking at a photo if wrongfully assigned (Link)
  • 💡 Filter by Video/Photos on main screen (Link)
  • 💡 Switch to maplibre-gl and map provider (Link)
  • 💡 Allow users to upload media to shared albums (Link)
  • 💡 Increase max number of heavyweight workers (Link)

If you are interested on how I develop this application, you can watch me develop features live on my channel


Sponsoring development:

My work is sponsored by 8 awesome people!

If you like the work I do, then you can support me via GitHub sponsors or via PayPal

Development: 2023 - June

· 3 min read
Niaz Faridani-Rad
Maintainer of LibrePhotos

Upstream:

  • 🚀 LibrePhotos: You can now save captions (Implemented by abdulasiraj)
  • 🚀 LibrePhotos: Support reading XMP face metadata
  • 🚀 LibrePhotos: Uploading does not need CSRF_TRUSTED_ORIGINS anymore
  • ✨ Frontend: Clicking on the image icon in Face Dashboard now displays the original photo
  • ✨ LibrePhotos: Face Dashboard now re-renders less, which should lead to a better experience
  • ✨ LibrePhotos: Unknown - Other Faces, will now get matched to a person, if the confidence is larger than 50%
  • ✨ LibrePhotos: Finding confidence values for faces is now faster
  • ✨ Frontend: Logo linking to home
  • ✨ Frontend: Documentation is now linked in the sidebar
  • ✨ LibrePhotos: django-admin now contains all models
  • ✨ LibrePhotos: Performance improvements for a couple of endpoints
  • ✨ Frontend: A lot of fetching was refactored to RTK (Implemented by sickelap)
  • ✨ LibrePhotos: A lot of new and improved translations from the community
  • 🔨 LibrePhotos: Fixed opening shared albums resulting in a blank page
  • 🔨 LibrePhotos: Fixed empty names of persons
  • 🔨 Frontend: Fixed Videos don't show the player and left/right arrows are missing
  • 🔨 Frontend: Videos are now viewable in the light box in FaceDashboard
  • 🔨 LibrePhotos: Fixed a Timeout when loading persons with a lot of faces
  • 🔨 LibrePhotos: Fixed Timestamps not generating for IMG_20230101_A.jpg
  • 🔨 LibrePhotos: Fixed reading of exif data from .jxl files

New Issues:

  • 🐛 UserViewSet returns too much information for regular users (Link)
  • 🐛 Compose container renaming broken as described in docs (Link)
  • 🐛 Unable to browse and scan Nextcloud Directories (Link)
  • 🐛 Running Calculate Clip Embeddings doesn't work on read only files (Link)
  • 🐛 Sharing high amounts of pictures with other user(s) fails (Link)
  • 🐛 Face training is ineffective (Link)
  • 💡 Allow external process to signal file addition (Link)
  • 💡 Add "move face to unknown - other" and "delete face" options to image browser (Link)
  • 💡 Add hability to download albums (Link)
  • 💡 Improve docker image versioning (Link)
  • 💡 Docs on memory requirements (Link)
  • 💡 Ability to back up face scoring models (Link)

If you are interested on how I develop this application, you can watch me develop features live on my channel


Sponsoring development:

My work is sponsored by 9 awesome people!

If you like the work I do, then you can support me via GitHub sponsors or via PayPal

Development: 2023 - May

· 2 min read
Niaz Faridani-Rad
Maintainer of LibrePhotos

Upstream:

  • 🚀 Frontend: New profile page (Implemented by jcalado )
  • 🚀 Frontend: New admin page (Implemented by jcalado )
  • ✨ LibrePhotos: Add five new languages (Arabix, Hungarian, Portugues Brazil, Slovak and Urdu)
  • ✨ LibrePhotos: A lot of new and improved translations from the community
  • 🔨 LibrePhotos: Fix scan will not add JPG photos when set to readonly (Implemented by sickelap)
  • 🔨 LibrePhotos: Raw images are not getting scanned (Implemented by sickelap)
  • 🔨 LibrePhotos: Automatically created photo albums do not open
  • 🔨 LibrePhotos: Failure reading exif tags: Multiple tag issues returned, invalid use case
  • 🔨 LibrePhotos: Crash on Create Embed Clip
  • 🔨 LibrePhotos: Scan job exits with exception Internal Server Error: /api/jobs/ on ARM
  • 🔨 LibrePhotos: [CRITICAL] WORKER TIMEOUT on ARM
  • 🔨 LibrePhotos: "Calculate Clip Embeddings" looks completed but in fact is not
  • 🔨 LibrePhotos: Calculate Clip Embeddings stuck (like #758?)
  • 🔨 Frontend: Fix i18n label when missing credentials
  • 🔨 Frontend: Fix photoset immutability
  • 🔨 Frontend: Sort persons alphabetically
  • 🔨 Frontend: Fix Nextcloud types

New Issues:

  • 🐛 Photos are not uploading through the web interface (Link)
  • 🐛 sklearn ValueError: Expected 2D array, got 1D array instead: (Link)
  • 💡 Tell the algorithm when it found something that's not a face (Link)
  • 💡 Make face preview of OG photo either wide or zoom in on the face (Link)
  • 💡 Open original photo from faces tab (Link)
  • 💡 Add memories (Link)
  • 💡 Android App to give notification for memories (Link)
  • 🐛 With latest library dashboard with French language button are too small or non-responsive (Link)

If you are interested on how I develop this application, you can watch me develop features live on my channel


Sponsoring development:

My work is sponsored by 7 awesome people!

If you like the work I do, then you can support me via GitHub sponsors or via PayPal

Development: 2023 - April

· 4 min read
Niaz Faridani-Rad
Maintainer of LibrePhotos

Breaking change: You have to add CSRF_TRUSTED_ORIGINS with the URL you want to access it from in order to upload assets and if you want to access the Django admin panel / silk / swagger

Upstream:

  • 🚀 LibrePhotos: We now support Motion Photos from Samsung and Google Phones (Implemented by sickelap)
  • 🚀 Frontend: New library page (Implemented by jcalado )
  • ✨ Frontend: Migrate directory list to RTK (Implemented by sickelap)
  • ✨ LibrePhotos: Move to Django 4 and psycopg3
  • ✨ Docker: Use Ubuntu lunar
  • ✨ Docker: Add libjxl to dependencies
  • ✨ Docker: Bump to python 3.11, should give a performance boost
  • ✨ LibrePhotos: Django Admin now accessible under api/django-admin
  • ✨ LibrePhotos: Cluster size will now increase with increase of faces
  • ✨ LibrePhotos: Bubble up exceptions more consistently
  • ✨ LibrePhotos: Only calculate hash once (Implemented by savvasdalkitsis)
  • ✨ LibrePhotos: Improve /api/person performance
  • ✨ LibrePhotos: A lot of new and improved translations from the community
  • 🔨 LibrePhotos: Fix nextcloud job scheduling (Implemented by sickelap)
  • 🔨 LibrePhotos: Do not show hidden photos as a cover image for auto album
  • 🔨 LibrePhotos: Use BigInt for size, fixes a crash in scan photos
  • 🔨 LibrePhotos: Sort directories alphabetically
  • 🔨 LibrePhotos: Ensure that only persons for a given user are loaded in FaceListView
  • 🔨 LibrePhotos: Fix scanning behavior when rescanning a photo
  • 🔨 LibrePhotos: Always ensure that a cluster has a user
  • 🔨 LibrePhotos: Remove people without faces when clustering
  • 🔨 LibrePhotos: Fix error handling when categorizing photos
  • 🔨 LibrePhotos: Fix FirstTimeSetup when there is also a deleted user in the system
  • 🔨 LibrePhotos: Fix delete
  • 🔨 LibrePhotos: Fix check files
  • 🔨 Frontend: Do not show "finished task" twice
  • 🔨 Frontend: Count faces correctly
  • 🔨 Frontend: Truncate text in ModalPersonEdit
  • 🔨 Frontend: Show more useful values in worker logs
  • 🔨 Frontend: Invalidate UserList when you create a new user
  • 🔨 Frontend: Don't scroll when LightBox is open
  • 🔨 Frontend: Allow downloading images from lightbox
  • 🔨 Frontend: Center Lightbox image by overriding getTransform
  • 🔨 Frontend: Do not allow zooming for videos
  • 🔨 Frontend: Handle invalid token more gracefully
  • 🔨 Frontend: Fix album sharing
  • 🔨 Frontend: Fix header for shared albums
  • 🔨 Frontend: Fix avatar in sharing dialog
  • 🔨 Frontend: Keep mobile footer consistent
  • 🔨 Frontend: Rerender less in FaceDashboard
  • 🔨 Frontend: Remove cookies on logout
  • 🔨 Frontend: Fix padding and scroll issues in PhotoListView
  • 🔨 Frontend: Sort persons alphabetically (Implemented by Nerodacles)

New Issues:

  • 💡 Allow Users to Select Different Face Thumbnail (Link)
  • 💡 Ditch the predatory Mapbox for something that actually has a free tier (Link)
  • 🐛 Auto album generation stuck (looks like #584) (Link)
  • 🐛 Problem with Nextcloud import (Link)
  • 💡 Access to photo folders owned by other users (Link)
  • 🐛 Default timezone not being applied (Link)
  • 🐛 "Calculate Clip Embeddings" looks completed but in fact is not (Link)
  • 🐛 Errors in new Web UI (Link)
  • 🐛 Face dashboard displays a totally empty page on the latest dev (Link)
  • 🐛 Scan crashes on character '\udceb' (Link)
  • 💡 Added Assets processed by Rescan all Photos in Response (Link)
  • 🐛 Calculate Clip Embeddings stuck (like #758?) (Link)
  • 🐛 Undesired popup appears (Link)
  • 💡 Document secret.key (Link)
  • 💡 IPTC support? (Link)
  • 💡 Switch from FAISS to pgvector (Link)
  • 💡 Replace square_thumbnail_small with thumbhash (Link)
  • 🐛 Unable to display picture / run video from detail tab (original file) if accentuated : error 404 (Link)
  • 🐛 Scan keeps failing (Link)

If you are interested on how I develop this application, you can watch me develop features live on my channel


Sponsoring development:

My work is sponsored by 7 awesome people!

If you like the work I do, then you can support me via GitHub sponsors or via PayPal