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
8.79k stars 778 forks source link

[RFC] Stash built for a particular type of conventual studio-produced porn, management of porn outside that could be improved #1028

Open secondfolder opened 3 years ago

secondfolder commented 3 years ago

Summary

Stash is currently build primarily for porn produced by a studio. As such it has patchy support for any porn that falls outside of this. I would love to see what peoples thinking about this is and ideally for support to improve over time or at least to make that this implicit focus more transparent in Stash's marketing.

Detailed description

For the purposes of this discussion I'm going to focus mostly on video although this definitely applies to images too, maybe to a lesser extend. I use the word "video" but Stash doesn't really have the notion of a generic video (at least in terms of the interface presented to the user). Instead stash has "Scenes" which can make up "Movies" which are concepts that are applicable for a particular type of porn. By catering specifically for porn that fits within this paradigm you can make more targeted assumptions about what sort of metadata is applicable. "Scenes" have a scene number from the "Movie" that they are a part of. "Movies" are made by "Studios". Etc etc.

This has a bunch of advantages. With more specific metadata which you can assume to be broadly applicable for all media that is stored you can present a richer UI to the user. For example since most porn that fits in this particular idea of a "Movie" has a cover image (previously necessary for displaying on the front of a DVD case) you can make the cover image for a "Movie" highly prominent because the majority of this type of porn will have an image made for this which is representative of the movie. This more specific set of Metadata is also generally objectively agreed upon. That makes projects like Stash Box somewhat simpler (at least relatively speaking).

But the problem is that not all porn fits this paradigm. Arguably quite a lot of porn in fact, probably increasing amounts with the internet driving the proliferation of more amateur/non-studio porn distributed though things like OnlyFans or Hentai Foundry. Rule-34 images, seconds-long clips by released on twitter by indie porn stars, non-professional porn made by individuals and uploaded to the internet, compilation videos made by randoms made by editing a whole bunch of different videos together. Any porn that doesn't fit into the studio model of porn catered to by Stash breaks the implicit assumptions made by Stash. Sometime this difference is fairly minor and can be relatively and it is relatively straightforward to shoehorn into. An example of this might be hentai/cartoon porn image drawn by a particular artist. The artist could be added as the "Studio" that made the image and any characters represented within might be added as "Performers". This is pretty clumsy but at least sort of works.

The further from this paradigm you get though the more things fall down. It becomes messier and messier to do things like fit metadata into the form that Stash expects. But also viewing and browsing becomes more and more troublesome. Short clips that are intended to be quickly flipped though or viewed in quick succession don't really translate to Stash's model of expecting you to navigate to a particular video, watch that, then navigate back and into another video to watch.

If you are only interested in studio porn then this might not be an issue for you but I'm sure I'm not the only one who also has porn that doesn't fit so well into this model and I would particularly love from people in that situation.

What to do about this

