MetadataAugust 27, 2026·11 min read·By NoSystem Images

AI-Generated Stock Images: The Prompt Is Your Metadata

Every image you generate arrives with the best description of itself that will ever exist: the prompt you typed. It is written into the file, it names the subject, the setting, the lighting and the mood, and it was composed before the pixels were. Almost nobody gets it into their keywords — and the contributors who do sometimes paste in the one part of it that gets accounts terminated. This is where the prompt actually lives, the three ways it is silently destroyed on the way to your CSV, and which pieces of it every agency forbids you to repeat.

First: where you can upload AI work at all

Before any of the metadata matters, check that the agency takes the content. The split is sharper than most contributors expect, and four of the largest libraries are a flat no. Uploading anyway is not a rejection risk, it is an account risk — several of these policies name termination as the consequence.

AgencyAccepts AI-generated uploads?What it requires
Adobe StockYesThe Created using generative AI tools checkbox in the Metadata panel. Photo-realistic output is submitted as Photos; everything else as Illustrations.
FreepikYesLabel with the AI button, or add the _ai_generated tag via CSV.
VecteezyYesTick AI-generated in the Add Data section, then name the program you generated in from the dropdown.
DreamstimeYes, restrictedThe Clip Art / AI Generated category only, and the description must state that the content is AI-generated.
123RFYes, restrictedThe AI Generated Images category only — AI content uploaded elsewhere is rejected. Minimum 6 megapixels.
Getty Images / iStockNoSubmissions created using generative AI models are not accepted. 3D renders are unaffected, and AI-powered retouching is allowed within limits.
ShutterstockNoContributor uploads of AI-generated content are not accepted — the stated reasons are IP ownership and the inability to verify which model produced a file. Shutterstock's own generator is a separate system paid through the Contributor Fund.
Pond5NoAI-generated media may not be uploaded for licensing; authorship cannot be attributed to a person. Submitting it can end the account.
AlamyNoClassified as unsuitable material and removed on sight. Narrow exception for AI tools that mimic ordinary retouching, such as denoise.
DepositphotosNoAI-generated files are not accepted from contributors.

Two consequences worth sitting with. First, the agencies that accept this work are, with the exception of Adobe, the smaller half of the market — so an AI portfolio is concentrated in fewer places than a camera portfolio. Second, the labelling is never optional. Every accepting agency requires a declaration, and each one collects it somewhere different: a checkbox, a category, a tag in the CSV, a dropdown naming the tool. That is four different mechanisms for one fact, which is exactly the kind of thing an export gets wrong.

Your prompt is already inside the file

Generators write the prompt into the image as metadata. You do not need to have kept a spreadsheet, and you do not need the original chat history — open a file you made months ago and the text is still there. Where it sits depends on the format, and this catches people out:

  • JPEG — in the XMP packet, in the dc:description field. In every Midjourney export we have examined, across nineteen session folders, that packet begins at byte 245 of the file.
  • PNGnot in XMP. A Midjourney PNG does carry an XMP packet, but there is no dc:description inside it. The prompt sits in a plain PNG tEXt chunk keyed Description, next to Author and Creation Time. A tool that looks only for dc:description finds the packet, finds nothing in it, and quietly gives up.

You can check any file yourself with ExifTool, which is free and reads both:

exiftool -Description -Author -CreationTime yourfile.png
exiftool -XMP-dc:Description yourfile.jpg

If that prints your prompt, the file still has it. If it prints nothing, the prompt has already been destroyed — and the next section is about how that happens without any warning.

Three ways the prompt gets destroyed

We know these three specifically because all three happened to us. We built prompt reading into our own pipeline, believed it was working, and it was not. What follows is measured against our own job history, not estimated.

1. The filename truncates at 64 characters, mid-word

Midjourney names the exported file after the prompt, then cuts it. A 130-word prompt becomes A07 Close up of a fitness enthusiast using augmented reality cont — and that is where a lot of tools stop, because the filename is the easiest thing in the world to read. Across every job in our system that was tagged as AI-generated, 1,390 of 1,438 prompt contexts were 60 to 70 characters long, with a median of exactly 64. A median landing precisely on a round binary number is not a distribution of prompt lengths. It is a ruler. Every one of those files had the full text sitting inside it, unread.

2. Any resize or re-encode strips it entirely

This is the one that cost us the most. Our web app resizes photos in the browser before upload, to spare people a slow upload of full-resolution files. The resize goes through an HTML canvas, and a canvas re-encode writes a brand-new image with no metadata at all. Not a reduced set. None. Our server was reading XMP off a file that had been sterilised one step earlier, finding nothing, and falling back to that truncated filename — for months, on 97% of AI jobs, while every log said the feature was working.

