This topic explains how to write effective prompts that produce high-quality keywords, descriptions, and traits with AIs such as Ollama and OpenAI.
AIs such as Ollama and OpenAI use a user-supplied prompt to produce a result, such as a description of an image or a list of keywords. By writing a prompt ("prompting the AI"), you ask a question or tell the AI what you want it to do. For example, consider this prompt:
Describe this image in the style of a news headline.
The above prompt produces very useful descriptions with OpenAI, Gemini, Mistral, and local models. The term local model refers to models you run locally on your PC, e.g. using Ollama or LM Studio.
Provide a short description in one sentence.
Describe this image in two sentences. Use factual language.
These two slightly more elaborate prompts give the AI an idea of what you expect.
Another frequently used prompt asks the AI to analyze the image and return a number of keywords describing it:
Return five to ten keywords for this image.
This returns a list of keywords that AutoTagger processes and adds to the image in your database. See the AutoTagger main help topic for more information.
A well-crafted prompt enables you to not only instruct the AI on what to do, but also influence its output in meaningful ways, such as tone, style, and length. By choosing between concise and elaborate descriptions or opting for brevity, you can shape the language that the AI uses to describe your images.
AutoTagger empowers you to enhance the AI's understanding by providing contextual information, such as specifying that the images being described were captured at a particular location. By doing so, you can help the AI generate more accurate and precise descriptions and keywords.
Prompts may vary slightly, depending on the AI and model you use. You'll learn more about prompts in the prompting section below.
AutoTagger sends the prompt to the AI and processes the response to create descriptions, keywords and traits. The result is something like this:

Since the images now have descriptions and keywords, they are searchable and organized by their keywords in the @Keywords category hierarchy, without any manual work.
It is important to understand that the AI cannot provide specific descriptions for an image in the way you do. It does not know that the photo was taken at Mike's and Jenny's wedding or that the woman in the green dress standing in the background on the left is Susan, Mike's mother.
AI will produce a description that makes it clear that this is a photo taken at a wedding and that a dancing couple is the central subject etc. This makes this image searchable using terms like wedding or dance ‐ even when you have not yet added keywords or descriptions yourself.
When you look at the keywords generated for both images, it is clear that they describe what is shown in the image. If you later perform searches for terms like wedding or bride or train or kiwi, IMatch will include these files in the result.
IMatch AutoTagger gives you everything you need to provide the AI with context using data already stored in your database. Look at this image, for example:

Description and keywords are AI-generated. But we provided the names of the persons in the image and the country name to the AI by including variables in the prompt. The ability to use data already in your database for prompting makes AutoTagger so powerful. We'll explain more about this in the rest of this help topic.
If you expect specific results from the AI, such as a certain description length or style, or the inclusion of buildings or landmarks visible in the image, simply ask the AI how to write a prompt that produces the results you are looking for. The AI usually has a good understanding of how to write prompts that create exactly the results you want.
Depending on which model you use, open the chat interface. Then ask the AI something like:
I want to you analyze images and create descriptions these images. I use the API to upload the images and prompt. The description should be two sentences long at max and use factual language and the style and tone of a news or magazine caption. Examples: "A group of three women hike through a mountainous region. They are smiling and appear to be enjoying the scenic views.", "A wide-angle view of the Palace of Westminster and the Elizabeth Tower, commonly known as Big Ben, situated along the River Thames in London. Westminster Bridge extends across the foreground, and the sky shows streaking clouds indicating a long-exposure photograph.", "A close-up shot shows a large cast iron pot filled with tomato and bean soup garnished with fresh basil leaves, alongside bread rolls and herbs on a stovetop." What would be the optional system prompt and user prompt to use to make you generate such descriptions for images I upload?
Use descriptions you have written as examples for the model. You may also want to include more details about the expected formatting, language, length, and anything else that is important to you. After a few iterations, you should end up with a good prompt that you can use in AutoTagger in the future.
By enriching the prompt with more context, such as the people shown, the date and time, GPS coordinates, and similar information, you can usually improve the results the AI model produces for your photos significantly. See More About Prompts below to learn how to do this easily using IMatch variables.
A model is basically the brain of an AI. To create a model, AI companies train a model with a massive amount of curated data. Training can take a long time and can cost millions of dollars. What comes out at the end of the training is a model ‐ basically a big file with billions of 'weights' (numbers), which represent what the AI has learned from the training data.
Now all you need is a computer which can run the AI software which then uses the model to do stuff.
Depending on what the model was trained for, this can be anything, from answering questions about the world in a chat, creating images from text inputs, writing program code or analyzing images.
In the context of IMatch, we're interested in models which have learned to analyze images. This includes things like object detection ('bicycle', 'car', 'beach', 'rain', 'taxi'), motive ('landscape', 'wedding', 'baseball game') and concepts like 'mood', 'lighting', 'weather', 'season' and so on.
We can utilize these capabilities in IMatch to automatically describe images, add keywords and create custom traits based on specific information we are interested in.
IMatch AutoTagger allows you to use both cloud-based (OpenAI, Google Gemini, Mistral) and local models, running on your own PC.
See AI Services for a list of supported AIs and local models.
This topic also covers installation of free tools like Ollama or LM Studio when you want to try out local AI.
Open Edit menu > Preferences > AutoTagger to configure AutoTagger options.
From the list of supported AIs, select the AI service (cloud-based or local) you want to use.
To use cloud-based models, you need an account and API key.
AutoTagger settings offer 3 default targets for AI-generated content:

