Disclosure
This article mentions a tool we built, marked (ad, own product). There are no affiliate links on this page. We do not earn a commission on any tool named here.
AI-assisted: parts of this article were drafted with AI. The illustration on this page is AI-generated and stylised. It is not a screenshot of any product discussed.
Microsoft’s own documentation for AI image tagging shows you the problem, and it does it by accident.
Their example is a photo of a blue house. The API returns 23 tags. Four mean house: home, house, cottage, farmhouse. Six mean yard: yard, backyard, lawn, land lot, landscaping, garden buildings. The top-scoring tag, at 0.996, is grass.
Nobody licensing a stock photo searches for grass. I pulled the top ten results for this query on August 30, 2026 and found two forum threads, five vendor product pages, one cloud vendor’s docs and one developer’s blog post, so if you’re shopping for image tagging software today you’re reading sales copy and strangers, and photo tagging software built for filing is the worst offender.
Redundancy like that is the honest state of AI image tagging in 2026. The recognition is solved. A model will tell you what’s in the frame, quickly, cheaply, and with better accuracy than a tired human at 11pm, and it will chew through ten thousand files without complaining. What it won’t do is hand you metadata you can sell, file, or upload without cleanup. Every one of those 23 tags is correct. That’s the part people miss when they test these tools: accuracy was never the bottleneck. A perfectly accurate keyword set still draws a rejection for repetition. It still buries the one word a buyer would type behind six nobody searches. It still carries a title too long to display. Recognition and metadata are two different jobs, and almost every tool on page one does only the first.
What is AI image tagging? AI image tagging is the automatic assignment of descriptive labels to a photo by a vision model, usually returned with a confidence score between 0 and 1. Microsoft’s Azure Vision documentation states that its tags “aren’t organized as a taxonomy and don’t have inheritance hierarchies” (learn.microsoft.com, retrieved August 30, 2026). The output is a flat list of observations, not a finished keyword set.
The AI image tagging verdict, before the detail
Filing a personal library. Buy a desktop tagger and stop reading. Excire, Peakto and the tagging built into Lightroom all do this well enough, and the difference between them will not change your life.
Uploading to a marketplace. Raw tagging will not get you there, and neither will a general vision API. You need the layer that runs after the model. That is the part we build, and I will show you exactly what is in it so you can judge whether you need it or can write it yourself.
Building AI photo tagging into a product. Use Azure Vision or Google Vision and budget a week for the cleanup code. It is more work than the quickstart suggests.
Is image tagging the same as keywording? Yes, the task is identical: attach words to a picture so it can be found later. Software vendors say tagging, photographers and stock marketplaces say keywording, and archives say cataloguing. The difference is what the words are optimised for, recall inside your own library or acceptance inside someone else’s marketplace.
Or you skip writing those rules and run the ones already shipped. AutoKeyWorder (ad, own product) is a Chrome extension that reads each image with AI vision and fills titles, keywords and categories directly inside the Adobe Stock upload form, with no CSV export and no re-import. AutoKeyWorder runs at roughly 5 seconds per image and covers Adobe Stock, Shutterstock, Freepik, Displate, TeePublic, Zedge and Redbubble. Install is free with 50 credits included, one credit per image, no credit card. See it on the Chrome Web Store
Image tagging software and photo keywording software are one job, two words
The vocabulary decides what you find when you shop. Search for photo tagging software, or image tagging software, and you get desktop library managers built around browsing your own collection. Search for photo keywording software and you get upload tools built around passing someone else’s moderation queue. A tagger optimises for recall inside your library. A keyworder optimises for acceptance inside a marketplace. A tool that is excellent at one is usually mediocre at the other, so decide which one you are before you spend anything.
What each AI photo tagging tool actually claims
I have not run any third-party tool below on my own images. Those rows are each vendor’s own published claim, read on August 30, 2026.
| Tool | What it returns | Writes to the file? | Platform rules? |
|---|---|---|---|
| Azure Vision | Flat tags with confidence scores, 23 in its own example | No, data only | None |
| Google Vision | Labels with confidence scores | No, data only | None |
| Excire | Keywords automatically; its page warns AI “can apply keywords incorrectly” | Yes, XMP embedded or alongside | None stated |
| AutoKeyWorder (ad, own product) | Title plus ordered keywords, per platform | Into the upload form | Six post-processors |
Which leaves an asymmetry you should weigh: the only row with measured numbers behind it is mine, because it’s the only codebase I can open. Read the rest as marketing copy that happens to be accurate. Every general tagger in that table returns tags, and not one of them knows that Adobe Stock wants a title under 70 characters, or that a keyword list carrying six synonyms for yard reads as spam. That gap isn’t a quality problem with the models. It’s a scope problem: recognising a porch and knowing what Adobe does to a 94-character title are separate jobs, and only one of them is solved by a better vision model.
Where generic tagging stops: the post-processing layer
You only learn this part by shipping.
Our pipeline calls a vision model, same as everyone. The model output is then run through six platform-specific post-processors, one each for Adobe Stock, Shutterstock, Freepik, TeePublic, Displate and Zedge, plus sixteen shared cleanup functions. All figures below are from shipped code in backend/keyword/service.py, checked on August 30, 2026. I checked the code rather than our prompt files on purpose, because the two disagree, and the code is what runs.
The title rule three prompts could not reach
We cut titles to fit. Adobe asks contributors to describe their content in around 70 characters and warns that a longer title “may be automatically shortened during the file submission process” (helpx.adobe.com, retrieved August 30, 2026).
Measured across 45 live outputs, per our commit 06803ee of August 21, 2026, 93.3% of our Adobe titles ran over 70 characters, averaging 81.2. Everything in this section comes from that one change, run on gemini-3.1-flash-lite. We tried the prompt first, on 15 holdout images three times each:
| Prompt attempt (15 images, 3 runs) | Avg length | Still over 70 |
|---|---|---|
| Nothing, the live prompt | 81.2 chars | 93.3% |
| A 12-word budget | 79.2 chars | 86.7% |
| An explicit 70-character budget | 79.2 chars | 93.3% |
| A 9-word ceiling | 73.1 chars | about 70% |
| Enforcing it in code instead (89 later outputs) | not recorded | 0.0% |
Two honesty notes on that table. The last row is a different and larger sample than the four above it, so read it as the outcome rather than as a fifth variant. And per our commit 06803ee of August 21, 2026 the 9-word figure is logged as 70.5%, which does not divide cleanly into 45 runs the way the other rows do, so I have rounded it rather than repeat a precision I cannot reconstruct.
Read the third row again. Asking the model in plain English for a 70-character budget changed the result by nothing at all, because characters sit below the tokenizer’s resolution and the model cannot count them however politely you ask. The 9-word ceiling did move the number, and it started costing us words we wanted to keep.
So we stopped asking and wrote it in code. ADOBE_TITLE_MAX_CHARS = 70, a hard ceiling of 110 above which a separate shortening pass runs, and a fitting function that gives up weak adjectives first, then trailing secondary anchors, and only as a last resort the phrase carrying the buyer concept. Across those 89 outputs the buyer-concept phrase survived in all 64 cases where it existed.
The model never got better. The code after it did.
The five keyword rules that run after the model
Two words per concept cluster, no more. We keep sixteen clusters of near-synonymous words and allow two keywords from any one cluster by default, with four category exemptions where more is legitimate. Run Azure’s house example through that and home, house, cottage, farmhouse becomes two words. The discarded two were repetition, and repetition is what moderators flag. The same cap takes that six-word yard pile down to two, which is the difference between a keyword set that reads as thorough and one that reads as padded. Plurals go the same way: flower and flowers are one word in a buyer’s head and two slots out of your fifty, so the earlier one wins and we drop the later.
Stripping trademarks hides a trap. You cannot simply remove every word that matches a brand list, because link, thor and elsa are ordinary English words and common names before they are anyone’s property. Our list deliberately excludes ambiguous generics for exactly that reason. A naive filter deletes a legitimate keyword from a photo of a chain link fence.
Each platform has its own ceiling. Adobe takes 49 when the model returns 50 or more, because submitting exactly 50 is what trips the limit. Everywhere else stops at 35. Under five keywords we fail the result outright rather than hand you a thin upload nobody will find.
We cut filler, then check we didn’t cut too far. Trimming weak leading words improves a title until the day it eats the subject. So if a title drops under 35 characters after the trim, we read that as the trim going wrong and put the words back. That guard exists because the ungoverned version once handed us two-word titles.
None of that is clever. All of it is the difference between a tag list and an upload that passes review. If you build your own tagging pipeline, you will write some version of every one of those rules, and you will write them in the order that your rejections teach you.
Does AI image tagging actually work?
Yes for recognition, and the confidence scores are honest about the rest.
In Azure’s own response, grass scores 0.996 while landscaping scores 0.854. The model is most certain about the least commercially useful word on the list, and that is not a bug. Confidence measures how sure the model is that a thing is present. It says nothing about whether a buyer would ever type it. Sorting your keywords by confidence puts your worst keywords first.
Adobe states plainly that keywords should run from most to least relevant, and that the first 10 carry the most weight in search placement (helpx.adobe.com, retrieved August 30, 2026). So ordering matters as much as selection, and no general vision API orders anything. We cover how that ranking behaves on Adobe titles and keywords and on Shutterstock specifically.
The second limit is context the pixels do not contain. A model can see a woman at a laptop. It cannot see that the shot is editorial, that it was taken in Lisbon in March, or that the release is on file. Those go in by hand, every time, and any tool promising otherwise is guessing.
What sucks about AutoKeyWorder
Rule of the house: every recommended tool gets a real criticism, including the one we sell.
AutoKeyWorder runs in the browser, inside the upload form. That’s a genuine advantage while you’re uploading and a genuine problem when you aren’t. If your images live in a Lightroom catalogue on your own drive and you want them keyworded there, we don’t do that at all. Excire and Peakto do, so buy one of those instead and I wouldn’t feel bad about it. The flaw that costs our actual buyer something is different: we downscale to 1024 pixels on the long edge before analysis, because vision token cost scales with dimensions. That’s a cost decision and you’re paying part of it. On a tight portrait it changes nothing. On a wide frame where the subject is small it’s the likeliest reason a keyword you wanted never appears, and I have no measurement of how often that happens, which is itself the honest answer.
Platform coverage is seven. Six run through the post-processor chain described above: Adobe Stock, Shutterstock, Freepik, TeePublic, Displate and Zedge. Etsy is the seventh and goes through its own pipeline, because a listing is not a stock submission. Dreamstime was dropped in version 1.4.5. If yours isn’t on that list you’ll still get keywords from the generic path, but you won’t get your platform’s rules applied to them, which is the entire thing you came for.
Can AI tag photos automatically in bulk? Yes. Desktop taggers process whole folders offline and write keywords into the file or a companion file. Cloud vision APIs process at any volume but return data only and never touch the image. Upload-integrated keyworders work per marketplace and apply that marketplace’s own title and keyword rules.
Which image tagging software fits your library
Personal or family photo library. Automatic photo tagging over a folder of holiday pictures is the easiest win in this category. The thing to check before buying is whether it runs on your machine or ships your photos to someone’s cloud, because that is the only question here that you cannot reverse later.
Working photographer with a catalogue. Insist on XMP. Keywords that live only in a vendor’s own database die with your subscription, and keywords written into the file follow it into whatever you use in five years. Excire’s page describes companion files for RAW and embedded keywords for JPEG and TIFF, which is the behaviour to hold out for.
Stock contributor. Acceptance is the only metric that pays, so judge tools on rejections avoided rather than keywords produced. Our comparison of that category is in best stock photo keywording tools, and the platform rules themselves are in the stock photo keywords guide.
Building it into a product. Azure and Google are close enough on labels that the tiebreak is your existing cloud bill, not their output. Treat the five rules above as the specification, and expect the cleanup layer to take longer than the integration.
Video. Almost none of this applies. Frame sampling, duration and motion description change the job enough that we wrote a separate guide to stock video keywording.
What I actually do
I run the vision pass, then I read the first ten keywords and nothing else.
Adobe says the first 10 carry the most weight in search placement, and they are where a bad tag does real damage. I apply the same rule on Shutterstock out of habit rather than from any published statement of theirs. If the first ten are specific and a buyer would plausibly type them, the rest of the list is padding and padding is harmless. If the first ten contain grass, the whole result is wrong and no amount of editing further down saves it.
Then I add the two things the model cannot see: where it was shot, and whether it is editorial. That takes about fifteen seconds per image and it is the only manual step I have not been able to delete.
The bottom line
AI image tagging solved recognition and stopped there. Everything after it is deterministic, unglamorous, and the actual product.
About a week of code separates twenty-three correct tags from an accepted Adobe upload, and nobody writes blog posts about that week.
Filing photos? Buy a tagger. Selling them? Buy the layer that runs after one, or build it from the five rules above.