stashapp / stash

An organizer for your porn, written in Go. Documentation: https://docs.stashapp.cc
https://stashapp.cc/
GNU Affero General Public License v3.0
9.19k stars 792 forks source link

[Feature] Smarter Tagging Overhaul #3281

Open enporial opened 1 year ago

enporial commented 1 year ago

I'd first like to apologize for what is likely a mess of words. I am not a writer by any means.

Is your feature request related to a problem? Please describe.

Tagging structure as a whole and how it is applied to performers and scenes should be revamped in a way that allows for a lot more granular operations.

TL;DR Right now there is two distinct types of tagging. Tagging a performer, which honestly isn't a great idea in a lot of cases as appearances change (they won't always be a teen eventually they will graduate to a milf). As well as tagging a general scene.

This needs to be overhauled to allow for better "smart/automatic" features down the line.

  1. A tag is generated for a performer that is in parity with that performer (potentially "locked"?).
    • The name, and the performer aliases stay 1:1 between the tag and the performer
  2. Separate the idea of a parent/child tag and a tag/sub-tag for better control
    • A parent/child tag are directly related where the child is usually a more specific form of the parent tag basically what they are now
    • Whereas a tag/sub-tag the sub-tag is used to add information to the higher tag itself usually in the context of a scene.
  3. When tagging a scene you would want be utilizing the tag/sub-tag technique to give real context to the scene.

Describe the solution you'd like

This would need a couple alterations to both tags and performers. I'll admit that I haven't checked the current schema so not sure how much might need to be revised if this is something that would be useful. This takes inspirations from a few different sources on the web and applies them together.

First, performers are themselves tags. When a performer is created it would create a tag (along with alias and all other info). This should be a "locked" tag that is directly controlled only through changes to a performer so as to keep parity.

Second, when tagging a scene you would not always be directly tagging a scene, but would be tagging and sub-tagging within in.

Scene XYZ

Riley Reid

Doggy Style Tattoos Red Lipstick Anal Masturbation

Fingering Vibrator

Jay Allan

Male Teacher Uncle

Beach Party

In the end the scene still consists of the same tags, but this gains you a TON of extra information since now a scene is not blindly tagged as a whole, but tagging core elements of a scene and where they apply. These sub-tags can be used to populate a performers tags in a lot of cool ways (i.e. weighted tags! traversing weighted nodes are fun!)

It might seem small but applying this too a scene adds a lot more context. Having a scene like this tagged as "anal" says there is "anal" somewhere in the scene. Applying to to a specific performer in the scene means a lot more... and can completely change the context of the type of video you are watching depending on the performer it applies.

The main change that would likely need to happen is creating two different parent/child tag/sub-tag relations. One for dis-ambiguity such as Lipstick/Red Lipstick or Teacher/Male Teacher as being parent/child tags, and the other being sub-tagged to add context to a higher level tag as shown above.

-- Third falls in-line with this "bottom up" approach. Weighted tags. It would allow for some really smart data collection/consolidation down the line. Using the approach shown above you would actually be tagging a performer based on their scenes rather than manually tagging the performer themselves. Attach a weight based on the number of times that tag is present and this creates a really in-depth picture of the performer.

-- With something like this you could literally track the changes in a performers appearance or "types of acts" they perform overtime in combination with a scenes date. Whereas before when the tag was just applied to a scene (likely with multiple performers) it really doesn't provide much information.

This would be the kind of data needed to then apply some solid machine learning algorithms or lets be honest some pretty straight forward queries and if-statements to do automatic tasks like StashDB #234. Where you can determine when an performer had breast augmentation based on a scenes tags for that performer which then could back fill the performers actual information sheet.

Let me know if I need to add more information to this or clarify this at all. I really think this is what Stash needs to both later benefit StashDB as well as really "be the change" when it comes to bad video porn tagging systems.

mf35 commented 1 year ago

This request is something none media organizers ever offered. Not even paying apps give the ability to tag this way with multiple layers.

Same for the "weighted" tags. Something similar has been used in the app "Mediachips" but then abandonned sadly. This was implemented to determine the "hotness" of a performer based on the tags' weight.

Anyway i must agree with @enporial that only such a tagging system is making sense: Most of the descriptive tags for performers make no sense, since anybody can change its hair colour, get new breasts or get a tanned skin. When you have multiple performers in a scene, tags never indicate to which performer they apply.

I really upvote this request, it should be considered seriously. This and the possibility to organize tags in categories :)

enporial commented 2 days ago

I really wish they would reconsider this. One of the whole points of creating StashApp and having the Stash Database backed is having one of the most complete functioning databases for porn.

Which right now is honestly unusable for archiving or looking at data related to tags. The most straightforward example is having a what is the point of having a search or including the tag of "Fake Breasts" for a Performer when trying to look at videos that include Fake Breasts when maybe that Performer only got Fake Breasts after already creating 200+ clips with out them. Then when you look for content from them with fake breasts it starts to break down.

All tags should only directly come from what is within each scene. That way tags work at all.