The general lesson is worth more than our specific bug: anything you need from a file's metadata has to be taken from the original bytes, before any processing touches them. The same trap is waiting in Photoshop's Export As and Save for Web, in most online converters, in phone-gallery exports, and in anything that offers to shrink your files. Upscale a Midjourney render before uploading it and, depending on the upscaler, you may have thrown the prompt away in the same step. Read the metadata first, then process.

3. It is looked for in the wrong place on PNGs

The tEXt chunk problem above, in practice. In our history 235 of 1,915 AI-generated jobs — 12.3% — were PNGs, so this is not a corner case. Anything with a PNG in it needs a second reader.

The three combine badly. A PNG that you upscaled and then let a web tool resize has been through all three, and the only description of the image anyone will ever see is sixty-four truncated characters of the prompt you started with.

PixTagger reads the generation prompt out of the original file in your browser — XMP for JPEG, the tEXt chunk for PNG — before anything is resized, and feeds it to the keywording. First 15 files free.

Adobe Stock keyword generator

What the prompt proves, and what it does not

Recovering the prompt is only half of it. The other half is knowing how far to trust it, and this took us a regression to learn properly.

When we first fed the full prompt into our pipeline, results improved across the board on a batch of 76 files: rows correctly carrying augmented-reality terms went from 15 to 28, fitness and gym terms from 6 to 12, holographic from 13 to 21, and images wrongly filed as generic "surreal" fantasy went from 1 to 0. One image had been described as a young woman with wet hair and glowing yellow eyes and became a woman wearing augmented reality contacts in a modern gym, which is what the picture plainly shows.

And one file got worse. A frame from a prompt about a futuristic kitchen counter with a smart display came back keyworded No People — while the image clearly shows a hand and forearm reaching for the screen. Told that the prompt was fact, and given a prompt that named only an object, the description stopped reporting the person who was actually in the frame.

The rule that came out of it

The prompt settles what something is. The picture settles whether it is there at all. A prompt naming an object tells you the subject; it never tells you the frame is empty. Use the prompt to resolve ambiguity — is that a headset or glasses, is that temple Thai or Balinese — and use your eyes for everything that is present or absent. Especially people: a visible hand is a person, whatever the prompt was about.

This matters commercially, not just technically. "No People" is a keyword buyers filter on, and a false one puts your file in front of the wrong search and out of the right one. It is also the single hardest error to catch in review, because it is invisible in every summary — our batch-level checks reported the run as an improvement, keyword counts rose, titles got better. The bad row only surfaced by comparing the two runs file by file and then opening the one image whose people terms had vanished.

What you must strip out of the prompt

Here is the part that turns a good idea into a liability. Adobe's guidance is to take your keywords from the words and concepts in your title — but it attaches a blacklist, and the same blacklist appears in different words at 123RF. Prompts are full of exactly these things, because the things that make a generator produce a good image are often the things an agency cannot license.

Never let these reach your keywords or title

  • Artist names.The most common prompt ingredient there is, and explicitly named by both Adobe and 123RF. "in the style of" anyone is a keyword that can cost you the account, not the file.
  • Real people and fictional characters.Adobe names both. 123RF's own examples are Abraham Lincoln and Elon Musk.
  • Brands and trademarked property — 123RF cites Nike, Disney, PlayStation, Marvel. Adobe extends this to copyrighted works, government agencies and third-party intellectual property generally.
  • Named real places and landmarks.123RF's examples are the London Eye, the Statue of Liberty and the Eiffel Tower. A prompt naming a landmark is normal; a keyword naming one on an image that was never there is a different matter.
  • Technical parameters.Adobe specifically says the title must not contain technical parameters from your prompt — and that includes the words "generative AI" themselves. Strip --ar 16:9, --v 7, --style raw, --no exclusions, seeds and job IDs.
  • Render vocabulary."Octane render", "8k", "hyperrealistic", "trending on" and similar describe how the file was produced, not what a buyer is looking for. They are not forbidden everywhere, but they spend keyword slots on your process instead of your subject.

A negative prompt deserves its own mention. The text after --no lists what you did not want in the image. Fed into a keyword tool as if it were description, it produces keywords for things that are provably absent — the worst possible tag, since it is both wrong and confidently specific. Cut everything after the flag.

Photo or illustration, and other filing decisions

The accepting agencies each want AI content filed somewhere particular, and getting this wrong is a plain rejection rather than a subtle one. Adobe splits by realism: if it could plausibly have come out of a camera, submit it as a Photo; anything else is an Illustration. Dreamstime and 123RF instead have a single dedicated AI category and reject AI content filed anywhere else.

