How PhotoTager works: from photo to iStock-ready keywords

PhotoTager is not a single AI call. An AI vision model writes a first draft of the title, description and scored keywords. PhotoTager then matches those keywords to the Getty/iStock controlled vocabulary, finds related keywords in a precomputed similarity map, lets a model fine-tuned for iStock pick the final keywords, and gives you a review screen before you export. Below is every step, the exact rules we use, and a real example. Nothing here is a secret. If you'd like to build it yourself, this is the recipe.

Why one AI call isn't enough

Modern AI models describe photos very well. Selling on stock agencies takes more than a good description, though.

The vocabulary problem

Getty Images and iStock work with a fixed list of keywords. AI writes natural phrases like "eco-friendly carport", which aren't on it. In our example, only 3 of 44 AI keywords were valid iStock keywords as written.

The guessing problem

Asked for 50 keywords, a model will write 50, even when only 35 truly fit. Weak, guessed keywords dilute your listing and can break agency rules about relevance.

The missing-words problem

Buyers search with many words for the same idea. A model describing one photo rarely thinks of all the related terms buyers use.

Why your context matters more than any model

AI sees pixels, not facts. It can tell that women are laughing in a room with balloons, but not that it's a bridal shower. It sees a lake with a church on an island, but not that it's Lake Bled. Buyers search for exactly those facts: the event, the place, the species, the name of the dance. One line from you supplies what no model can see, and it improves every later step.

Diverse group of women laughing together at a bridal shower with balloons and flowers

Same photo, same model

Without context:
"Diverse Group of Women Conversing at an Indoor Festive Event with Balloons and Floral Decor"

With the context "Diverse group of women having a bridal shower":
"Diverse Women Sharing Laughter and Joy During Bridal Shower Gathering"

"Festive event" becomes "bridal shower", the phrase a buyer actually types, and it flows into the keywords too.

Where your context goes

You write the context once per project. PhotoTager uses it in three places:

  • Step 3, titles and description: it goes into the prompt as facts the AI must use. If you write it in another language, the AI translates it to English first. If it's unclear, the AI ignores it and works from the image alone.
  • Step 5, similarity map: the words of your context are looked up in the map alongside the title and keywords, so "bridal shower" also brings in related vocabulary keywords.
  • Step 6, iStock model: the fine-tuned model gets your context next to the photo, title and description when it picks the final iStock keywords.

How to write good context

  • Who, what, where, when in one line: "Lake Bled, Slovenia, sunrise in October".
  • Facts, not adjectives. "Lakhon khol dance performance, Cambodia" helps more than "beautiful traditional dance".
  • Things the photo can't show: place names, events, species, product or dish names, the purpose of a scene.
  • One project per shoot. Context applies to every file in the project, so keep photos from different places or events in separate projects.
  • Only what's true for all the files. If a fact fits only some photos, put those in their own project.
  • Any language is fine, and you can leave it empty: then the AI works from the image alone.

You can test it for free: the Prompt Playground has the same context field, so you can run one photo with and without it and compare.

