Hey everyone,

I have a ton of pngs, jpgs, webps, mostly of fantasy art. I want to be able to mass-tag them with things like “character”, “environment”, “elf”, “demon”, etc. and then view them based on tags. Can anyone recommend software like this for linux? Bonus points if it also works on windows. Thanks!

  • @N0x0n@lemmy.ml
    link
    fedilink
    1
    edit-2
    13 hours ago

    To expand on my previous comment I dug a bit deeper the rabbit hole with exiftool to showcase how powerful meta tags are over conventional tags. I was curious how It would work and find an “universal” embedded tag system that works nearly on any software.

    First thing first,from my personal research there are 4 important types of metadata fields:

    • IPTC:keywords
    • XMP:subject
    • EXIF:XPkeywords (mostly for Windows)
    • MacOS:MDItemUserTags (macos tagging system)

    It’s also possible to copy one over to the other. The most important ones are IPTC and XMP which are read by most image manager. XPkeywords and MDItemUserTags are OS specific to windows and macos respectively.

    After some reading and fiddling around I used the following commands:

    exiftool -IPTC:Keywords="Phil's Exif" Wallpapers/image_proxy3.jpg
    exiftool -XMP:Subject+=one Wallpapers/image_proxy3.jpg
    exiftool -XMP:Subject+=two Wallpapers/image_proxy3.jpg
    exiftool -EXIF:XPKeywords="tagtest" Wallpapers/image_proxy3.jpg
    exiftool -MacOS:MDItemUserTags+=tagging Wallpapers/image_proxy3.jpg
    

    I spun up a lychee docker container to test if my tags are automatically recognized:

    What does that mean ? Does are embedded meta tags that works with every software capable of reading the IPTC or XMP metadata. Those tags will follow your pictures rather than being bound to a specific software database. So your tags are portable and embedded into you files which is in my opinion a better long term solution.

    There’s probably way more to it and something that could be further explored is to export your metadata as .xmp file, add those tags into the OS (XPKeywords, MDItemUserTags), bash script to manipulates even further…

    Hope it helps to give you a sneak peak on what exiftool is capable. I’m a noob with this tool but it already shines and shows it’s power and capabilities with some basic commands.

    Here are some resources if you want to give it a try and follow my trails:

    https://exiftool.org/forum/index.php?topic=15344.0

    https://exiftool.org/forum/index.php?topic=1752.0

    https://exiftool.org/forum/index.php?topic=15802.0

    https://exiftool.org/forum/index.php?topic=8591.0

    https://exiftool.org/forum/index.php?topic=13102.0

    https://exiftool.org/metafiles.html#EX15

    https://www.picturesandstories.com/news/2014/4/21/tags-and-captions-how-to-label-your-digital-photos-using-metadata

  • @N0x0n@lemmy.ml
    link
    fedilink
    3
    edit-2
    24 hours ago

    An other solution could be exiftool by Phil Harvey. Don’t judge by how the website looks… It’s probably the best and most complete tool to edit the metadata directly into your images (and way to much other formats xD).

    Even though it’s very well documented, exiftool is very complex and there’s a lot to read and grasp before getting comfortable with it. There’s always the forum if you have any question, but before asking the forum go through the FAQ (yes I know it’s huge… But as starting point look at number 11) and search a similar question in the forum.

    Here I found a topic that looks like what you’re a looking for:

    https://exiftool.org/forum/index.php?topic=7894.0

  • @ExtremeDullard@lemmy.sdf.org
    link
    fedilink
    7
    edit-2
    1 day ago

    mv?

    Honestly, just prefix or suffix the filename. I’ve been cataloging all my stuff like that for the past 30 years - including, for things like music, the track number, which the filesystem and every portable device under the sun will naturally sort and play in the correct order. Finding things can be done with regular filesystem tools like, well, find. And it will work exactly the same way in all OSes that have a concept of filesystem.

    • moondog [he/him]OP
      link
      fedilink
      English
      21 day ago

      That’s a really good idea, I’ll probably do that. With that method, what’s the easiest way to prefix a bunch of file with e.g. “human_”? Put them all in the same folder, and then write a script so every file in that folder gets that prefix?

      • @ExtremeDullard@lemmy.sdf.org
        link
        fedilink
        4
        edit-2
        1 day ago

        It’s whatever works for you.

        Me, depending on the type of file, I either have a more or less full description (so I can find things with find and English words) and/or some sort of short coding system that makes sense for a given type of file. After using the same codes for a long time, I know exactly what they mean.

        For example, I would name an ebook “823-sf-rah-The_moon_is_a_harsh_mistress.epub”: that way I can look it up by DDC number (823), genre (SF), author if they’re well known (Robert A. Heinlein) and of course the title of the book, or any combination thereof. That’s my own system for ebooks.

        For music, I make one directory per album or record named artist-comma-name (e.g. “Al_Di_Meola,Orange_and_Blue”) and the individual tracks inside as e.g. “track01-Paradisio.mp3”, “track02-Chilean_Pipe_Song.mp3”… The reason I only do one directory deep per album instead of, say, author/album/tracks is because most MP3 players back in the days, and most music apps today, understand that way of organizing music. That’s my own system for music.

        Etc etc. Just make up your own system that works for you. Just stick to characters that are acceptable in all OSes’ filesystems so you can move your stuff around without problems, and avoid spaces so it’s not a pain to type.

  • @MonkeMischief
    link
    61 day ago

    I know KDE’s Dolphin has this built in, but I’m so afraid to use it because I imagine it’ll take ages, and it wouldn’t be recognized by anything else. 😬

    • blobjim [he/him]
      link
      fedilink
      English
      3
      edit-2
      1 day ago

      I think it might store tags in linux file system xattrs so other software (or scripts) could access and index it.

      • @Aiwendil@lemmy.ml
        link
        fedilink
        21 day ago

        Just to add…because xattr it’s also “easy” (for some definition of easy ;)) to add/modify tags from the shell making mass-tagging feasible (as requested by OP). Second answer here should give a decent starting point…

  • blobjim [he/him]
    link
    fedilink
    English
    21 day ago

    For images, you can use a photo library application like digikam and set tags on the files, which are saved both to a relational database and to the photo metadata inside the image file. For other file types I don’t think there’s anything standard.

  • Onno (VK6FLAB)
    link
    fedilink
    11 day ago

    I read that you’re manually tagging them, so your process can be whatever you want to do.

    For example, you can leave the images in their current folder structure and create a separate folder structure with symbolic links to an image, so in the character folder would be symbolic links to all the images like that. They also don’t have to be unique, an image can be in multiple categories.

    Alternatively you can use a spreadsheet and generate lists there.

    Finally there are plenty of photo album applications that allow you to tag images.

    • @CCRhode@lemmy.ml
      link
      fedilink
      210 hours ago

      Alternatively you can use a spreadsheet and generate lists there.

      OK, I’m going to wade in here. It occurs to me that the OP could make use of my Tonto2 Python3 script for Linux and Windows. It puts a spreadsheet-like user interface over a *.csv file or files. You just need to make a home for the tag file(s). You can make bookmark lists that way and open the embedded http:// links in your browser. You could use file:/// links for local images. You could add as many columns as you want for all kinds of tags and sort and search the values to your heart’s content.

    • moondog [he/him]OP
      link
      fedilink
      English
      11 day ago

      No, I’ll manually tag them. Just need some basic tool that lets me do that and then filter by them.