Replies: 1 comment
-
I think a good feature especially, with tag categories and hierarchies and in, relation to pulling and updating tags from Stash Boxes would be for Stash to be able to add auto migrations to the db to add tables of scene relationships, categories and tags per stash box. As, these hierarchies and categories etc, may vary from Stash Box to Stash Box. But a user may want both sets or hierarchies and the ability to switch between them. If an endpoint is dropped, also the option for a migration to drop the table. Maybe that would pollute the table though With the rise of AI auto tagging it would be good if a tag > scene > this tag for this scene has been tagged by AI and awaiting human verification. To be able to separate and not pollute manually curated scene, performer etc tags. When it comes to updating tags with Stash ID's against a StashBox it would be ideal if aliases could also have a stash Id, so if they are renamed you don't end up with orphaned aliases and newly populated renames. And an option not to update and rewrite and aliases that don't have a Stash ID and are manually curated. If making a tag update page, well I used a script to populate my Stash with tags from StashDB. But I already had manually made ones with aliases. So the script didn't populate some of the tags because they were already taken up. It took me a while to notice I didn't have these tags, or the aliases were already consumed elsewhere. So in pulling and updating a tag from StashDB it would be good if it could detect local conflicts to the tag in question to be updated. Like if the tag name already exists as an alias elsewhere, or any of the tags that are to be updated, the aliases are used elsewhere and an option to rectify that according to Stash tags or keep as is. Also, I'm just an English speaker but maybe introducing a multi-lingual system in intl so the community can translate tags to different languages. Perhaps locally in the db, the tags table could have a column with json data of these translations and which language each is from. Particuarly useful if a user has foreign porn and they quickly, want to switch and auto tag so they can capture foreign tags from foreign video titles. |
Beta Was this translation helpful? Give feedback.
-
The current draft from WithoutPants of Stash's roadmap includes a call to "improve the general tagging experience." This includes a wide variety of requests and concepts that have been discussed over the last few years, Not all of these proposals are created equally, and several of these approaches might not be compatible with each other. In order to prioritize these feature requests, we'll first need to back up a few steps and gain a better understanding of our options, their potential impact, and how they might compare or interact with each other.
This long post is intended to give the devs an organized master list of tag related features to work from. It also hopefully provides the community with a framework to better discuss how these requests relate to the bigger picture. Github issues for each individual feature request will still be the best place for discussing the specific details of how a particular feature should be implemented. My comments on implementation are mostly my broad interpretations of what users imagine that particular feature will look like and how it will work.
At the time of writing, not every proposal has an issue in the Github repo to track it yet and not every existing issue covers the same ideas or concerns. I've searched the repo for issues with the keyword "tag" and at least one 👍 react, but I may have missed a few. I also haven't closely read each issue and may have misinterpreted some as well.
A lot of these bullet points are some combination of my own thoughts with ideas I've seen floated in Discord at some point. I'm not even sure which of these ideas were originally my own, so I won't be able to provide the proper credit for everything. If you see one of your ideas included here either without credit or with a link to somebody else's issue, I would assume it's just an example of parallel thinking.
I've organized these proposals as best I can, grouping them into four main groups. Each group represents a different goal the underlying feature requests are trying to achieve.
Goals
Feasibility
For the features that fall under all 4 goals, we must also consider the following when it comes to design and scope. We wouldn’t need a positive answer to every one of these questions, but we still need to weigh all of them to decide if the feature is suitable for Stash and how it should be prioritized.
1. Make it easier/faster to manage tags
Most of these feature requests are to make things easier for power users trying to manage large tag sets. The key here would be to prioritize the features that would give us the most “bang for our buck”, meaning features expected to be useful to a large section of Stash users for minimal dev time and resources.
We also have to consider that there are drastically different usecases even within that set of power taggers, including some users who rely entirely on scraping tags and others that rely entirely on manually adding tags. Providing flexible features that users can pick and choose as they like, using features in combination to create a workflow customized to their personal needs, will go a long way towards serving this wide range of usecases.
Another concern is to make sure that these expanded tools for power taggers does not make things more difficult or confusing for casual taggers, ensuring that minimal engagement with the tag system remains just as convenient as it is now.
Often these requests are looking for ways to make the process for finding and adding tags to an object more convenient than the current system, including improvements to organization, faster input methods, and clearer communication from the UI to the user.
#1253
#4306
#3469
#3711
#4156
#4342
#3180
#3313
#1296
#2591
#3711
#1599
#2651
#88
#696
#2349
Brown Hair
instead ofBlack Hair
based on scene release date, or knowing to inheritBrown Hair
into a scene and attach it to Performer X instead of Performer Y#1287
#2497
X+Y
is present, then addTag X
andTag Y
BBG
andDP
#1732
#773
#2973
#1836
#3231
#2736
#3694
#4320
#3998
#2833
2. Make it easier/faster to visually parse tags added to an object
Large lists of tags attached to an object make it hard to tell at a glance what is or isn’t there. Without applying additional organizational concepts, alphabetically sorted tags become increasingly difficult to read as the list grows larger, easily overwhelming users with a big set of undifferentiated information. This is especially apparent in views that summarize the tags attached to a particular object, becoming a blob of tag pills that cannot be easily parsed for information.
For some users, the answer to this problem is to limit themselves to a smaller set of tags that are important to them. But for others, it’s difficult to give up on the greater level of specificity created by a larger tag set. The answer is to give users a greater amount of control over how to organize and break up those big blobs of tags.
Many of these features can already be implemented using a custom userscript, originally developed by peolic and expanded by Maista. This means that unlike the features listed under other goals, we already have users who are familiar with a working prototype that combines these systems together. There will be less guesswork involved with knowing what these features will look like, how they will work together, and what their benefits will be.
If these new fields and concepts can be added to Stash-Box as well, it could benefit both Stash users and Stash-Box editors. Contributors could edit object-attached tags in a Stash-Box more easily by using these same organizational concepts to break up the tag blobs. Meanwhile, users could benefit from the Stash-Box’s chosen organizational system of categories, sort names, colors, etc. by scraping them into their local Stash.
#3108
Brown Hair
instead ofHair - Brown
orp1_haircolor. Brown Hair
#3200
#2633
Brown Hair
in addition toBrown Hair (Female)
3. Greater integration with Stash-Box
The Stash-Box side of things is currently underdeveloped for tags compared to other object types in Stash. The lack of StashIDs means any transfer of tag data up to a Stash-Box or down to a local Stash must rely too much on guesswork.
Like other areas of the software, there are also notable features present in Stash that are not available in Stash-Box and vice versa. Closer alignment of the two feature sets will allow for both local Stash users and Stash-Box editors to more easily share their work with others and benefit in kind.
#2643
4. More elegant/specific/complex tag relationships
The following feature requests represent more radical changes to the current system for tags. Most of them expand the amount of information that a single tag can provide, often by deepening their relationship with other parts of the database.
Because most of these ideas require a great deal of change from the current system, compatibility is a primary concern. Not every idea is easily compatible with each other, with Stash-Box, or even with current features of Stash. More-so than with the features listed under earlier goals, the decision to walk through one door will require closing off others.
As noted earlier, these are the features expected to fall under the “long-term” section of the roadmap. They are also the most likely to require a higher amount of development time to complete, most likely to be difficult to break up into smaller iterations, most likely to benefit only a small set of power users, and most likely to risk alienating casual users.
#3400
Wet T-Shirt
becomesWet
→Shirt
:#3000
Long
→Brown
→Hair
by creating two lists of color (Brown
,Black
, etc.) and length (Long
,Short
, etc.) descriptors for hair instead of creating a tag for each combination (Long Brown Hair
,Short Brown Hair
,Long Black Hair
, etc.)Big
andLarge
to limit the number of necessary aliases#3281
Performer X
+Brown Hair
can return false positives ifPerformer X
actually has blonde hair in a scene alongsidePerformer Y
who has brown hairBrown Hair (Female)
, would not be necessary under this new system with ability to filter for aBrown Hair
tag attached to a female performerBrown Hair
andLong Hair
at different times vs. performers who actually had long brown hair at some point in their careerWet
andT-Shirt
could be used to mean the same thing asWet T-Shirt
, where-as the same two tags applied to an entire scene aren’t necessarily related to each other.Wet
+T-Shirt
+Hair
, running into the same problem as scene-wide tags.Stash-Box X
, or scraped fromStudio Y
Studio Y
asTag Z
"#1463
Tag Z
onStash-Box X
”Stash-Box X
, filter for scenes withTag Z
scraped fromStudio Y
, or filter the dropdown select / tag blob to only manually created tagsBeta Was this translation helpful? Give feedback.
All reactions