You can either store the context in dedicated AI tags (see below) or standard XMP tags, like XMP description or XML hierarchicalSubject.

Which tags to use depends on your requirements. If you want to maintain separate human-made descriptions and keywords and separate these from AI-generated content, use the AI tags as the target. Otherwise, use the standard XMP tags. This is the best solution for the majority of users.
Click on the prompt button (marked with yellow above) to open the prompt editor for the tag. Here we enter a prompt for the description tag:

In this dialog box you enter the prompt to send to the AI (for the description, in this case). The prompt shown above is the default prompt used by AutoTagger. You can customize it as needed in this dialog box.
Fill only if target tag is empty | This option controls whether or not AutoTagger replaces existing data. See also Content Type Settings in the AutoTagger help topic. |
Merge with existing target tag values | For repeatable tags only (keywords and landmark, traits). This setting controls if AutoTagger replaces the contents of the target tag or if it merges new elements with existing elements (without duplication). You would enable this if you want to merge AI keywords with existing keywords or append a description to the AI.description tag. |
After entering your prompts, you close this dialog with OK. Select one or more images in a File Window and run AutoTagger with F7.

See Using AutoTagger for more information.
You can specialize prompts by including instructions for the style you expect the response to be in. To give you some ideas:
Describe this image.
This prompt produces a usable description. But it might be too long or winded for your taste. In that case, try something like this:
Return a short description for this image.
Describe this image but keep it short.
This tells the AI that you want something a bit more to the point. Another helpful technique is to suggest a specific style by giving an example:
Describe this image in the style of a news caption.
Describe this image in the style of a news headline.
Describe this image in the style of a magazine caption.
Describe this image in the style of a travel magazine caption.
Describe this image in the style of a sports magazine caption.
Describe this image in the style of a website for cat enthusiasts.
Write a short story about this image.
Describe this image in the style of a news magazine. Include details about the location, lighting and landmarks you can identify.
Each prompt will coerce the AI to produce a description in a different style and length. When you ask the AI to describe photos you have taken while on a vacation, including an instruction like 'in the style of a travel magazine' may produce exactly the style of description that matches the content.
If the prompt uses too many words like appears or seems to try adding Use factual language:
Describe this image in the style of a news caption. Use factual language.
You can tell the AI to assume a specific role:
You are a technical writer working on documentation. Describe the graphics you see in this image using factual language.
It can also be helpful to give the AI some examples:
Describe this image in the style of a magazine caption. For example: 'A street scene photographed in London. We see one of the iconic red buses, some passengers boarding' or 'A wedding photo, showing the happy newlyweds dancing, surrounded by their families and friends.'
The prompts above are working fine across all AI services and models. But you can ask your model for a much more targeted prompt that produces the descriptions in the format, style, length and language you want.
A photo enthusiast engaging in bird photography prefers descriptions which include the species of the bird shown, maybe the Latin name. A photographer shooting motor sport races will require other details in the description, like the car number, the brand of the cars in the shot and other details.
You can achieve all this by explaining what you require in the description and asking the model to formulate a prompt for you.
If you work with hierarchical keywords, you can ask the AI to create them instead of flat keywords. For example:
Return 5 to 10 keywords describing the person's clothing. Prefix each keyword with 'apparel|'.
This trick makes the AI return apparel|leather jacket instead of just leather jacket. If the AI and model you use supports this (give it a try), you can make it produce hierarchical keywords matching your thesaurus.
This can be extended:
Return 5 to 10 keywords describing the person's clothing. Prefix each keyword with 'apparel|'. Return 1 to 3 keywords describing the location. Prefix each keyword with 'location|'. Return 1 to 3 keyword describing the lighting of the image. Prefix each keyword with 'lighting|'.
This usually works with all models. If it does not work with the model you use, ask it how to formulate the prompt to produce hierarchical keywords.
See Generating Hierarchical Keywords with the Gemma 4 and Similar Models for additional tips on making the AI create hierarchical keywords that match your criteria.
Use the Keyword Mapping feature of AutoTagger to project flat or hierarchical keywords delivered by the AI into your keyword hierarchy and ensure consistent keywords.
Each image produces distinct results depending on the AI and model used. Working with AIs today often involves creativity, nuance, and experimentation when writing prompts - it is sometimes more art than science.
Prompts that work well for your images may not yield the same results for another user's images. Conversely, you might find that using tailored prompts for different subjects produces better descriptions. AutoTagger makes this easy with features like context placeholders (learn more).
After a few experiments, you'll likely discover a good set of prompts for descriptions and keywords. Save them as AutoTagger settings and select them whenever you run AutoTagger for a specific kind of images.
Prompts can ask for very specific information:
Extract the text in this image.