I think the first thing to workout is how much this project cares about catering for non-studio porn. If the answer is "not a lot" then it might be worth making these assumptions more explicitly in Stash's marketing. It's website (https://stashapp.cc/) currently uses the tagline "Stash - an organizer for your porn". Maybe for clarity the type of porn that Stash is built for could be more spelled out.

If there is interest in improving how Stash deals with porn outside it's there are any number of possible tweaks/changes what could be made with wide ranging gamut of how substantially they would improve things but also what the cost would be to do so.

Starting at the more radical end you could replace the concept of "Movies", "Studios", etc with more generic counterparts. You could take that approach so far as to almost make Stash a different project from where it is now. The more extreme you took this the more extreme the costs in terms of dev effort as well as breaking of certain features/workflows/etc.

On the other end of the spectrum you might just small tweaks are made such as adding some new fields or that sort of thing to. Maybe explicitly thinking about how changes going forward might work for non-studio porn but not making any major changes to the current system or being a show stopper for future features which are are only applicable for studio-porn.

In between those extremes are middle-of-the-ground approaches. This could entail attempting to better cater for non-studio porn but as more of an outlier to what would remain the core focus of the project, studio porn. That might include slowly introducing some more generic entities along side the existing ones. Introduction of a feature like https://github.com/stashapp/stash/issues/1029 could be one such approach. Also for non-studio porn the boundary between a video and an image can get a lot more blurry. Gifs and short video clips for example often serve basically the same purpose as far as the user is concerned but Stash will treat them quite differently. So something like https://github.com/stashapp/stash/issues/1030 might help improve support for some non-studio porn.

Love to hear peoples thoughts! Hope this isn't too sacrilegious. I have bothered writing this up because I think Stash is great! I think it's a fantastic solution to storing and viewing porn and personally I would love to see it's support for non-studio porn improve as the project continues to grow and mature. Thanks for your consideration :)

SpedNSFW commented 3 years ago

I don't see any problem with the current layout of information for what you're describing.

OnlyFans content? Set the studio as OnlyFans or as the performer's name.

Rule34 or compilations (such as PMVs), set the author/creator as the studio.

You're trying to over-complicate Stash when the existing fields work perfectly fine, even if the label itself may be incorrect.

Short clips that are intended to be quickly flipped though or viewed in quick succession don't really translate to Stash's model of expecting you to navigate to a particular video, watch that, then navigate back and into another video to watch.

For this, playlists would probably be ideal and they've already been requested.

secondfolder commented 3 years ago

@SpedNSFW Can I ask how do you use Stash? Is your collection made up of mostly studio made porn or do you have a lot of non-studio made porn too?

SpedNSFW commented 3 years ago

@secondfolder Both. The non-studio stuff is not a problem for me. I assign it a studio, date, performers, tags, etc just as I would any other scene.

secondfolder commented 3 years ago

That's fair enough. I personally find the experience of organising, browsing and viewing to become increasingly clumsy the less like the porn is to studio-made porn. I guess we'll see if other people also find this to be the case or if it's just me :)

fustios commented 3 years ago

I don't see any problem with the current layout of information for what you're describing.

OnlyFans content? Set the studio as OnlyFans or as the performer's name.

@SpedNSFW Then you would still have hundreds of 5 second onlyfans clips in scenes. For me that would be nearly the same as having Images under Scenes. So I won't import these clips right now. But I think #671 could solve this problem. Especially the implementation of Quickfilters in combination with the Custom Tags we already have, could help with some of the mentioned special cases in this Issue.

newadventure079 commented 1 year ago

Stash being made for studio work is the main reason I dont use it much. #1586 and #1029 would help greatly

ALonelyJuicebox commented 1 year ago

@newadventure079 can you elaborate more on what specifically isn't working for you? Exposing the file system through Stash almost seems more like a parallel step forward compared to what this RFC is about.

What kind of content are you storing and what object paradigms would be helpful to have? Artists in addition to Performers?

xx790 commented 1 year ago

My take: Current data model should've been possible just as a specialization of a generic model. Large number of feature requests are about specific fields that some people find meaningful for various entities (like #885). Some feature requests are about new types of entities what would allow a better representation of their desired model. stash can continue a crawling adoption of random specific requests in its rigid data model. stash could've just offered everyone some building blocks to adapt for their desired data model. StashDB could just kept the studio-produced porn metadata collection on top of a set of entities specialized for its needs without preventing everyone else from making databases for JAV, hentai, JOI, challenges, music videos, MMD, etc...

How can this be possible: Stash should've taken more inspiration from booru engines and build from that. Make every kind of entity a specialization of a common entity (let's say a tag). Make available properties defined through specialization (let's say tags are specialized through tag namespaces). Performer is a tag, studio is a tag, and I will be able to define namespaces for other types of entities I find important, like fictional characters, songs, etc, with their own sets of fields. Custom fields can pull values (single or multiple) from assigned namespaces. I think current movie entities should be a part of playlists system due to the notion of scene ordering within a movie. There are more possible grouping and ordering contexts so that should've come first. Movie should be a specialization of that. Scene is a tag? Playlist is a tag? Maybe. They differ in content (nothing, a file, an ordered list of entities), but the idea of metadata specialization is applicable everywhere.

newadventure079 commented 1 year ago

@ALonelyJuicebox All of my stash folder is made up of homemade and amateur content. There is no studio, release date, producer, director, IMDB scraping, etc. Therefore, it needs to be grouped into folders by me. If stash had a folder view, then it would work a lot better for me. Right now, I'm presented with a screen showing a ton of videos with no grouping or organization and it just makes no sense. Organizing by stash's filters of date added, bitrate, etc adds no value whatsoever.

You know how Plex has Movies, TV Shows, and Other Videos media designations? For Movies and TV Shows, it goes out and gets the actors names and the poster art and all that, which makes sense.

For Other Videos, those are like homemade videos that dont have any info to scrape. Therefor Plex adds a Folder View for you to to view the media in. This is because only the user can organize those videos like xmas 2022, Dance Recital 1998, etc. If Plex didn't offer the folder view, you'd just have 500 videos with no organization and no rhyme or reason being shown to you and it'd be a huge mess. That's how stash is right now to me.

Plex "Other Videos" offering a folder view: Screenshot 2023-01-31 at 3 36 02 PM

VorpalOne commented 7 months ago

Yes! I strongly agree with the sentiment of this post! I think @xx790 basically summed up my feeling from a technically savvy perspective. Generally I think allowing users more freedom to manually define fields in the interface would alleviate a lot of issues, as folk could customize the organization to meet their own needs. For example some things I would really like to see: customizable performer URLS and genders, and the ability to manually select where a video file should appear in the UI.

My personal requests -

Custom Performer Gender: I would like to see a space in Settings to pre-define the options that appear under the Performer Gender dropdown. A decent number of more amateur creators actually post as a "Couple" which is obviously not an option in the current interface. Plus in this day and age I think it would be much more appropriate for the end user to decide how granular they want to be when categorizing a performer's gender preferences.

Custom Performer URL: This pretty much speaks for itself I think - why not allow users to add any number of urls to performers the same way you can for individual scenes? Bonus points for a space in Settings to predefine some url conventions so that you only need to enter a performer's handle into the url field. I imagine this would be similar to the current handling of twitter and instagram IE:

Instagram: https://www.instagram.com/ "performer handle" Twitter: https://twitter.com/ "performer handle" OnlyFans: https://onlyfans.com/ "performer handle" Reddit: https://www.reddit.com/user/ "performer handle" ...

Manual Selection of Video Interface: Can we just get some checkboxes or a dropdown to manually select where a video file should be displayed after it has been scanned? Like:

Display this media in Scenes? N Display this media in Images? Y Display this media in Both? N

Obviously an option to display "in both" is fairly redundant if you can check multiple boxes, but you would also need to always have a least one box checked so perhaps three mutually exclusive options are simpler.

There could be other small things like settings to change the display name of interface sections. Is the title "Scenes" not relevant to your media library? Change it to whatever you want!

TLDR: I think Stash's general structure is pretty OK for almost all use cases but the rigidness of it's interface and lack of interface customization are it's main drawbacks.