this post was submitted on 23 Sep 2024
20 points (100.0% liked)

Linux

48330 readers
643 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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!

top 17 comments
sorted by: hot top controversial new old
[–] [email protected] 8 points 2 months ago (1 children)

I like tagstudio. IIRC its for windows and Linux.

[–] [email protected] 3 points 2 months ago

A youtube video from the creator of Tag Studio came up the other day and it looks awesome! I believe it's still in early alpha https://github.com/TagStudioDev/TagStudio

[–] [email protected] 7 points 2 months ago* (last edited 2 months ago) (1 children)

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.

[–] [email protected] 2 points 2 months ago (1 children)

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?

[–] [email protected] 4 points 2 months ago* (last edited 2 months 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.

[–] [email protected] 6 points 2 months ago (1 children)

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. 😬

[–] [email protected] 3 points 2 months ago* (last edited 2 months ago) (1 children)

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

[–] [email protected] 2 points 2 months 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....

[–] [email protected] 4 points 2 months ago* (last edited 2 months 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

[–] [email protected] 4 points 2 months ago
[–] [email protected] 2 points 2 months 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.

[–] [email protected] 2 points 2 months ago* (last edited 2 months ago)

I'd highly recommend hydrus network for that sort of thing. It's exactly what it's designed for, and is quite mature but still very actively developed.

https://github.com/hydrusnetwork/hydrus

[–] [email protected] 1 points 2 months ago (1 children)

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.

[–] [email protected] 2 points 2 months 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.

[–] [email protected] 1 points 2 months ago* (last edited 2 months 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

[–] [email protected] 0 points 2 months ago (1 children)

image recognition with AI for categorization?

[–] [email protected] 2 points 2 months ago

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