This produces this response:
Start Managing Your Files. Today! Digital Asset Management (DAM) Solutions. For Professional and Enthusiast Photographers and Videographers. For Scientists, Librarians, Historians, Artists and Collectors. Rock-solid. Powerful. Flexible. Standard-compliant. Affordable. Making it DAM easy. IMATCH IMatchAnywhere Support The Digital Asset Management System (DAM) for Windows Access IMatch from Anywhere with Your Web Browser We Love Our Products. We're Here for You!
You can also use a prompt like this to read, for example, the front page of PDF files you manage in IMatch and add the text and keywords to your database.
Explain the chart in this image.
This prompt can be used to add descriptions of charts shown in images to your database, to allow you to search for the information contained in the charts.
Use the Large image size in AutoTagger settings when analyzing small details such as text or graphics. This gives the AI more pixel data to work with. Extra cost may occur when larger image sizes are used with cloud-based models.
Most modern models, from OpenAI to Google to Mistral, and even models you can run locally like Gemma or Qwen, support multiple languages. If you want the description in German, for example, change the prompt to:
Return a short headline in Deutsch for this image.

The same works also for keywords and traits, of course:
Return five to ten keywords in German language for this image.
You can even request keywords in multiple languages, with a prompt like this:
Return five to ten keywords each in both German and English for this image.
You can create separate settings for each language you work with and then run the setting for the language you need at the moment.
If you run both a setting for e.g. German and English keywords successively, IMatch merges the keywords automatically, unless you enable the option to replace existing contents.
Many models respond in the same language as the prompt they have received. Prompt in French to get answers in French.
This gives you a lot more flexibility when you work in multiple languages.
Models that have been quantized/distilled to make them small enough to run with Ollama or LM Studio may offer less languages to choose from. This is especially true for 2B and 4B model variants.
You can create AutoTagger settings which ask the AI for a description, a set of keywords, landmarks and maybe a number of your custom traits. The more information you ask for, the longer the AI will take to respond. And, for fee-based AI services, the cost will be slightly higher, because both the prompt and the response are longer.
An often useful approach is to create multiple settings, e.g. one for creating a description and one for keywords. Or, multiple settings, asking for different types of keywords, e.g., location keywords, keywords for clothing, food, vehicles, ...
You can select a group of images and run multiple AutoTagger settings for them as needed. Maybe one 'Default' setting you always use, and then some additional specialized settings for generating different types of keywords or explaining different aspects of an image.
Even on moderate hardware, simple prompts run in maybe a second or two. The same is true for cloud-based AI services. You get faster answers with shorter prompts.
Especially if your photos show complex motives like vehicles, planes, animals or similar, dedicated settings with precisely built prompts can lead to much better results.
If you use very complex prompts, e.g. for taxonomy or animal species detection, keep them in separate settings. Do not combine complex prompts for descriptions with complex prompts for e.g. keywords. This may confuse/overload the AI and degrade responses.
This setting is not supported by all models. The corresponding control in the AutoTagger settings dialog is disabled if the model does not support this feature.
Basically, this setting controls how creative the AI may become when responding to the prompt. You can set the creativity in the AutoTagger configuration to a value between 0% and 100%. The higher the setting is, the more creative the AI can be when interpreting the prompt. The creativity setting is applied to all prompts in the setting.
A creativity setting between 40% and 80% works best for most subjects.
Often, a model comes with suggestions for creativity/temperature, so make sure to check the website of the AI vendor/model. For example, for Google Gemma 4, the temperature must be set to 100%.
If you don't get usable results, try to change the creativity setting to another value, e.g. go down or up by 5 or 10 percent. This often has a substantial effect on the outcome.
Different models react differently to the creativity setting.
If you have picked a model, run AutoTagger a couple of times for the same set of images with different creativity settings. This will show you how the model reacts to creativity for the motives in the images you are working with.
Not all models support the Creativity setting. If a model does not support this setting, it is disabled in the configuration dialog box.
This setting is not supported by all models. The corresponding control in the AutoTagger settings dialog is disabled if the model does not support this feature.
The seed setting can be used for experiments. By default, seed is 0, which means that a new seed value is created randomly every time AutoTagger performs an AI request. Setting the seed to a specific number allows, to some extent, to reproduce previous AutoTagger results. The creativity must be set to 0%, too.
For normal use, leave the seed set to 0 and the creativity between 20% and 80%.
The following descriptions and keywords were created with OpenAI (GPT 5 Luna model in fall 2026) using the prompt:
This image was taken in London, United Kingdom. Describe this image in the style of a news caption. Use factual language.
This image was taken in London, United Kingdom. Return ten to fifteen keywords describing this image. If you identify known landmarks or places in the image, return them as keywords too.
We give the AI context by including the phrase This image was taken in London, United Kingdom. as part of the prompt (we know where the image was taken, so the AI does too).

