I’m currently working on a new credits system to replace scene performers and directors. I’ve talked about this before, but I thought I’d solicit feedback before I finish up the implementation in case I’ve missed anything.
Scene credits include a performer, alias and a credit role. The roles are customizable by admins to suit the content of the stash-box instance. The default roles are Performer and Director to match the old implementation.
Additionally, credits can have tags attached. The tags that can be attached are defined by the role, and can be customized. By default there’s no valid tags. The idea is to be able to match IAFDs performer tags with NonSex, Top, DP, etc., but of course that’s up to the community.
We don’t strictly speaking have to use tags, it’s just convenient. But it does potentially lead to a situation where we have to create tags that don’t make sense for scenes, to be able to tag credits.
Migration to the credits system is straightforward for performers, but unfortunately a bit bumpy for directors since it’s a free-text field. The migration will create new performers for each director, grouped by network. The performer name is the same as the director credit, with {network}, migrated director set as the disambiguation. So for instance Rocco Siffredi ends up with these dupe director performers:
Rocco Siffredi(Evil Angel, migrated director)
Rocco Siffredi(Adult Time (Network), migrated director)
Rocco Siffredi, Lorenzo Siffredino(Adult Time (Network), migrated director)
Rocci Siffredi(Adult Time (Network), migrated director)
The total for StashDB is 7075 directors which have to be cleaned up. Which isn’t great, but also not terrible. I can’t think of a much better way of doing it. Cleaning should just involve merging back into the existing performer, splitting composites, and removing disambiguation if there’s no existing performer.
Do we need a new qualification for inclusion for directors? Not sure if all of them would meet the criteria for inclusion in stashdb as a “performer” unless we make both fields free-form text
Creating a more flexible system like this makes sense for the variety of stash-boxes out there, but it also sounds like we’ve drifted pretty far away from what a “performer” is at this point. It raises a lot of questions for me. Does that mean we need to change the labelling of “Performers” throughout stash-box to something more generic, like “People” / “Credits” / “Profiles”? How does that affect the styling of these attached credits throughout Stash-Box? Will performers who directed their own scene be listed twice, or will the credits be combined? Where do scene aliases and (possibly) character names fit into all of this? Is this a change that should carry over to Stash as well? For StashDB specifically, should we extend these credits to even more roles, like writers and producers?
Sorry, I know that’s a lot of questions. Several of these are also partially echoing Feederbox’s question: Essentially, is the intention to only add director credits to existing performers? Or to give every director their own profile? Again, since we have stash-boxes that cover such a wide variety of content (fan-created PMVs, animations, etc.), a more flexible system that can be used for a wide variety of credits (editors, animators, characters, writers, etc.) is probably necessary. I’m not trying to shoot down the idea, just to examine it from all angles as I try to imagine what it would look like in practice.
Honestly, I’m not so sure about tying these descriptors to the larger tag system. I’m concerned that this would end up being more complicated in the long run:
Normal tags already need to be named and defined to cover an increasingly wide variety of contexts as it is, and right now they only apply to Scenes within Stash-Box. Each new object that they can apply to (performers, galleries, images, markers, and now individual credits) increases the number of factors we have to consider, making the job of maintaining a large tag set increasingly complex. Some of those expansions in complexity will be worth the effort, but I don’t believe this situation is one of them.
Tags are already in a tricky space in regards to editing permissions. Right now, we’re using a stopgap EDIT_TAGS role to limit destructive edits from less trusted users. Not every stash-box does that, and it’s still unclear what the long-term solution will be for tag permissions. This could muddy the waters even further when deciding how much control admins or mods should have regarding tag edits.
This last point could just be a “slippery slope” argument, but it’s something I’ve been thinking about. Basically, I worry a little about what signal this would send to the userbase about long-term design for attaching tags to performers within Stash-Box. Let’s take your example of IAFD’s DP tag, along with others like Anal, Facial, Swallow, etc. If we’re just attaching standard tags like these to performers, it would be entirely reasonable to ask, “Can we also attach tags for these other acts, positions, hair colors, breast types, etc. using the same system?” Frankly, I think this design would encourage that expectation within a userbase, and could become an enduring source of tension. A broader system for performer-specific scene tags has been a long-standing request, which honestly could solve a lot of issues with tag maintenance. But I don’t believe this is a system that can be expanded to solve it without introducing even more problems. (I have some ideas on how we can expand the markers system instead, but that’s another conversation.) The whole point of these labels is to have some way of communicating quickly and clearly, “This is who is in the scene, and this is their broader role within it,” particularly when those performers have varying degrees of participation (e.g., Performer X is a full participant, but Performer Y is a non-sex observer, and Performer Z is a non-nude cameo). The more flexible we make the system, and the more we expand its usage past a limited set of descriptors, the more we risk undermining its usefulness as these quick and clear descriptors.
Instead, I’ve always imagined these as a limited set of bespoke labels, created and defined by admins solely for the purpose of calling out non-sex, non-nude, cameo, etc. (I believe I wrote a Github issue describing all of those a long time ago.) It sounds like the idea already involves some kind of admin panel (similar to the “sites” section for link categories?) in order to define what “roles” are available in the stash-box. Wouldn’t it be easier to use the same admin panel to create a list of available labels for each role? And maybe to add a short description defining that label, which would pop-up when a user hovers over it just like a tag description.
This way, we’re not making the job of tag maintenance any more complicated, every label is completely controlled by the admins regardless of what tag permissions look like, and the design implies a more specific usecase without unintentionally encouraging scope creep.
This could take a long time to clean up, especially if we don’t have an efficient workflow set up to find and handle all of these. Remember how long it’s taken us to manually merge and split all of the performers created by those initial bulk imports? 7k is undoubtedly a much smaller scale than the imported performers, but it’s still a lot to sort through. Plus, I don’t know what this would look like for other stash-boxes performing the same migration.
Outside of some script that could do a lot of the heavy lifting for us (which I’m not sure would be worth the effort writing), I would want a few Quality of Life features in place to make this more feasible:
An easy way to filter for a list of profiles that only have a certain type of credit throughout Stash-Box.
In other words, to show lists of exclusively performers, exclusively directors, etc. Those kinds of filters will be useful in the long run. Otherwise, I don’t see how useful a single list of undifferentiated profiles will be to anyone. But, it will also be helpful early on to find migrated directors that still need to be manually cleaned / merged / split.
An easy way to filter for a list of scenes with a certain credit under a profile page.
If we’re merging a single person’s performing and directing credits into a single list of scenes, users will need a way to hide one side or the other when it isn’t relevant, especially for prolific figures like Rocco.
A better way to split directing teams into separate profiles.
You mentioned roughly 7k unique director credits. How many of those are actually multiple directors sharing the freetext field, like Rocco Siffredi, Lorenzo Siffredino in your example? And of those combined credits, how many scenes are attached to them? As we learned with the imported performers, we currently have to manually correct each individual scene to split these profiles. We might be able to tough it out if the number of affected scenes is low enough, but that still wouldn’t guarantee the same for other stash-boxes. An advantage with these combined director credits is we can safely assume every affected scene should have both Rocco Siffredi and Lorenzo Siffredino attached to them, for example. We could probably handle that with a simple script, which is more than you could say about an ambiguous profile combining 10 different performers named Jack. But still, I’d rather have a solution ready before asking everyone to sort through this migration.
Those are at least the first pain points that come to mind. It’s a big migration, so I’ll let you know if I think of any others we should consider.
The performer term doesn’t quite fit anymore, this is true. Both IAFD and MusicBrainz uses Person, and I think that’s a better fit overall. But I’m open to suggestions, so far I haven’t changed anything.
I’m still working out the UI changes, but self-directing performers would be listed multiple times, for each role, depending on the view. Aliases are attached per credit role, that’s the easiest and most flexible solution.
The old performer APIs will be deprecated but still working exactly the same, so no update to Stash is necessary.
That’s up to the community, I’m mostly concerned with creating a system that supports it. But I think it will be more relevant if and when we get movie support
Each director gets a performer profile that should then be merged into any existing performers, or cleaned up. As pointed out this means we’ll have some performer profiles for directors who don’t actually perform. How to handle that is up for discussion, but personally I feel that is fine - having full profiles for directors is useful.
All good points. I’ll pull out the scene tags, and replace them with credit specific labels instead.
The reason I’ve added the long disambiguation is to clearly indicate they’ve not been cleaned up, and so that we can easily filter for them with the performer list name filter.
It’s a bit of work, but I think that since they are grouped by network it should require significantly much less research. It’s mostly just a lot of destructive edits, which will take some time to get through the queue.
I can add that.
I’ve already added that.
I can script up something. I expect a lot of the compounds split cleanly into existing directors, but I can create a csv first that we can validate before executing.
If you haven’t already, I recommend using IMDb as a very useful and professional source of inspiration. They’ve had decades now to refine solutions to challenges that range from the same or very similar for stash-box.
TheMovieDB (TMDb) is another good source because they’re a crowd sourced project like stash-box, while they’re basically modeled after IMDb, they have an incredible amount of overlap with stash-box because of their open community aspect.
TMDb uses People, which is similar.
For each entry (movie, tv show, etc), there is a well organized and hierarchy of credits. The subheading includes all the things already mentioned: Cast (TMDb), Actors (IMDb), Directors, Writers, etc.
It’s not that unusual to see a person appear under multiple headings. But there’s no distinction between, for example, a person’s “actor profile” and “director profile”. There is one distinct profile for each unique person, and all their credit roles are culminated and displayed on their page.