The 8 steps

  1. You upload photos or videos and add context

    Upload files, folders or whole batches. Add one line of context: who, what, where, when. For example, "Lake Bled, Slovenia, at sunrise". The AI can't know place names, events or people's names from the pixels, and context makes the biggest difference to quality (see why).

    Under the hood The AI sees a downscaled copy of each photo, which is faster and cheaper with the same result. For videos we sample up to 4 frames (about one per second, max 512 px). With Gemini we send the whole clip, because Gemini can watch video.
  2. You choose a template, which decides the AI model

    Every project uses a template. It decides which AI model writes your text and in what style, including an editorial mode for news-style captions.

    TemplateModel used
    OpenAI GPTAlways OpenAI GPT
    Anthropic ClaudeAlways Anthropic Claude
    Google GeminiAlways Google Gemini
    PhotoTagerChosen per image: OpenAI GPT 70% of the time, Anthropic Claude 30%. This is the only template that mixes models.
    Your Playground promptExactly the model you tested it on in the Prompt Playground
  3. The AI writes titles, a description and scored keywords

    You get agency-ready titles, a description and a ranked keyword list. Our prompts ask the model to score every keyword for relevance, so weak keywords are dropped instead of padding the list.

    Under the hood
    • Each keyword gets a relevance score from 0 to 1.
    • Duplicates are removed, anything scoring 0.31 or less is dropped, and the best ~50 are kept.
    • The rest become suggestions you can add back with one click.
    • Your own Playground prompts don't ask for scores. For those, the first 50 keywords are kept in your prompt's order.
  4. Keywords are matched to the Getty/iStock vocabulary

    We turn the AI's keywords into keywords iStock can use, and show you the ones it can't. This happens on every run, including titles-only runs. It's instant and costs nothing extra.

    Under the hood
    • We keep a dictionary of 20,633 vocabulary keywords.
    • A keyword matches only if it's the same apart from case, punctuation, plural or British/US spelling: "grey" → "Gray Color", "glass" → "Glass - Material".
    • Many iStock keywords carry a qualifier that fixes the meaning. A plain word only gets a qualifier when the meaning can't change: "Material", "Color" or "Natural Phenomenon". "Spring" never becomes "Spring - Flowing Water".
    • A long phrase is broken into the vocabulary keywords inside it, longest first: "white car" → "White Color", "Car".
    • No loose fuzzy matching. It would turn "Interior Design" into "Interior Designer", which is a different keyword.
  5. A similarity map finds related keywords

    For the words in your title, keywords and context, we look up related vocabulary keywords and collect the ones that come up most often. This catches words a buyer might search for that the AI didn't write.

    Under the hood For every one of the 20,633 vocabulary keywords, we calculated its 20 closest keywords by meaning in advance. We used sentence embeddings from the open-source all-MiniLM-L6-v2 model. Looking them up takes milliseconds and needs no AI call. The map is deliberately broad, so it also suggests some wrong words (see the example below). That's why step 6 checks the candidates against the photo.
  6. A fine-tuned iStock model picks the final iStock keywords

    A model we fine-tuned for iStock keywording looks at the photo again, together with the title, the description, your context and the candidate list from step 5. It keeps what really fits the image, throws out the noise, adds what's missing and ranks everything.

    Under the hood
    • A fine-tuned Gemini model on Google Vertex AI.
    • Every keyword it returns is checked against the vocabulary again, and anything not in it is removed.
    • You get at most 50 iStock keywords plus up to 25 suggestions.
    • It runs on Generate All, Re-Generate All Metadata and Re-Generate iStock Keywords, and replaces the vocabulary-matched keywords from step 4.
  7. You review, one image at a time

    AI gets things wrong, so you have the final say. Review in Details shows each image next to its titles, description and iStock keywords. Click a keyword to remove it, click a suggestion to add it, then save and move to the next image.

    Under the hood Suggestions come from the similarity map (step 5), the iStock model's suggestions (step 6) and the lower-scored keywords from step 3. Changes save automatically when you move to the next image.
  8. Export for every agency

    Download a CSV for bulk upload to each agency, or have the titles, descriptions and keywords written straight into your files and download them as a ZIP. See the metadata rules for each agency.

    Under the hood Metadata is embedded as standard IPTC, XMP and EXIF fields with ExifTool, so Lightroom, Bridge and agency uploaders can read it.

A real example: one photo, step by step

A photo of a white electric car under a modern foldable carport, run as a titles-only batch with a Playground prompt. These are the actual outputs.

Step 3: what the AI wrote

Title: Innovative Foldable Carport Design Protecting White Electric Vehicle Outdoors

Description: Modern foldable carport sheltering a white electric car in a minimalist residential driveway. Ideal for showcasing sustainable design, urban living, and protective vehicle solutions in contemporary architecture settings.

Keywords: 44 phrases, such as "foldable carport", "white car", "urban driveway", "eco-friendly carport", "sustainable living", "weather protection"…

44keywords the AI wrote
3valid iStock keywords as written
21valid iStock keywords after matching (step 4)
50related candidates from the similarity map (step 5)

Step 4: how phrases became iStock keywords