For comparison, here is the result of auto-tagging the same three files with the free LM Studio software (Gemma 4 e4b model) in August 2026. This is a small model with four billion parameters that should run fine on graphics cards with 6 to 8 GB of VRAM:

Models, both in the cloud and locally, improve rapidly. The results we got when writing this are likely to be worse than those you get from the current generation of models. Everything changes so fast...
While the results for the small model shown above are quite good, large cloud-based models can have advantages when it comes to identifying locations, animal species and breeds, detailed taxonomies, and more.
To make it possible to run an AI model on a 'normal' PC or notebook, it has to be reduced in size/precision. This process is called quantization or distilling. The popular and free Gemma 4 and Qwen 3.6 models for Ollama/LM Studio come in several sizes, each requiring a different minimum amount of fast memory (VRAM) on the graphics card. The 7b variants run fine on a graphics card with 6–8 GB of VRAM. The 13b models are better but require a graphics card with 16 GB VRAM. 26b or 31b variants require 24 GB or more VRAM, and that's way outside of what's available for consumer graphics cards in 2026. And that does not even account for the high cost of the graphics cards.
As of August 2026, we see new technologies emerging (such as MTP) that reduce the amount of VRAM required to run larger models. It is possible that we will be able to run much larger models on consumer hardware in the future—which is great news!
The large models provided by AI companies such as OpenAI and Google are very good, but they also require massive amounts of specialized hardware and computing power in dedicated data centers. Luckily, we can rent some of that power when we need it and pay only for what we use. Processing 1,000 images (description and keywords each) with OpenAI costs a few cents, depending on the model used and the prompt and response length.
Compared with the price of a powerful graphics card such as an RTX 5080 in 2026 (about US$1,000), OpenAI, Google, and Mistral are inexpensive. Expect to pay about US$10 to describe and tag 10,000–15,000 images. Typical processing time is 1–2 seconds per image, and IMatch processes eight images at the same time. Even on a very fast graphics card, local AI typically needs 2–5 seconds to process an image, depending on the prompts.
AI models are somewhat mysterious, unfathomable, and random. At least for now!
What we mean by this is that, using the same prompt, image and settings, the results returned by the AI may vary. You often get slightly different descriptions and keywords for the same image when you run AutoTagger for it again. This is the nature of how AI works these days and outside of the control of IMatch.
This also means if you don't like a description created by the AI, you can run AutoTagger again to produce a variation. Maybe increase or reduce the creativity setting by a few percent.
If you have a set of very similar images with the same motive, run AutoTagger with the Run Once option enabled.
This feature queries the AI only for the focused image and applies the AI results to all other selected files. This results in identical descriptions and keywords for all selected files.
From time to time, the AI returns nonsense when you ask it to describe an image. Or it hallucinates and describes something that does not actually exist in the image. These are kinks we currently have to live with. The AI companies work hard on resolving such issues and for newer models this is far less of a problem than for models created just a year ago. From experience, this happens rarely in the IMatch context.
It often helps to dial down the creativity to about 30%–40% to rein in the AI when it hallucinates.
Behavior varies by AI and model. In our experience, it often helps to make the prompt more precise, leaving the AI less 'wiggle room' in its response. For example, the phrase ...return the word 'Animal' versus ... only return the word 'Animal' can make a difference.
This is one of the features that sets IMatch apart from other, simpler applications.
When using a context placeholder in your prompt, you can add or modify text before running AutoTagger. This feature provides a convenient way to introduce additional context or user-entered text into your prompts, without requiring changes to the original setting within AutoTagger.
Click this button to insert the context placeholder:

Let's see how it works. Consider this prompt:
[[-c-]] Describe this image in the style of a short news headline. Use factual language.
When you run this setting with this prompt in AutoTagger, you can provide context information easily:

Entering context information when running AutoTagger.
The prompt actually sent to the AI becomes:
This image was taken in Paris, France.Describe this image in the style of a short news headline. Use factual language.
This gives the AI context to work with. It will 'know' that the images being processed were taken in the city of Paris, France. This allows the AI to produce better descriptions and keywords by considering this fact.
When you later run AutoTagger on a folder containing images taken in Las Vegas, you would let the AI know via the context:

This image was taken in Las Vegas.Describe this image in the style of a short news headline. Use factual language.
Consider the following image. For the results shown on the left, we did not provide any context and the "Describe this image in the style of a news headline." was used as-is. For the result on the right, we provided the context: "This is a wedding photo." via the context placeholder.

This image shows people at the Heathrow airport, waiting for their plane to depart.Describe this image in the style of a flyer provided to tourists.
This picture was taken during a bike tour with my friends in the Swiss Alps.Describe this image in the style of a traveling magazine.
If you don't enter any context information in AutoTagger, the context placeholder [[-c-]] (and the immediately following newline and space) is replaced with nothing and the prompt simply becomes:
Describe this image in the style of a news headline.
Finish the context information you enter with a period to ensure the AI sees it as a sentence.
The context placeholder feature makes prompts more flexible and versatile. You can provide context directly in the AutoTagger dialog box, while keeping the prompt in the settings unchanged.
If you set up a setting that, for example, fills the XMP description tag, and the prompt only consists of the context placeholder, whatever context you enter when running AutoTagger will become the prompt.

