Description
Checklist
- I am using an up-to-date version.
- I have read the documentation.
- I have searched existing issues.
Description
To begin with, I'm aware of TagStudio way of thinking for AI related stuff (mentioned in the readme) and consider that this feature could be integrated totally locally without any dependency on external online services and compromising user privacy.
To get a better understanding of how this feature could work, having some bases on how YOLO models used will help. (As I'm going to use YOLO models as a example). As a quick tldr; YOLO models can be trained to perform multiples actions, in this case we would be interested in Image Classification and Objects detections.
So here is how I see it, this feature would be added as a new menu AI assisted tagging
. From there, you could choose to select non-tagged entries, or select specific entries if they meet certain criteria, such as having the same sub-directory. I would additionaly see the possibility to have a right-click option when selecting multiples entries from the UI to process them with the "AI assisted tagging
" feature.
The AI tagging would work as follow (again, assuming YOLO models, but a lot of models work in similar ways). The feature would support two modes, Image Classification, where only one TAG is added as a result, and Objects detections, where multiples TAG could be added as a result.
For Image Classification: The user would first need to map all of the model known "classification" to a specific TAG in TagStudio, alternatively a option to ignore a specific classification could be provided. The user should also be able to export and import this configuration. As for the inference and how TAG would be added, we would take from the inference results the classification that has the biggest probability of beeing right and add to the TagStudio entries the TAG associated.
For Objects detections: The user would first need to map all of the model known "objects" to a specific TAG in TagStudio along with the minimum probability (likelihood) of the object really be present in the picture/video, alternatively a option to ignore a specific object could be provided. As for the inference and how TAG would be added, we would take the detected objects, verify each objects to ensure they are bigger than the minimum probability allowed, and add the TAG to the TagStudio entry.
This is the main idea of the feature, of course I think there could be others nice additions such as adding a toggle to make the feature semi-automatic, meaning it would manually confirm for each entry the TAGs to be added with the user before adding them.
Don't hesitate to talk about it and give your ideas, I'm interested in other points of view too.
Would also close (complete) #326. Again this would be done totally locally from the python app itself, libraries already exists too.