Visage

:placard: Summary Use facial recognition to lookup performers from scene sprites, images.
:link: Repository https://github.com/stashapp/CommunityScripts/tree/main/plugins/visage
:information_source: Source URL https://stashapp.github.io/CommunityScripts/stable/index.yml
:open_book: Install How to install a plugin?

Visage is a Stash plugin that identifies the performers in your content. Point it at a face in a scene or image, and it matches that face against a curated performer database, then shows you side-by-side candidates so you can confirm who it is and add them in one click.

How it works

  1. Select a face in the current scene frame or image (or let Visage scan the whole frame) using the options in the Operations, Hamburger Menu (Next to the organize button).
  2. Visage sends that frame to a recognition backend.
  3. The backend compares the face against a performer database and returns ranked candidates with a confidence score.
  4. You pick the right performer, and one click adds them to the scene or image.

Getting started

On first run, Visage asks where to run recognition:

Hugging Face cloud: zero setup. (Face images are sent to the cloud service.)

Your own server: run the private backend on your network if you’d rather images never leave it.

Switch backends anytime via the settings gear in the results window.

How to use the plugin

  1. Open a scene in Stash.
  2. Click Visage: Current Frame in the scene toolbar.
  3. Drag a box around the face you want to identify, or press Enter to scan the whole frame at once.
  4. Visage opens a results window with the matching performers, ranked by confidence.
  5. Click a card to confirm your pick (click again to unconfirm), or hit Auto-select to pick every match at 90%+ confidence.
  6. Click Done — the confirmed performers are added to the scene.

Tips:

  • Sort matches by Confidence, Name, or Hits to find the right person faster.

  • Use the arrow keys + Enter to navigate and confirm without a mouse.

  • On image pages, Visage is available from the Image Operations menu.

  • Catching everyone in a video in one pass? Use Identify performers from sprite instead, it scans the whole video’s frame index at once.

  • Importing a performer needs a stash-box provider (named “StashDB”) set up in Settings → Metadata Providers. Visage will warn you if one isn’t configured.

That’s it, face found, performer tagged, done.

1 Like
1 Like

Thank you, this is amazing! Very nice usability advances compared to the original plugin years ago as well.

1 Like

Whether it’s the PC interface or the mobile interface, I didn’t see any UI.

hi xjdieid, The menu items have moved into the hamburger menu.

I’ve figured out the problem: if the system language is Simplified Chinese, the UI won’t show, but it works fine when switched to English. I haven’t tried other languages.

should resolve that.

Super cool, works great! One question, i’m not able to Select a face in scenes. As soon as I choose “Visage current Frame” it immediately starts recognition. Am I missing something?

1 Like

@jeepaleep with firefox it worked for me as described.

  1. press the “Visage: Current Frame”
  2. Mouse change to an plus sign + message on top of the site “Drag to select a face - Enter to scan the whole frame - Esc to cancel

@cc1234 would be nice if the configuration is also available on the plugins site.

Has anyone else noticed that the matches using hugging face backend are way off? A well-known person will match with someone that looks nothing like them.

Yes, i got the same problem - since yesterday. Even Angela White is recognized as a man. Weird…

Very useful for identifying performers from studios who don’t always list performers.

A few comments:

  1. It would be nice if the visage server URL could be persisted as a server wide setting & didn’t need resetting every time your browser storage was cleared

  2. After setting a local server the visage plugin UI still shows “Cloud (Hugging Face)” but lists the local URL under it on the settings page. The URL under “Local” gets reset to localhost

  3. calibration.json seems to be missing for the server

1 Like