This little trick allows you to create a prompt for the current situation or demands whenever running AutoTagger.
IMatch allows you to use variables in prompts. This makes prompts a lot more flexible and versatile, in a similar fashion to context placeholders. Including variables in a prompt enables you to reuse information already in the database, to provide context and guidance to the AI.
For example, including the description in the prompt can improve the quality of the keywords produced by the AI:
{File.MD.description}.
Return ten to fifteen keywords for this image.
Or, if the description was created by the AI and stored in the AI.description tag, you would use:
{File.MD.AI.description}.
Return ten to fifteen keywords for this image.
The dot . following the variable is important, it finishes the sentence. Add it, unless your descriptions end with a .
You can also do it the other way round:
This image has the following keywords: {File.MD.hierarchicalkeywords}.
Describe this image in the style of a news magazine caption.
Or, when the keywords are in the AI tag:
This image has the following keywords: {File.MD.AI.keywords}.
Describe this image in the style of a news magazine caption.
The data you reference via the variable must already exist in the database at the time the prompt runs. You cannot refer to data that is created by the current prompt.
For example, your AutoTagger settings use prompts to create a description and keywords. You cannot reference {File.MD.description} or {File.MD.AI.description} in the prompt for keywords, since these tags are not filled at the time the keyword prompt is processed.
IMatch processes all prompts used in a setting in one AI request, to improve performance and reduce cost. It then transfers the data produced by the request into the target tags in the database.
If you want to use the description of an image in a keywords prompt or a trait, create two settings. One with a prompt for the description and one for the prompt filling the keywords.
Then run the description setting first for a selection of files and the keywords setting afterwards. This ensures that the description is filled before the keywords and trait prompts reference it.
Another example of using variables to include already existing data to guide the AI would be location information. If you have invested time in performing reverse geocoding or manually entering location data, you can leverage that valuable data to guide the AI and provide context:
This image was taken in {File.MD.city},{File.MD.country}.
Return ten to fifteen keywords for this image.
This prompt includes the name of the city and country, when the location data is available for the image, e.g.:
This image was taken in WC2B 4BG London,United Kingdom.Return ten to fifteen keywords for this image.
The AI will consider this information to produce better, more targeted keywords.
We can improve this and make it work even when there is no location data by applying a bit of clever variable logic:
{File.MD.city|hasvalue:This image was taken in {File.MD.city},}{File.MD.country|hasvalue: {File.MD.country}.}
Return ten to fifteen keywords for this image.
The hasvalue function checks whether the variable is not empty and, if it is not, returns the text following the :
We use this to conditionally output the city name followed by a comma and the country name followed by a period.
If there is no city name and no country name, the prompt just becomes:
Return ten to fifteen keywords for this image.
A good way to include names of people in an AI description is to list them via a variable. You can either include the variable in the prompt, or provide them via the context placeholder as needed. Here we use it in the prompt itself:
These persons are shown in this image: {File.Persons.Label.Confirmed}.
Describe this image in the style of a magazine caption. Use factual language.
This usually makes the AI include the people's names in the generated description. Note that we use the .Confirmed variant to only supply the names of confirmed people.
If you plan to process a mix of images with and without people, you can use the hasvalue variable function to include the people in image context only when there actually are people in the image:
{File.Persons.Label.Confirmed|hasvalue:These persons are shown in this image: {File.Persons.Label.Confirmed}.}
Describe this image in the style of a magazine caption. Use factual language.
If there are no people in the image, the prompt is just:
Describe this image in the style of a magazine caption. Use factual language.
Maybe you don't want descriptions including the full name of the person, but only the first name. You can achieve this with this variable:
{File.Persons.Label.Confirmed|splitlist: ,first}
This splits the confirmed label, using the blank (space), and uses the first element. For a name like John Alexander Smith-Byrne, this variable returns John.
If your images contain multiple people, you can handle this by combining the foreach formatting function with splitlist:
{File.Persons.Label.Confirmed|hasvalue:These persons are shown in this image: {File.Persons.Label.Confirmed|foreach:{value|splitlist: ,first}, }}
This variable outputs the first name of each confirmed person in the image, separated with a comma. The AI will consider the name and produce a neat description like:
Tom, Susan and Millie playing outside in the snow.
which you can further control by giving the AI more information about your preferred description length and style.
For some motives, it might be useful to provide the AI with the date and time the photo was taken. You can do that via a variable:
This photo was taken on {File.DateTime}.
Describe this image in the style of a magazine caption. Use factual language.
You may have to change the format if the AI does not understand the default formatting, for instance: {File.DateTime|format:YYYY.MM.DD}.
The AI does not have any information about things or events taking place after the model was created.
If your image has GPS coordinates, including them in your prompt can produce much better, more detailed, descriptions. For example:
This image was taken at these coordinates: {File.MD.gpslatitude}, {File.MD.gpslongitude}. Consider this when identifying landmarks and buildings in the photo.If possible, you can utilize person names, location data etc. you have already in your database. Consider this prompt:
{File.Persons.Label.Confirmed|hasvalue:The person shown in this image is: {File.Persons.Label.Confirmed}.}{File.MD.city|hasvalue: The photo was taken in {File.MD.city}.} Describe this image in the style of a magazine caption. Use factual language.
If the file contains one or more confirmed people and has a city name in the IPTC location data, the prompt resolves to something like:
The person shown in this image is Peter Miller;Sandra Miller. The photo was taken in Los Angeles. Describe this image in the style of a magazine caption. Use factual language.
This gives the AI a lot of context to work with, and it will (usually) mention both the people and the location in the description and keywords.
Keep in mind that commercial AIs calculate cost based on the prompt length, among other things. Make the prompt as detailed as needed, but as short as possible.
This is a rather unique IMatch feature that combines a prompt and a custom AI tag in the IMatch.AI namespace. Traits can be used to query the AI for specific attributes, such as mood, lighting, or weather, or to determine whether an image shows animals, buildings, vehicles, or other objects.
If you work with scientific images, you may want to ask the AI to identify the species or breed of a specimen. You might also ask about the style of artwork shown, architectural details of buildings, and so on. What can be achieved depends on the model you use and your prompt.
The main purpose of traits is to automatically organize your files by things and attributes relevant to you.
IMatch ships with a Metadata Panel Layout named AI that displays the three default AI tags AI.description, AI.landmarks, and AI.keywords. If you create custom AI Trait Tags, you can add them to this layout to see them in the Metadata Panel, or create your own Metadata Panel layout.
You can display and format AI tags like any other tag in File Window Layouts.
You can use AI Trait Tags like any other tag via their corresponding variables everywhere variables can be used.
Imagine you want to group all images showing animals into a category. This is a good example of a trait.
You write a prompt like this:
If there are animals (cats, dogs, horses, fish, birds etc.) visible in this image, respond with the text 'Animals' else return an empty response.
and you tell AutoTagger to store the results of this prompt in the custom tag AI.Animals. The tag is created automatically if it does not exist.
AI tags work like any other metadata tag, except that they are stored in the database only and can be created and deleted by the user.
The result of running this prompt on a set of images is that each processed image will have either the value Animals in the AI.Animals tag, or the tag will be empty. This allows for numerous different uses:
AI.Animals tag to group images showing animals together{File.MD.AI.Animals} everywhere you can use variables in IMatchMaybe you prefer a prompt that returns 'No Animals' when the AI does not detect any animals in an image. Just change the prompt:
If there are animals visible in this image, only respond with the text 'Animals' else respond with the text 'No Animals'.
This prompt differs from the initial prompt. It assumes the AI knows what an animal is and it uses the word only to make it clear to the AI that it should not return any other text than the two text options requested in the prompt.
Depending on what question you ask in your trait, you might have to play with the prompt a bit to get reliable results. This of course also depends on the model used. We expect specialized models to become available in the AI world sooner than later.
If you create a data-driven category based on the AI.Animals tag, it classifies your images into files with animals, files without animals and other. Other contains all files not yet processed and files where the AI returned none or a different response than requested.
Identify the breed of the dog shown in this image.
Return the scientific name of the insect shown in this image.
Here are some other examples of traits. You can store the results, for instance, in AI.breed and AI.ScientificName tags, or use whatever names you prefer. Once the AI has filled the tag, you can search its contents, use it in data-driven categories, and more.
Let's say you are interested in organizing your files by where they were taken: indoors, outdoors, or unknown. It helps to be specific in your prompt and give the AI some examples. Also, depending on the model used, use a very low temperature to reduce creativity.
The process is the same. You create a new trait with a prompt and a tag, for example:
Classify the location of the scene in the image into one category: [Indoor, Outdoor, Unknown]. Examples: Image: A living room with a sofa -> Indoor Image: A forest path -> Outdoor Image: A close-up of a hand holding a cup (location unclear) -> Unknown Image: A car interior -> Indoor Image: A city street -> Outdoor Image: A body of water -> Outdoor Image: Desert or dunes -> Outdoor Now, classify the provided image. Output only one word: [Indoor, Outdoor, Unknown]
You use the tag AI.IndoorsOutdoors (the name is your choice) to store the trait results. This automatically organizes your files based on where they were taken. Use the AI tag for a data-driven category to make optimal use of the result.
What can be achieved with traits is only limited by AI capabilities and your prompt. Classify images based on whether there are cars or boats visible, whether they show buildings or mountains, grass, sky or sunshine. Maybe ask the AI to return a word describing the lighting, mood, complexity, or composition, or a list of the dominant colors...
For example:
Return a comma-separated list with the dominant colors in this image. Only return the color names, no other text.
This makes for a great trait, e.g. AI.Colors, to organize your files by their dominant colors using a data-driven category.
More ideas for traits:
Describe the mood of this image in one word.
Describe the lighting of this image in one word.
Return a comma-separated list of the largest objects in this image.
The following prompt is a bit specialized:
Return a JSON array with the largest objects in this image.
If you request a comma-separated list, the AI responds with a string (text), such as 'sun, beach, vacation'. If you explicitly request a JSON array, the AI returns (in almost all cases) a valid JSON array, such as ['sun','beach','vacation'].
AutoTagger detects this and adds one separate entry for each element in the returned array to the target tag (repeatable tag). This affects features like searching with AND, OR and NOT.
All AI tags are designed as repeatable tags.
Open the AutoTagger configuration via Edit menu > Preferences > AutoTagger and click on the Custom Traits button:

This button is only available for AIs supporting custom prompts.
This opens the Edit AI Traits dialog box.
When there are no traits yet, IMatch offers a list of trait examples you can choose from. We've used the sample trait Vehicles in this case. IMatch automatically filled in the AI tag name and the prompt:

The AI Traits Editor
You can now edit the prompt to your liking or add more traits. Confirm the changes with OK.
When you close the dialog box with OK, IMatch creates the AI tags referenced in your traits if they don't exist and stores the traits in the current setting.
From now on, whenever you run this setting with AutoTagger, the Vehicles and other traits in the setting are processed and the AI responses are stored in the AI tags in the database.
Trait tags automatically become tag Shortcodes and you can access them in variables using {File.MD.<trait name>}, e.g. {File.MD.AI.buildings}.
AI tags are stored in the database, but not written to metadata in files. If you want to persist trait tags in metadata, use a regular XMP tag for the trait, not an AI tag. Or, if you want to be more selective, use a Metadata Template to copy the contents of trait tags into regular XMP tags on demand.
You can combine traits with standard AI tags like description and keywords in one setting. AutoTagger processes standard AI tags and traits the same.
A more granular approach is to create separate settings for traits. In this case you disable the standard AI tags and apply only traits in the setting:

An AutoTagger setting with only one or two traits runs faster than an 'everything' setting which processes 5 or 10 traits.
To delete a trait, open the Traits Editor and click on the Delete button next to the trait you want to delete.
If the AI tag associated with the trait is not used in any other AutoTagger setting, IMatch asks you if you want to delete the trait AI tag and all contents from the database.
Trait tags work like any other tag, with two enhancements: IMatch creates AI tags for traits automatically and trait tags are only stored in the database, but never written back.
To see and manage all available AI tags, go to Database menu > Tools > Manage AI Tags.

