Role Tagger

:placard: Summary Adds a “Roles” tab to the scene page for tagging each performer’s role in the scene (e.g. Security Officer, Dominant, Top).
:link: Repository https://codeberg.org/HeMan/role-tagger
:information_source: Source URL https://heman.codeberg.page/stash-plugins/index.yml
:open_book: Install How to install a plugin?

Role Tagger

Know who’s doing what in your scenes and images

A Stash plugin that tags each performer’s role within a scene or image, with multi-select tagging, performer-card badges, performer-to-performer relationships, per-performer rollups, group/gallery role tables, and automatic scraping from IAFD and GEVI.

Full docs live on the wiki.

New here? Start with Getting Started, which also links four ready-made starter packs (General, BDSM, Lesbian, Gay) if you’d rather import a vocabulary than build one from scratch.

Features

Full writeups for everything below live on the Features wiki page:

  • A Roles tab on the scene page, and the same tagging inside the Details tab on images: multi-select, creatable role tags, multiple roles per performer per item. Same behaviour exists in the details tab of images.

  • Relationships: link two role tags together (e.g. Protagonist ↔ Antagonist) so a scene with 3+ performers can say who did what to whom, not just who has which tag. Optionally pin a relationship to a scene marker, then click it to jump straight to that timestamp.

  • Role badges on performer cards, and a role-grouped rollup with a per-split percentage breakdown on the performer page - switch the rollup between Scenes/Images, filter by role/split, and bulk-apply a role to a selection.

  • Read-only performer x role matrices on group and gallery pages (opt-in, rolled up live from the group’s scenes / gallery’s images.

  • Splits organize your role vocabulary into named groups (starts out as Main/Sub, but delete/edit/add as many as you like), each optionally with its own colour for the pill badges.

  • Settings → Tools → Manage roles is the one place for all role/split housekeeping - add, rename, delete, reorder (drag-and-drop, with collapsible sections), move roles between splits, and rename a role everywhere it’s already assigned, library-wide.

  • Export/Import: download your splits as a file, or import one - always additive, never touches anything you already have. This is also how the starter packs work.

  • IAFD Dictionary: the table this plugin uses to decode IAFD’s messy compound strings (Anal Facial DP DAP Squirt Swallow A2M) is user-editable, with a fallback per-word dictionary for anything not already recognized.

  • Scrape roles automatically from IAFD and GEVI, per scene, in bulk for a performer, or library-wide - see Scraping.

  • A task to auto-tag performers in Solo/Solo Male/Solo Female scenes, no scraping needed.

  • Optional: auto-apply a scene tag when an assigned role matches an existing tag name (case-insensitive, opt-in, with a per-role exclusion list).

Installation

Requires Stash v0.31+ (custom_fields on scenes).
Windows/Mac users note: This plugin requires a python3 command on your Stash server’s PATH. More info on installing Python for your system over at the Wiki.

Docker users already have this, and can continue straight to the one-click install below.

One-click, via a plugin source (recommended)

  1. In Stash, go to Settings → Plugins → Sources and add https://heman.codeberg.page/stash-plugins/index.yml as a source.

  2. Role Tagger now shows up under Available Plugins, then click Install. Future updates will be delivered here.

8 Likes

Cool plugins bro. I don’t have an idea when I should use this yet though.

Perhaps only one way I can think of it is maybe “Cosplay” type of scene?

Thanks dude! Cosplay could be a great use for it. It could be used for anything really. IAFD’s scraper offers subtext about who’s receiving a facial in a scene with a lot of performers, which could be helpful info before pressing play. BDSM enjoyers could use it for Dominant/Submissive/Switch. Themed content enjoyers could use it for Teacher/Student, Step-Father/Step-Daughter. Gay people could use it for Top/Bottom/Versatile. Possibilities are open for all of it.

1 Like

Cool plugin. Any thoughts on having it apply tags to the scene when a role is assigned to a performer that matches a tag? For example, performer is assigned “Dominant” role so the tag “Dominant” also gets applied to the scene.

There is another plugin,Scene Marker Tags to Scene, which does something similar for markers.

Yeah, really nice idea. I’ve made it a ticket and I’ll work on it shortly: #6 - Auto-tag scene when a performer's assigned role matches a tag name - HeMan/role-tagger - Codeberg.org

Edit: Published an update for this. There’s a new “Auto-tag scene from assigned roles” option in plugin settings you can turn on :slight_smile: There’s also a “Roles to never auto-tag” box to fill in if you find yourself in the situation where you want to auto tag some roles, but not others.

2 Likes

Nice plugin:-)