Releases follow the same logic as camera work with one addition. Adobe requires a model release for AI content that depicts, is based on, or is intended to portray an identifiable person. When the image merely looks like it could be a person but is not based on one, there is a separate People and Property are fictional checkbox to certify that. Neither of those is inferrable from the prompt, and both are yours to declare. Our release guide for all nine agencies covers the camera side in detail.

The duplicate trap that AI batches walk into

One last finding from our own data, because it is specific to how people work with generated images and we have not seen it written down anywhere. A generator gives you a PNG. You convert it to JPEG for upload, or rename it into your own numbering scheme, and then drop the new copies into the same session as the originals. Both versions get keyworded, both land in the export, they get two different titles, and only one of them can be the file you actually upload.

Across everything tagged in our system, 76 images have been through this. That is a habit, not an accident. A duplicate-file check based on content hashes cannot catch it either, because a PNG and its JPEG conversion are genuinely different bytes. The thing that identifies them as one image is in the generator filename: the job UUID and variant index at the end are the image's real identity, whatever you have renamed the file to since.

Two versions of one render uploaded as two files is also the shape of a similar-content rejection, and 123RF names spamming with slight variations as a rejection cause directly. Generators make near-identical variants four at a time, which makes this much easier to do by accident with AI work than with a camera.

The order to do it in

  1. Confirm the agency accepts AI work before you spend any time on metadata. Four of the largest do not.
  2. Read the prompt out of the original file first — XMP for JPEG, the tEXt chunk for PNG — before any resize, conversion or upscale.
  3. Cut the flags, the job ID and everything after --no, then cut artist names, real people, characters, brands and named landmarks.
  4. Write the title from what the picture shows, using the prompt to settle what things are — not to decide what is present.
  5. Set the AI declaration in whichever form that agency collects it, plus the release or fictional-people checkbox.
  6. Check for the same render twice under two filenames before you export.

In short

The prompt is the best description your AI image will ever have, and it is inside the file — in XMP for JPEG, in a tEXt chunk for PNG. It survives until something re-encodes the image, and then it is gone with no warning, leaving a filename truncated at 64 characters. Read it before you resize. Then use it to settle what things are, never what is present, and strip the artist names, brands, landmarks and technical flags before any of it reaches a keyword field. And check the agency takes AI work at all: Getty, Shutterstock, Pond5, Alamy and Depositphotos do not.

Sources & further reading

Frequently asked questions

Is my prompt saved inside the AI image file?
Yes. Generators write the prompt into the file as metadata. In a JPEG it sits in the XMP packet under dc:description. In a PNG it is not in XMP at all — it lives in a plain tEXt chunk keyed Description, alongside Author and Creation Time. You can read either with the free ExifTool: exiftool -Description yourfile.png
Why did my AI image lose its prompt after I resized it?
Because a resize re-encodes the image, and a re-encode writes a brand-new file with no metadata at all — not a reduced set, none. Browser-based resizers, Photoshop's Export As and Save for Web, online converters and many upscalers all do this. Read the prompt out of the original file before any processing touches it.
Can I use my Midjourney prompt as the description on Adobe Stock?
Not as-is. Adobe requires the title to describe the main subject without technical parameters from the prompt or the words 'generative AI', and prompts, titles and keywords must not name artists, real people, fictional characters, copyrighted works, government agencies or third-party intellectual property. Strip the flags, the job ID, everything after --no, and those names first. Adobe states that violations can result in content removal or account termination.
Which stock agencies accept AI-generated images?
Adobe Stock, Freepik, Vecteezy, Dreamstime and 123RF accept AI work with a declaration, though Dreamstime and 123RF confine it to a dedicated AI category. Getty Images and iStock, Shutterstock, Pond5, Alamy and Depositphotos do not accept contributor uploads of AI-generated content. Several of those policies name account termination as the consequence of uploading it anyway.
Should I keyword an AI image from the prompt or from the picture?
Both, in different roles. The prompt settles what something is — whether that is a headset or glasses, whether the temple is Thai or Balinese. The picture settles whether it is there at all. A prompt naming only an object never means the frame is empty, and a visible hand is a person no matter what the prompt was about.

Written by a working stock contributor

NoSystem Images

Getty Images / iStock exclusive contributor since 2007

PixTagger is built by NoSystem Images, an exclusive Getty Images and iStock contributor since 2007, with a live portfolio of over 57,000 photos and 9,700 videos. Every keywording rule in the app comes from nearly two decades of actually selling on Getty, iStock and Adobe Stock — not from guesswork.

Related guides & tools

Stop hand-keywording every upload

PixTagger writes buyer-focused titles, descriptions and marketplace-ready keywords for your photos and videos in seconds — with a Getty controlled-vocabulary CSV, an Adobe CSV, and qHero export built in.