mirror of
https://github.com/photoprism/photoprism.git
synced 2026-03-02 22:57:18 -05:00
People: Manually tag faces in pictures #1108
Labels
No labels
ai
android
api
auth
awesome
bug
bug
ci
cli
config
database
declined
deprecated
docker
docs 📚
documents
duplicate
easy
enhancement
enhancement
enhancement
epic
faces
feedback wanted
frontend
hacktoberfest
help wanted
idea
in-progress
incomplete
index
invalid
ios
labels
live
live
low-priority
macos
member-feature
metadata
mobile
nas
needs-analysis
no-coding-required
no-coding-required
observability
performance
places
please-test
plus-feature
priority
pro-feature
question
raspberry-pi
raw
released
released
released
research
resolved
security
sharing
tested
tests
third-party-issue
thumbnails
upgrade
upstream-issue
ux
vector
video
waiting
won't fix
won't fix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/photoprism#1108
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @graciousgrey on GitHub (Sep 24, 2021).
Originally assigned to: @omerdduran on GitHub.
As a user, I would like to manually tag faces in my pictures in case they were not automatically detected.
Related Issues / PRs:
Acceptance Criteria:
@lastzero commented on GitHub (Dec 28, 2021):
Please don't add funds to IssueHunt anymore! 🎁
While we like IssueHunt and are grateful for the donations we've received so far, it hasn't proven to be a sustainable funding option for us as we spend much of our time maintaining existing features and providing support.
If we don't have enough resources to provide support and bugfixes, we can't start working on new features.
@Anderen2 commented on GitHub (Mar 7, 2022):
I'd like to add a golden label to this one, if possible! (Tell me if this is not the way to request it) :)
@Szeraax commented on GitHub (Apr 30, 2022):
I'd happily accept just being able to tag people without any marker if that is much easier to implement. Would still expect that I can just search in the people area and see all images of that user regardless of whether there is marker or not.
@antoniomacri commented on GitHub (Nov 25, 2022):
I'm also very interested in this issue, or the simpler version which just adds people without markers.
Have you evaluated or found problems on kvalev proposal?
How could anyone help?
@graciousgrey commented on GitHub (Nov 26, 2022):
As mentioned in the ticket description, a prerequisite for this is a new photoviewer #1307 .
For adding people without a marker there is a separate issue: https://github.com/photoprism/photoprism/issues/1863
Users can help by becoming a member or by helping with issues marked "Help wanted" :)
@pluton-house commented on GitHub (Jan 9, 2023):
There are a number of disappointed Synology DiskStation users of PhotoStation, which has been deprecated in the new version of Synology's Operating System (DSM) version 7. The replacement, Synology Photos, ignores XMP data, so naturally those users who have spent years carefully manually creating People tags are furious and have been looking for an alternative. (see https://community.synology.com/enu/forum/1/post/145770 and https://community.synology.com/enu/forum/20/post/139889 for example). PhotoPrism has been cited as a possible replacement, but in its current form it too does not support the XMP tags.
The requirements to satisfy these people (including me!) are:
Otherwise, PhotoPrism seems to be generally superior to PhotoStation, so would be a welcome replacement.
Example JPG with XML tags here:
@graciousgrey commented on GitHub (Jan 9, 2023):
@pluton-house as far as I can see we do have open feature requests for all the points you mention. Feel free to leave a 👍 in them
#554
Manually adding faces it the topic of this issue. Removing faces as well as changing assignments is possible already.
This is also possible
#402
@cerealcable commented on GitHub (Jul 27, 2023):
I'm going to work on manually adding face markers to the UI following @lastzero's commit for #1548, though out of scope for the work I'm going to do here is making them available for future recognition. This would be just being able to mark faces that aren't currently recognized automatically.
@lastzero commented on GitHub (Jul 27, 2023):
@cerealcable When using the new
POST /api/v1/markersendpoint, it should be enough to submit theFileUIDandX,Y,W,Has relative coordinates, so floating point numbers between 0 and 1, e.g. W = 0.1 if the width of the face is 10% of the image width. Unfortunately, I'm not 100% sure anymore if the height is relative to the image width or relative to the height, for some reason. I probably chose an implementation that is compatible with the detection library we use. You can find out by checking the values of automatically detected faces - or otherwise ask for help! :)@Blendan1 commented on GitHub (Nov 2, 2023):
I used the new api to create a chrome plugin that allows you to manually mark faces
https://github.com/Blendan1/PhotoPrismFaceMarker
There's still some documentation missing and the UI and UX needs some polish, but I will implement those things in the coming days.
Feedback, questions or requests are welcome.
@Blendan1 commented on GitHub (Nov 3, 2023):
@lastzero I got a question for the API, as I'm using it in my extension:
Will the manually marked faces also be used to improve face recognition in some way?
@thfrei commented on GitHub (Nov 3, 2023):
@Blendan1
Very nice. It works fine for me and is very nicely integrated into the main UI. Thank you for your work.
For further reference:
From a UX perspective, I think it would be very nice to make the picture available in the "faces" section always. Like this one can just go to the next image and manually check if there are faces that were not recognized.
@Blendan1 commented on GitHub (Nov 3, 2023):
@thfrei
Thank you for the feedback, the UI changes with showing the full picture in faces is definitely on my list and I will get to that as soon as I have time.
Also many thanks for explaining how to use it, sorry that I forgot to add that, I will update the readme with those instructions ASAP.
Btw. When you draw and you right click you cancel the draw without closing the image.
I hope to be able to implement all UX and UI changes that I have planned (better popup, full image in faces, better instructions, adding names in popup?) Will be done by the end of the week
@Blendan1 commented on GitHub (Nov 3, 2023):
I just wanted to add that the X and w are relative to the image width and the y and h to the image height, for anyone planning on working on something with this api
@lastzero commented on GitHub (Nov 3, 2023):
@Blendan1 Since manually marked faces are unlikely to meet the requirements of the machine learning model we use, they are currently not automatically matched or clustered. If it later turns out that this is not the case and many/most can actually be used with the model, then we can reconsider this.
@Blendan1 commented on GitHub (Nov 6, 2023):
Hello everyone,
Today I want to share the state of my project (PhotoPrismFaceMarker) with you:
Update
Current Roadmap (sorted by priority):
New Installation Method
As stated in the roadmap mobile support is planned, but there's (at least to my knowledge) now was to install extensions in chrome mobile and having to install an extension on every browser where you want to use the feature (and update that manually) is a bit much for me.
So here is the solution i came up with:
Currently I only have docs for Nginx as that's what I'm using so fell free to contact me for adding other options.
I created the project SimpleJsServer that allows to host all JS in a dir as a single file in a simple way, that way it can be injected into the page by Nginx on load so that no extension installation is needed and every device gets the save addon version.
The Readme.md from SimpleJsServer shows the details for the setup, afterwards just copy the
contentScript.jsfrom PhotoPrismFaceMarker into the folder and your all setup.Remember to uninstall the extension in chrome to avoid conflicts
I'm planing on also updating PhotoPrismBulkEditor to have the same
contentScript.jsso that you can install it the same way and it can also be used on mobile.Another thing I'm also planing on releasing a npm package with an api allowing easy modification of the PhotoPrism Frontend, so that this can become an unofficial way to make addons
As always Feedback, Questions and Requests are welcome,
Have a great day everyone
@Blendan1 commented on GitHub (Nov 6, 2023):
@thfrei This update contains the cage you requested, I hope I implement it in the right way.
@maxime1992 commented on GitHub (Nov 6, 2023):
@lastzero about your comment, I've got a few questions.
I really want to tag more people in my picture that haven't been found automatically. I'm wondering though:
Thanks a lot
@thfrei commented on GitHub (Nov 28, 2023):
@Blendan1 I have to admit, I love this approach. It's ingenious. However it also makes me feel uneasy to deliver an application that has automatically injected JS, even if I do it myself. I guess, I'll need to wait for photoprism to properly support Face-Tagging. I hope they get inspired by your solution!
@Blendan1 commented on GitHub (Nov 28, 2023):
@thfrei I get that, my thoughts on that are just that the plugin does exactly the same thing, but it will only work on chrome desktop. So as long as I'm in control what's the worst that could happen?
Answer: the same worst case as with a plugin
That's why I think this approach is the next best thing to manipulating the source files itself
@strugee commented on GitHub (Nov 28, 2023):
Why not just do that then and upstream your code? 😉 sounds like you've already got a lot of the functionality working!
@JezausTevas commented on GitHub (May 26, 2024):
It has been over two years since this feature was requested, accepted, tagged with a "priority" badge and even a third-party solutions were deployed to address it. Is it ever going to be implemented into the project?
I know there are other features to implement, but the backend API is already there, we just need the UI button to submit it.
@KevinGelking commented on GitHub (Jun 11, 2024):
I'd like to chime in and say that I, too, would love this feature added.
As a compromise for now, I'd be OK with having a field in the picture settings that has a LIST of all detected people in the picture, even if there's no 'face-square' associated with it. These would be excluded from the algorithm but show up when searching for the person.
Here's my case:
When I visited my gf in her country we took I took quite a lot of pictures including her or us. On most pictures the face is detected... on some it isnt. Now, if I search for either her or me, I get most pictures, but not all. To find all I either have to custom-make an album (defeating the person detection) or search for it in the whole collection.
Another case:


