DogmaDragon 43feb5909d Add URLs to plugins for better access and support
- Updated FileMonitor plugin URL to Discourse link
- Updated LocalVisage plugin URL to Discourse link
- Updated PlexSync plugin URL to Discourse link
- Updated PythonDepManager plugin URL to Discourse link
- Updated PythonToolsInstaller plugin URL to Discourse link
- Updated RenameFile plugin URL to Discourse link
- Updated SFW Switch plugin URL to Discourse link
- Updated SecondaryPerformerImage plugin URL to Discourse link
- Updated StashRandomButton plugin URL to Discourse link
- Updated TPDBMarkers plugin URL to Discourse link
- Updated ThumbPreviews plugin URL to Discourse link
- Updated VideoBanner plugin URL to Discourse link
- Updated VideoScrollWheel plugin URL to Discourse link
- Updated additionalFilesDeleter plugin URL to Discourse link
- Updated audio-transcodes plugin URL to Discourse link
- Updated bulkImageScrape plugin URL to Discourse link
- Updated chooseYourAdventurePlayer plugin URL to Discourse link
- Updated cjCardTweaks plugin URL to Discourse link
- Updated comicInfoExtractor plugin URL to Discourse link
- Updated defaultDataForPath plugin URL to Discourse link
- Updated dupeMarker plugin URL to Discourse link
- Updated e621_tagger plugin URL to Discourse link
- Updated externalLinksEnhanced plugin URL to Discourse link
- Updated filenameParser plugin URL to Discourse link
- Updated funscriptMarkers plugin URL to Discourse link
- Updated hotCards plugin URL to Discourse link
- Updated imageGalleryNavigation plugin URL to Discourse link
- Updated image_date_from_metadata plugin URL to Discourse link
- Updated markerDeleteButton plugin URL to Discourse link
- Updated markerTagToScene plugin URL to Discourse link
- Updated miscTags plugin URL to Discourse link
- Updated nfoSceneParser plugin URL to Discourse link
- Updated pathParser plugin URL to Discourse link
- Updated performerStashboxUrlToID plugin URL to Discourse link
- Updated sceneCoverCropper plugin URL to Discourse link
- Updated scenePageRememberStates plugin URL to Discourse link
- Updated setPerformersFromTags plugin URL to Discourse link
- Updated setSceneCoverFromFile plugin URL to Discourse link
- Updated starIdentifier plugin URL to Discourse link
- Updated stashAI plugin URL to Discourse link
- Updated stashAppAndroidTvCompanion plugin URL to Discourse link
- Updated stashNotes plugin URL to Discourse link
- Updated stashNotifications plugin URL to Discourse link
- Updated stashdb-performer-gallery plugin URL to Discourse link
- Updated stats plugin URL to Discourse link
- Updated tagCopyPaste plugin URL to Discourse link
- Updated tagGalleriesFromImages plugin URL to Discourse link
- Updated tagImagesWithPerfTags plugin URL to Discourse link
- Updated tagScenesWithPerfTags plugin URL to Discourse link
- Updated themeSwitch plugin URL to Discourse link
- Updated timestampTrade plugin URL to Discourse link
- Updated titleFromFilename plugin URL to Discourse link
- Updated untagRedundantTags plugin URL to Discourse link
- Updated videoChapterMarkers plugin URL to Discourse link
- Updated BlackHole theme URL to Discourse link
- Updated ColorPalette theme URL to Discourse link
- Updated Minimal theme URL to Discourse link
- Updated ModernDark theme URL to Discourse link
- Updated NeonDark theme URL to Discourse link
- Updated Night theme URL to Discourse link
- Updated Plex theme URL to Discourse link
- Updated PornHub theme URL to Discourse link
- Updated Pulsar theme URL to Discourse link
- Updated PulsarLight theme URL to Discourse link
- Updated RoundedYellow theme URL to Discourse link
- Updated FansDB Submission Helper userscript URL to Discourse link
- Updated StashDB Submission Helper userscript URL to Discourse link
2025-12-20 03:59:59 +02:00
..
2025-07-14 21:12:48 +03:00
2025-07-14 21:12:48 +03:00
2025-07-14 21:12:48 +03:00
2025-07-14 21:12:48 +03:00

Local Performer Recognition

https://discourse.stashapp.cc/t/local-visage/2478

A plugin for recognizing performers from their images using DeepFace. This plugin integrates seamlessly with Stash and enables automatic facial recognition by building or updating a local model trained from your existing image collection.

🔍 Features

  • Rebuild Face Recognition Model
    Completely rebuild the local facial recognition model using available images per performer.

  • Update Face Recognition Model
    Incrementally updates the model if performers have fewer images than the configured target count.

  • Automatic Server Control
    Easily start or stop the recognition server as needed—automatically starts when an image is queried.

  • Identify
    Click on the new icon next to an image to trigger performer identification.

📦 Requirements

Docker Usage

Because this plugin relies on tensorflow (the AI framework used), the official Stash docker image can't be used. See this post for details.

A Dockerfile has been created as a replacement to use compatible dependencies. You can find it in the plugin repository.

You have two options to use this image:

  • A working docker compose can be found in the plugin folder.
    • Only changes are the build section to use the modified Dockerfile, and a new port to expose that is the deepface server port (7860)
    • Use this command to rebuild your docker container: docker compose up -d --build --pull always
  • Build the image yourself
    • Run this to build it inside the plugin repo folder: docker build --pull -t stashapp/stash:LocalVisage -f Dockerfile .
    • Update your stash container configuration to expose a new port: docker run -p 7860:7860 ... stashapp/stash:LocalVisage ...

Once this image is built and running, you can skip the "Set Python Path" step below and enjoy the plugin!

Note

If you use a reverse proxy, you may encounter difficulties setting up the redirection to the deepface server.

URL used by the plugin is hardcoded inside the frontend.js file:
window.location.protocol + "//" + window.location.hostname + ":7860"

e.g. using https://stash.example.org will send requests to https://stash.example.org:7860.
But worse, using https://example.com/stash will use https://example.com:7860

⚙️ Tasks

Task Description
Rebuild Face Recognition Model Fully rebuild the DeepFace model for all performers.
Update Face Recognition Model Add more images for performers with less than the target image count.
Start Server Start the local DeepFace server if it's not already running.
Stop Server Gracefully stop the running recognition server.

🔧 Settings

Setting Description
Target image count per voy Number of images to use per performer when training the model. Default is 15.

🚀 Installation & Setup

1. Set Python Path to 3.10.11

To ensure compatibility with DeepFace and the plugins dependency resolution process:

  • Temporarily set the Python path in your system/environment to Python 3.10.11.

2. Rebuild the Model

Run the "Rebuild Face Recognition Model" task. This will:

  • Set up a virtual environment
  • Install all necessary Python dependencies (DeepFace, etc.)
  • Build the recognition model

3. Restore Python Path (Optional)

Once setup is complete, you can revert your Python path to its original version. The plugin will continue working with the generated virtual environment.

🖼 Usage

  1. Once the model is built, navigate to an image in your Stash UI.
  2. Click the Performer Recognition icon overlaying the image.
  3. The plugin will:
    • Automatically start the recognition server if it's not already running
    • Query the server to identify the performer
    • Display the matched performer from the trained database