95 lines
3.7 KiB
Markdown
95 lines
3.7 KiB
Markdown
# Star Identifier
|
|
|
|
https://discourse.stashapp.cc/t/star-identifier/3761
|
|
|
|
https://github.com/axxeman23/star_identifier
|
|
|
|
## Intro
|
|
|
|
Star Identifier uses [facial recognition](https://github.com/ageitgey/face_recognition) to automatically identify who is in images or scene screenshots from the performers already in your [Stash](https://github.com/stashapp/stash) library.
|
|
|
|
## Requirements
|
|
|
|
### Python3
|
|
__version: 3.10.x +__
|
|
|
|
#### Installing Python
|
|
|
|
1. Download Python [here](https://www.python.org/downloads/)
|
|
2. Install & add to your PATH
|
|
3. Configure Stash to use Python (if necessary. This can be set in the `System` tab of your `Settings` page)
|
|
|
|
### Libs & Dependencies
|
|
|
|
#### CMake
|
|
|
|
For Windows:
|
|
|
|
- You'll also need to install Microsoft Visual Studio 2015 (or newer) with C/C++ Compiler installed. [Link here](https://visualstudio.microsoft.com/downloads/)
|
|
- Install and add CMake to your PATH. [Link](https://cmake.org/download/)
|
|
- For more details, see [this issue](https://github.com/ageitgey/face_recognition/issues/175)
|
|
|
|
For Mac & Linux:
|
|
`brew install cmake`
|
|
|
|
#### Python Libraries
|
|
|
|
1. numpy
|
|
2. dlib
|
|
3. face_recognition
|
|
|
|
`pip install numpy dlib face_recognition`
|
|
|
|
For more details, see the [Face Recognition installation instructions](https://github.com/ageitgey/face_recognition#installation).
|
|
|
|
### Plugin Files
|
|
|
|
You'll need the following in your `plugins` folder from this repo. Copy `star_identifier.yml` to the `plugins` folder, and the rest of the files to a folder called `py_plugins` inside the `plugins` folder. If you already have `log.py` in `py_plugins`, skip copying that one (it should be the same)
|
|
|
|
```
|
|
star_identifier.yml
|
|
py_plugins:
|
|
| log.py
|
|
| star_identifier_config.py
|
|
| star_identifier_interface.py
|
|
| star_identifier.py
|
|
```
|
|
|
|
## Config
|
|
|
|
### Paths
|
|
|
|
Running the plugin will create a folder. By default, this will be created in your `plugins` folder, but you can change that in the config.
|
|
|
|
Face encodings will be saved to that new folder. The encodings file will be roughly 1MB per 1,000 performers.
|
|
|
|
### Stash Settings
|
|
|
|
Star Identifier uses a tag to find images or scenes you would like identified. By default, that tag is `star identifier`.
|
|
|
|
Since the recognition is based on a single performer image, that image needs to have a pretty clear front-facing view of the performer's face. If face_recognition fails to find a performer's face, Star Identifier will tag that performer with `star identifier performer error` by default.
|
|
|
|
### Star Identifier Settings
|
|
|
|
You can adjust the tolerance for identification here. `0.6` is default and typical, but I've found `0.5` to work well. Lower is more strict.
|
|
|
|
## Running
|
|
|
|
### Export Performers
|
|
|
|
This is the first step. Star Identifier loads each performer's image, encodes their facial features into a numpy array, and saves those arrays. The clearer the face of the performer, the better identification results will be. Performers whose faces are not recognized by face_recognition will be tagged for you to update as desired.
|
|
|
|
This only needs to be run once, or after new performers are added or have updated images.
|
|
|
|
### Identify Images
|
|
|
|
This loads all images in the stash database tagged with `star identifier` (by default), compares the recognized faces to the exported face database, and then adds all potential matches to those images as performers.
|
|
|
|
### Identify Scene Screenshots
|
|
|
|
This loads the screenshot for every scene in the stash database tagged with `star identifier` (by default), compares the recognized faces to the exported face database, and then adds all potential matches to those scenes as performers.
|
|
|
|
## Upcoming roadmap
|
|
|
|
See [issues](https://github.com/axxeman23/star_identifier/issues)
|