Sometimes the face detection does... weird things. Like detecting something in the background as a face while completely ignoring the faces. You COULD add this 'face' as the person, but that will mess up the algorithm.
E.g. here's a picture that, in my opinion, clearly shows two faces. The face detection detected one, and the 'face' is the rim of the girl's glasses.
@GlassedSilver commented on GitHub (Jul 8, 2024):
I wonder how much of that may be attributed to "wrongly trained" face models for when you tag people with their faces partially hidden, obstructed, etc...
Which reminds me it'd be so sweet to tag people instead of just faces.
This would be SO very, very important for cosplay photography where the face is WILDLY different every time, but you still want to be able to quickly bring up a person's associated pics.
@graciousgrey commented on GitHub (Jul 8, 2024):
@KevinGelking @GlassedSilver Tagging people without adding a face marker is planned as well:
@kevincox commented on GitHub (Jul 8, 2024):
Part of the problem is that PhotoPrism doesn't offer an alternative to this right now. You options are often to tag an obstructed face or not have the photo associated with the person.
@GlassedSilver commented on GitHub (Jul 8, 2024):
That's my point indeed 👍
Oh excellent, I must have missed that one, thank you so much for the issue, I've subscribed to it right away! :)
@KevinGelking commented on GitHub (Jul 8, 2024):
Having that feature would be ideal, because <1st> it wouldn't mess with the algorithm (in my example I have the option to add one of the detected faces, but it's obviously not detected correctly) and <2nd> it would allow for me to add people that are present in the picture but were not detected (in my example one face was detected, no way to tag the other person)
@DavidBertet commented on GitHub (Feb 23, 2025):
I built an initial version of what that could look like.
You can add / move / resize a marker, then select and assign a person to it. I'm open to feedbacks before to cleanup the code and submit something.
https://github.com/user-attachments/assets/c1ccda16-4a1d-4f37-ad2e-d33b17c8f58e
@lastzero I didn't check yet how automatically detected faces work
@pluton-house commented on GitHub (Feb 24, 2025):
That's looking really good! Could there also be an option to (perhaps temporarily) also show the names on the overall picture, next to or inside the face boxes? Then checking becomes a one-step process instead of two.
@GlassedSilver commented on GitHub (Feb 24, 2025):
I know this may be off-topic because it doesn't add to the code directly, but I hope adding to morale counts as well in a world where FOSS developers and maintainers suffer burn out and difficult community culture:
I love you!
@lastzero commented on GitHub (Mar 10, 2025):
@DavidBertet Hi David! I'm very sorry for the delayed response. The last few weeks have been crazy busy for us. You are welcome to message us directly via Matrix/Element for any development related questions:
Regarding your questions:
Automatically detected faces will have the marker_src / MarkerSrc set to "image", while manual markers should have this attribute set to "manual" - just like manually added labels.
In exactly the same way, except that you set the source to "manual". I've already extended our REST API for this, and would be happy to do further work on it if needed for you to proceed.
If a face is manually tagged, we could theoretically generate an embedding for it. However, it's possible (and likely) that users will tag people from behind or in other ways that aren't suitable for automatic matching - thus causing conflicts and/or false positives. So without testing it in practice, it's hard to say if this makes sense, or if it complicates things and doesn't help the user experience...
@Oniric75 commented on GitHub (Apr 21, 2025):
you are the boss ! i'm trying different photo manager just to get this kind of option because it's so annoying otherwise ...
i don't understand why it's not a default option ...
do you know when you plan/can push this major upgrade ? i can't manage to get the option in the release version, i tried "experimental feature" but no more luck.
i'm currently using synology photo since several years, but i'm tired of this same issue (not been able to add people manually when they have a mask or from behind & Co)