Practical guide · last reviewed August 2026
The short version
- 01
DigitalSourceTypeis an IPTC vocabulary tag that records how a file was created: camera photo, illustration, or AI-generated. - 02
For AI images the value is
trainedAlgorithmicMedia, the same value C2PA uses, so it's forward-compatible with Content Credentials. - 03 It lives inside the file (in the XMP block) and is mirrored on the page as schema.org JSON-LD, so both tools and search engines can read it.
DigitalSourceType is an IPTC vocabulary tag that records how a file was created: camera photo, illustration, or AI-generated.
For AI images the value is trainedAlgorithmicMedia, the same value C2PA uses, so it's forward-compatible with Content Credentials.
It lives inside the file (in the XMP block) and is mirrored on the page as schema.org JSON-LD, so both tools and search engines can read it.
Who's IPTC, and why this tag?
IPTC is the standards body behind the metadata newsrooms and photo agencies have used for decades (the caption, credit and copyright fields baked into image files). Its Photo Metadata standard added DigitalSourceType to answer a new question: how was this image actually made? Because it's an existing, widely-supported standard, not a proprietary flag, a value written here is understood across the tools that already read image metadata.
The values AIM Transparency writes
For AI content, AIM Transparency writes one of these three controlled-vocabulary URIs, depending on how you flag the image:
AI-generated
http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia
Created wholly by a generative model (Midjourney, DALL·E, Firefly, Stable Diffusion…). This is the value that triggers the "AI Generated" badge.
AI-edited / composite
http://cv.iptc.org/newscodes/digitalsourcetype/compositeWithTrainedAlgorithmicMedia
A real image meaningfully altered or combined with AI-generated elements (generative fill, AI compositing). Shown as "AI Modified".
Algorithmic (non-AI)
http://cv.iptc.org/newscodes/digitalsourcetype/algorithmicMedia
Made by a program but not a trained model: a fractal, a formula-generated pattern, a procedural render. (Charts and data visualisations have their own IPTC value, dataDrivenMedia.) Recorded for provenance, but it's not AI, so no badge is shown.
Created wholly by a generative model (Midjourney, DALL·E, Firefly, Stable Diffusion…). This is the value that triggers the "AI Generated" badge.
A real image meaningfully altered or combined with AI-generated elements (generative fill, AI compositing). Shown as "AI Modified".
Made by a program but not a trained model: a fractal, a formula-generated pattern, a procedural render. (Charts and data visualisations have their own IPTC value, dataDrivenMedia.) Recorded for provenance, but it's not AI, so no badge is shown.
The plugin also writes the human-provenance values: digitalCapture (a photo captured with a real camera), digitalCreation (human-made digital or 3D work, no generative AI) and composite (a mix of non-AI elements, such as photos + renders). These carry embedded metadata and JSON-LD with no badge by default, so you can answer “was this AI?” honestly for work that wasn’t.
Where the tag actually lives
Two places, on purpose:
- Inside the file (XMP). Written into the image's XMP packet as
Iptc4xmpExt:DigitalSourceType, so the mark travels with the file when it's downloaded, emailed or re-uploaded. - On the page (JSON-LD). Mirrored as schema.org
ImageObjectwith the same IPTCDigitalSourceType, a supplementary layer on top of the embedded tag, which is what search engines actually read to label AI images.
Why it's worth doing (not just the badge)
A visible badge is the human disclosure (EU AI Act Article 50(4)). The embedded metadata is the machine-readable half (the spirit of Article 50(2)): it lets detection tools, platforms and search engines recognise the image as AI even with no badge in sight. And because trainedAlgorithmicMedia is the same value the C2PA / Content Credentials ecosystem uses, you're aligned with where provenance standards are heading rather than betting on a one-off flag. See the EU AI Act guide for how the two duties fit together.
How AIM Transparency writes it
When you flag an image, the plugin embeds the correct DigitalSourceType value into the file. Every format is handled in pure PHP with no server tools needed: JPEG, PNG, WebP, GIF, TIFF and AVIF, plus HEIC and HEIF, all on the free plan. Pro adds a library scanner that re-writes the mark if an image optimiser removes it, and adopts provenance already declared inside your existing, unflagged images. You can verify a file's tag with any XMP-aware viewer (or exiftool -DigitalSourceType image.jpg).
FAQ
Is DigitalSourceType the same as a C2PA "Content Credential"?
DigitalSourceType is a lightweight, universally-readable tag. C2PA uses the same trainedAlgorithmicMedia value, so writing the IPTC tag keeps you compatible.Do social platforms read it?
Does editing or compressing an image remove it?
Related guides
The lawThe EU AI Act and WordPress (Article 50)
Who Article 50 covers, the 2 August 2026 deadline, the penalties, and exactly what a WordPress site owner must do, in plain English.
Read guide
The how-toHow to label AI images in WordPress
A step-by-step walkthrough: install the plugin, flag an image from the Media Library, and get the badge, embedded metadata and JSON-LD automatically.
Read guide
The shopDisclose AI product images in WooCommerce.
Selling with AI product photos? Put the “AI Generated” badge across your shop grid, your categories and the single-product gallery, free, plus embedded provenance, on any theme. Compliance and buyer trust, in one move.
Read guide
Written textHow to disclose AI-written text in WordPress
The half of Article 50(4) nobody quotes. Whether the text duty reaches your site at all, how to record it per post, and why human review on its own is not the exemption.
Read guide
ChatbotsHow to disclose an AI chatbot on WordPress
Article 50(1) is the other half of the law: if visitors interact with an AI, you have to tell them. Where the notice belongs, and how to find widgets already running.
Read guide
LanguagesYour AI disclosure has to be in a language visitors read
Article 50 asks you to inform the person. An English badge on a Polish shop does not. How disclosure works across 22 EU languages, and where the wording comes from.
Read guide
For developersShow an AI disclosure automatically with WordPress hooks
One filter, one condition, one call to do_shortcode. Copy-paste recipes for categories, custom fields, WooCommerce and block themes.
Read guide
The releaseWhat WordPress 7.1 changes for AI image provenance
7.1 can rebuild your images in the browser before they ever reach your server. What that does to provenance written inside the file, what we measured against the release candidate, and the one line that turns it off.
Read guide