TheAnachronism / ImageDataSetTagEditor

A tag editor written in C# and WPF
MIT License
11 stars 1 forks source link

Improvement suggestions regarding tag handling #3

Open anothertal3 opened 1 year ago

anothertal3 commented 1 year ago

First of all: thank you for your work on this small tool which I accidentally found via reddit.

I did some testing and it appears to prove quite useful.

However, there were a couple of things which suprised me and kind of hindered the "usability flow":

Maybe some of those suggestions might be implemented in a future release?

TheAnachronism commented 1 year ago

Hello there,

Thanks for using this little software 😄

The points about the improvements, I'll have a look at what I can do. Many of them are also on a to-do list of mine, but I didn't have time to implement them yet.

anothertal3 commented 1 year ago

Thank you for the fast response. "Time issues" is a very relatable thing :) I'll be happy to try out newer versions when you find the time.

I've continued tagging and found a couple of further suggestions but they might be over the top for now.

For now, the biggest hindrance - at least to me - is the placeholder issue.

Hamsterun commented 1 year ago

Gonna leave the same comment as for the other tool "BooruDatasetTagManager":

"Would like to define Dropdowns with a custom title and add Tags, in the "all" tag section, to them for easier navigation when looking for something. As I need specific Tags in a specific order. So I don't have to think about the alphabetical order. Would be neat. Thanks."

In case you find the idea useful for your tool.

TheAnachronism commented 1 year ago

Would like to define Dropdowns with a custom title and add Tags, in the "all" tag section, to them for easier navigation when looking for something.

Yeah I was thinking about something like that as well. Somehow grouping or categorizing tags would allow for a far better experience of managing a dataset. Something I'm also considering, is rethinking how the tags are actually persisted.

Something that might make sense, is to create a local database for an image set, index the actual images and store the tag definitions inside the database. Once the actual captions are needed, you can export your tagged combinations to a specific directory. With an actual database in the background, tag management would be much easier to handle, as well as allowing for more complicated setups. If implemented, I would go for something like a local sqlite database for each dataset you want to tag. That way you can store the database file in the root directory of the dataset and keep everything together (and even share the whole thing in a .zip file or so).

But I'm quite busy this month and will probably have a look at the entire thing in May.

anothertal3 commented 1 year ago

All of this seems to be very reasonable and useful. However, I'd argue that input flow and usability are currently more important than a powerful tag database:

But regarding the idea: grouping and hierarchies of keywords are pretty well implemented in many DAM-applications such as Lightroom. Maybe it’s possible to find some interesting ideas there?

Let’s take, for example, the export/import of keywords. If I recall correctly, they export to a simple text file with indentations for hierarchical levels:

Building
    Church
        Bell Tower
    Stadium
...

I think that something like this might be completely sufficient for the time being. Maybe something along the lines of:

  1. Program start: initialize all persistent tags from said text file and organize them in memory
  2. Add new tags while tagging in memory
  3. On program end: overwrite previous file with current tag hierarchy from memory (optional: rename the previous file instead for safety)

I actually don't think that you need to keep persistent references between pictures and tags in your database. This is probably rather a task for a generic image management application and I actually appreciate that you focused your tool on the actually important task: tagging for AI training via side-car file.