AI keywordiStock keywords found
electric carElectric Car (already valid)
white carWhite Color, Car
weather protectionWeather, Protection
urban drivewayDriveway
minimalist architectureArchitecture
foldable carportFoldable ("carport" isn't in the vocabulary)
eco-friendly carportnone: shown to you as "Not in iStock"
sustainable livingnone: shown to you as "Not in iStock"

Step 5: what the similarity map suggested

Useful candidates:

Building ExteriorMotor VehicleLand VehicleAdjustableClimateArchitectural Feature

And noise, because "shelter", "car" and "outdoor" have many meanings:

Animal ShelterHomeless ShelterCar AccidentSports CarOutdoor FireTurban

We show you this on purpose. The map is fast and finds words you'd miss, but it doesn't look at the photo. That's what step 6 is for: the iStock model gets these candidates together with the image, so a word like "Animal Shelter" has to match the photo to make the final list. In the review screen these stay as suggestions you add yourself; they're never added automatically.

ChatGPT alone vs PhotoTager

Asking a chatbotPhotoTager
Titles & descriptionsYes, one photo at a timeYes, for hundreds of files per batch, using your context
Keyword relevanceWhatever count you ask forScored 0–1; weak keywords dropped (step 3)
iStock / Getty vocabularyFree-form phrasesMatched to 20,633 vocabulary keywords; rejected ones shown (step 4)
Related keywordsOnly what the model thinks ofSimilarity map + fine-tuned iStock model (steps 5–6)
ReviewCopy, paste, edit by handOne-click add/remove, image by image (step 7)
ExportCopy-paste into each agencyCSV per agency or metadata embedded in the files (step 8)

Build it yourself: the full recipe

We're happy to share it. If you have the time to build and maintain this, here's everything you need:

  1. A vision AI model, prompted to return a title, a description and keywords with a relevance score each, as JSON.
  2. A score cut-off (we use 0.31) and a cap (~50) to drop the weak keywords.
  3. The agency's controlled vocabulary as a list, with matching that handles case, plurals, spelling and qualifiers, and splits long phrases. Avoid loose fuzzy matching.
  4. An open-source sentence-embedding model (we use all-MiniLM-L6-v2) to precompute the 20 nearest keywords for every vocabulary keyword.
  5. A second model call that sees the image plus the candidates and picks the final keywords. We fine-tuned Gemini for this; a strong prompted model is a good start.
  6. A final check that every keyword exists in the vocabulary.
  7. A review screen, a CSV exporter per agency, and ExifTool to embed IPTC/XMP metadata.

Or let PhotoTager run it for you, from $0.04 per image. Try your own prompt first in the free Prompt Playground, which shows the same vocabulary-matched iStock keywords.

How we check quality, and what we never do

Quality: we test the pipeline on images whose real Getty keywords are known, and measure how many of the keywords Getty's editors chose we find. That's how we compare prompts, models and matching settings against each other.

Privacy: we never use your photos, videos or metadata to train AI models, and we don't keep your files long-term.

Frequently asked questions

Is PhotoTager just ChatGPT with a nicer interface?

No. An AI vision model writes the first draft of the title, description and keywords, but then PhotoTager matches the keywords to the Getty/iStock controlled vocabulary, looks up related keywords in a precomputed similarity map, and runs a model fine-tuned for iStock keywording before you review the result. In our example only 3 of 44 AI keywords were valid iStock keywords as written.

Which AI models does PhotoTager use?

Vision models from OpenAI (GPT), Anthropic (Claude) and Google (Gemini) for titles, descriptions and keywords. Each template uses the model it names. The PhotoTager template is the only one that mixes: for each image it uses OpenAI GPT 70% of the time and Anthropic Claude 30% of the time. The iStock keyword step uses our own fine-tuned Gemini model on Google Vertex AI.

Why do iStock and Getty Images need special keywords?

Getty Images and iStock work with a controlled vocabulary: a fixed list of keywords, often with a qualifier that fixes the meaning, such as "Glass - Material" or "Gray Color". Keywords outside it can't be used, so free-form AI phrases like "eco-friendly carport" don't help your images get found there.

Why should I add context to my photos?

Because AI sees pixels, not facts. It can't know the place, the event, the species or people's names, and those are what buyers search for. One line like "Diverse group of women having a bridal shower" turns "festive event" into "bridal shower". PhotoTager uses your context in the titles and description, in the similarity map and in the iStock model. Context applies to every file in a project, so use one project per shoot.

Do I get iStock keywords if I only generate titles and descriptions?

Yes. After a titles-only run every image gets iStock keywords from the vocabulary match (step 4), which is instant and free. The fine-tuned iStock model (step 6) runs when you choose Generate All or Re-Generate iStock Keywords.

Can I build the same system myself?

Yes, and this page lists every ingredient: a vision model that returns scored keywords, the agency's controlled vocabulary, an open-source sentence-embedding model to precompute related keywords, a model tuned or prompted to pick the final keywords, a validation pass and a review screen. PhotoTager saves you building and maintaining it.

Do you train AI on my photos?

No. Your photos, videos and metadata are never used to train AI models, and we don't keep your files long-term. Upload, generate, export, then delete your working files.

Spend more time shooting, less time tagging

Pay-as-you-go, no subscription. Start with $2 of free credits.

Start free

Prompt Playground · Agency metadata rules · Our SEO approach · Pricing