The pulldown menu when selecting an existing role name is very short, please enlarge to make selection easier.

Suggestion: If you click on a role badge, a window pops up and shows all performers who have that role. Would that be possible?

If I rename a role in the settings, is that new name automatically applied to the assigned performer roles? If not, is that possible?

Thanks! :grinning_face_with_smiling_eyes: Could I please get a screenshot of the issue with the role name dropdown? Just trying to figure out the visual issue (whether horizontally or vertically short, and whether there’s a theme involved). When I know more, I’ll make the bug ticket.

For the other two features, I’ve made tickets and I’ll get to them shortly :slight_smile:

#7 - Clicking a role badge to show all performers with that role - HeMan/role-tagger - Codeberg.org

A minor issue. On the performer page, the checkbox to select multiple scenes doesn’t work. I can get around this by enabling the roles tab. This just moves the problem to that tab instead of the scene tab.

It might also be nice to be able to do bulk updates. I don’t know that I need that but typing this made me think of it.

1 Like

Both tickets done, tested, and published :grin: Things to try:

  • Click a role badge to see who else has it. On a performer card, clicking one of their role badges (e.g. “Dominant”) now pops up every performer in your library who’s also tagged with that role. Handy for browsing “who else does this.”
  • Renaming a role now actually renames it everywhere. Previously, editing a role name in settings only changed the option going forward, while old scenes kept the stale name. There’s now a “Manage roles” tool under Settings → Tools where you can rename a role in place, and it rewrites every scene already using it.

Apologies. I’ll hop on this as the next prio ticket!

1 Like

Just published an update now :slight_smile:

From the roles tab, you can multi-select scenes and the role augmenter dropdown at the top should change to this:

Only works on a performer’s page for now, but give it a spin and let me know how it works for you.

1 Like

Role badge popup works, thank you.

Renaming issue - it changes the role in the settings and in the pulldown menu after renaming in Tools, but an already assigned role doesn’t change.

Regarding the pulldown menu for role selection in the scene menu, it shows (at least for me) only 3 rows, better to show more rows.

The multi-selection didn’t work for me.

Anyone else having same issues?

Ah yes, did the task finish successfully? It took about 10 mins to do a full rename across 500 scenes for me. If it did, the logs will reveal what happened and would be really useful to me.

I think it’s best if I make a ticket to drop role management from Plugin Settings altogether and keep all role management (adding, editing, deleting) under Tools exclusively so it doesn’t live in two places.

Also another slight bug, after multi selection of scenes and application of roles, the page needs to be reloaded. Making a bug ticket for that now.

I should add that I don’t have Python installed. But I understood, that this serves only for scraping, right?

Hmm, good call. The scraper logic is only primarily Python right now. Edit: I forgot it’s used in bulk tagging (doh!). I have a bunch of plugins already, one being PythonDepManager from community scripts.

I’ll spin up another fresh instance of Stash with no other plugins and test from there to confirm if that’s needed though.

I installed Python 3.14 and now renaming works and also multiselection! :grinning_face:

1 Like

Sweet! I’ll add it to the install requirements in the readme soon. A vital step I missed, since my Stash is already full of Python dependent plugins :sweat_smile:

Update 1.6.2: “Doing The Splits”

Massive splits overhaul. I got some feedback that a hard defined two-split system is restrictive, so on the latest update, any number of splits/parents can be defined.

You’ll have “Main” and “Sub” after updating, with the option to rename those, define more splits, and move your tags around.

The tag setting method via Plugin Settings has been retired and removed from the latest release, and can only be managed via Settings → Tools. It will look something like this:

This enables you to define whatever you’d like in terms of splits, and it allows you to rename tags/splits, move a tag to another split, or remove a tag/split entirely.

What the splits enable is a more fine-grained experience on a performer profile. Below example of a performer’s profile with only one scene, but there’s a lot going on in that scene.

Feedback welcome on this latest release, and excited to hear how y’all use the additional splits :grin:

1 Like

Multiple select is working for me now. I didn’t check any of the other recent changes yet.

1 Like

The addition of splits is great! Is there any chance you can add the ability to reorder tags (both within splits, and the order of splits themselves)?

1 Like