The dialog box lists all AI tags in the database. From here you can rename and delete AI tags (and their contents from the database).
You can use trait tags like any other tag, e.g. show them in a Metadata Panel Layout or in a File Window Layout. To find AI tags, search the tag group imatch for the term ai in the Tag Selector dialog box:

If you now think: "Yeah. But I can do that myself, by looking at each image and filling a tag in the Metadata Panel." And you're right.
But the general idea of traits is to let the AI do the grunt work and free your time for more important things.
Here are some ideas for traits that may be useful for you.
If this image shows vehicles (cars, bikes, bicycles, boats, buses, planes etc.) respond with 'Contains Vehicles', else return 'No Vehicles'.
If this image shows a building, respond with 'Contains Building', else return 'No Buildings'.
If this image shows trees, respond with 'Trees', else return 'No Trees'.
Describe the lighting in this image in one word.
Describe the mood of this image in two words.
If this image contains a blue telephone box, only return the word 'Who' else return nothing.
Describe the emotional state of the person in this image based on their facial expressions and body language in one word.
Describe the emotional state of the person in this image based on their facial expressions and body language. Return a JSON array of words only, nothing else.
If you find a good prompt, let us and other users know via the IMatch user community.
Sometimes it's helpful to give the AI some examples of what you mean, which is why we've included the (cars, bikes, bicycles, boats, buses, planes etc.) part in the prompt above.
There are no rules. Try it first without providing additional examples, especially when you use a cloud-based AI like OpenAI. They consider the prompt length when calculating the cost of a request (because longer prompts need more computing power), and if a shorter prompt works for your trait, use it.
We have seen above that we can utilize existing content in the database in prompts using variables. There is more we can do with this.
We can, for example, translate existing keywords into German:

Translate the English keywords in this list ({File.MD.hierarchicalkeywords}) into German and return the resulting keywords.Starting with these keywords: cooking; women; food preparation; vintage style; kitchen; teamwork; smiling; aprons; baking; cuisine OpenAI returns the following German keywords: kochen; Frauen; Lebensmittelzubereitung; vintage Stil; Küche; Teamarbeit; Lächeln; Schürzen; Backen.
If you enable the prompt option to merge new keywords with existing keywords, the file ends up having both English and German keywords.
In the same fashion you could use prompts like:
Spell check and improve the following description: "{File.MD.description}" and return the result.Translate this description from English into German: "{File.MD.description}" and return the result.to improve or translate existing descriptions or other data available in your database and store it in an AI Trait, XMP description or keywords. Add more details to your prompt if you want the AI to transform the description into a specific style or length.
Note that the results of translations vary in quality and style. If you rely on it, consider using a specialized AI like DeepL for this demanding task.
Modern models can often be coerced to return very specific keywords by giving detailed examples. For example:
[[-c-]] Return up to 20 keywords describing this image. Create the following keywords: 1. identify the hair color and create a keyword in the following format: "hair color|[hair color description]" 2. identify the eye color and create a keyword in the following format: "eye color|[eye color description]" 3. identify the hair style and create a keyword in the following format: "hair style|[hair style description]" 4. Estimate the age of the person and create a keyword in the following format: "age group[age description]" 5. identify the apparel and create a keyword in the following format: "apparel|[apparel description]" 6. identify the facial expression and create a keyword in the following format: "facial expression|[facial expression]" 7. Only if you can identify the location with confidence, add a keyword in the following format: "location|[identified country]|[identified city]|[identified street or place]"
This prompt produces hierarchical keywords like hair color|blonde or hair style|short bob. Use it as a starting point for your own prompt experiments.
Sometimes it can be helpful to use different settings, with different prompts and maybe different image sizes.
A general setting may fill descriptions and keywords, while one or more dedicated settings prompt the AI for different things.
Maybe you want to perform OCR occasionally, letting the AI read text in an image and fill a custom traits tag. Or you want the AI to perform deeper image analysis, e.g. assessing focus, sharpness or lighting in detail. This may require sending a larger image size to give the AI more details to work with.
Running the general setting and then, when needed, one or more specialized settings on images where you need the additional info does the trick.
If your motives vary a lot (landscape, city trip, underwater photography, fashion, food, weddings), maintaining a curated set of per motive AutoTagger settings lets you get the best possible results from your AI of choice.
IMatch uses a default system prompt that works well for the typical purposes AutoTagger is used for and across different models. In rare cases you may want to provide your own system prompt to steer the AI model towards a specific behavior, style or personality.
A system prompt allows you to define the job description, specify a certain personality for the AI model, and define guardrails, style and other things.
The AI will interpret the system prompt before processing the user prompt (your normal prompt), using it as the core guidelines and general set of rules to follow.
Like prompting, writing good system prompts requires some patience and experimentation. Use your favorite search engine to find a wealth of information about system prompts and tons of examples.
In normal situations and typical IMatch workflows, the default system prompt used by IMatch should work just fine. Fine-tune your normal prompts for tags and traits, and you're good.
If you have very specific requirements for the role or personality of the AI model, creating your own system prompt may improve the quality and consistency of descriptions and keywords produced by AutoTagger.
You are an expert journalistic image captioning system. Your tone must be strictly factual, objective, and professional, mirroring major news agencies (e.g., Reuters or AP). You must adhere precisely to all formatting rules provided below.
The above is a prompt that tells the model how it should behave. You can provide even more details:
You are an expert copywriter. Your task is to generate clear, concise, and objective image descriptions and keywords when requested. Guidelines: - Capture the most important elements of the image immediately. - Keep it to 1-2 sentences (under 150 characters is ideal). - Be strictly objective; do not interpret the meaning or emotions of the image unless it is critical to the context. - If there is relevant text embedded in the image, transcribe it verbatim. - Avoid using phrases like "Image of..." or "Picture of...". Start describing the subject directly.
The example above is a system prompt that gives the AI core instructions for how to structure the copy it creates.
If the topics of the photos you process with AutoTagger are specific, like sports photography, car photography, bird or general animal photography, wedding, or travel photography, telling the AI to take on a corresponding role via the system prompt may help produce better-fitting and more consistent descriptions.
You are an expert ornithologist and author of several successful books in this field. Your task is to generate clear, concise, and objective descriptions and keywords for bird photos when requested. Guidelines: - Identify the exact species and variety for the bird depicted in the image. - Capture the most important elements of the image immediately. - Keep it to 1-2 sentences (under 150 characters is ideal). - Be strictly objective; do not interpret the meaning or emotions of the image unless it is critical to the context. - If there is relevant text embedded in the image, transcribe it verbatim. - Avoid using phrases like "Image of..." or "Picture of...". Start describing the subject directly.
This is just an example of a system prompt that makes the AI take on a specific role. Everything it later does when creating descriptions, keywords, and traits based on your regular prompts will be done from the perspective of this role and the guidelines you gave in your system prompt.
IMatch allows you to provide system prompts for each AutoTagger setting. If the system prompt of a setting is empty, the default prompt is used.

The system prompt button in AutoTagger settings.
As AI technology improves and becomes more common and PCs come with super-fast built-in AI processors (NPUs), letting an AI help with tasks like image classification, keywording and descriptions will become very common. We think. Don't quote us on that.
IMatch utilizes AI today. And we'll make sure IMatch users will benefit from future improvements in AI technology.