Title: AIM Transparency
Author: itisnothuman
Published: <strong>14 julija, 2026</strong>
Last modified: 30 julija, 2026

---

Search plugins

![](https://ps.w.org/aim-transparency/assets/banner-772x250.png?rev=3607775)

![](https://ps.w.org/aim-transparency/assets/icon.svg?rev=3607775)

# AIM Transparency

 By [itisnothuman](https://profiles.wordpress.org/itsnothuman/)

[Download](https://downloads.wordpress.org/plugin/aim-transparency.1.2.6.zip)

 * [Details](https://sl.wordpress.org/plugins/aim-transparency/#description)
 * [Reviews](https://sl.wordpress.org/plugins/aim-transparency/#reviews)
 *  [Installation](https://sl.wordpress.org/plugins/aim-transparency/#installation)
 * [Development](https://sl.wordpress.org/plugins/aim-transparency/#developers)

 [Support](https://wordpress.org/support/plugin/aim-transparency/)

## Description

**Label your AI-generated images and meet EU AI Act Article 50 on WordPress, free.**
If your site publishes AI images, from 2 August 2026 you must disclose them. AIM
Transparency adds a clear, visible “AI-generated” badge, embeds machine-readable
provenance in the image file (IPTC/XMP), and outputs schema.org JSON-LD, on any 
theme, with no account and no data leaving your site.

The EU AI Act (Regulation (EU) 2024/1689), Article 50, requires transparency for
AI-generated and AI-manipulated media from 2 August 2026. A website owner who _displays_
AI images is a **deployer**, whose duty is a **clear, human-visible disclosure**
at first exposure. Embedding machine-readable provenance in the file is best practice(
and is what search engines and detection tools read to recognise AI images).

AIM Transparency gives you both, on any theme:

 1. **Flag**: mark an image as AI-generated, AI-edited or algorithmic from the Media
    Library (single, bulk action, and an “AI” column), or record human provenance (
    Camera Photo, Human Created, Composite) with embedded metadata and no badge by 
    default.
 2. **Visible badge**: a configurable “AI-generated” badge renders on the front end
    across galleries, portfolio grids, masonry, featured images, content images and
    block/FSE themes. An optional Universal badge coverage mode extends to custom themes
    that hand-write their markup.
 3. **Machine-readable metadata**: writes the IPTC `Digital Source Type` (`Iptc4xmpExt:
    DigitalSourceType`) into the file’s XMP, plus schema.org JSON-LD (`ImageObject`
    + `IPTC:DigitalSourceType`) on the page.
 4. **Compliance record**: export a CSV audit trail of every disclosed image (file,
    type, disclosure label, embedded status and IPTC URI), plus your Article 4 AI-literacy
    checklist as evidence, for your own EU AI Act records. Free.
 5. **Readiness score**: a free EU AI Act readiness view that combines your Article
    50 image disclosure (scored automatically from your settings) with an **Article
    4 AI-literacy checklist** you tick off and document with evidence notes. Article
    4 (AI literacy) has applied since 2 February 2025, ahead of the Article 50 deadline.
 6. **AI-assistant (chatbot) disclosure**: not just images. If your site runs a chatbot,
    an `[aicl_ai_notice]` shortcode (and an optional floating notice) tells visitors
    when they are interacting with an AI, not a human, covering the EU AI Act Article
    50(1) duty as well.
 7. **Detection**: a free dashboard card, _AI on your site_, that surfaces AI you have
    not disclosed yet. It samples your _unflagged_ Media Library images and lists any
    whose file provenance reads as AI-generated (an embedded IPTC Digital Source Type,
    or a known generator signature such as Midjourney, Stable Diffusion or Adobe Firefly),
    and it names the AI systems running on your site, matched against a curated registry
    of **671 AI tools** (chatbots that fall under Article 50(1), plus image, content,
    audio, video and translation generators under 50(2)). It also reads your own front
    page to spot AI widgets running on it. Everything stays on your server: nothing
    is sent to any third party, and it never claims a specific image is AI. One-click
    bulk auto-flagging of what it finds is a Pro add-on.

A modern dashboard (under the top-level **AIM Transparency** menu) shows live coverage
stats, the badge preview, the embedding-engine status, and settings, and follows
your WordPress admin color scheme.

AIM Transparency is built by **itisnothuman**, a small independent studio (https://
itisnothuman.com).

#### Who needs this

Anyone publishing AI-generated or AI-edited visuals to an EU audience: bloggers,
news and magazine sites, agencies building client sites, WooCommerce and other shops
using AI product imagery, and portfolios. Being a small site is not, by itself, 
an exemption, and the Act reaches non-EU sites whose content is seen by EU users.

IPTC vocabulary used (the same value C2PA uses, so it is forward-compatible):

 * AI-generated: `http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia`
 * AI-edited/composite: `http://cv.iptc.org/newscodes/digitalsourcetype/compositeWithTrainedAlgorithmicMedia`
 * Algorithmic (non-AI): `http://cv.iptc.org/newscodes/digitalsourcetype/algorithmicMedia`
 * Camera photo: `http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture`
 * Human created (non-generative tools): `http://cv.iptc.org/newscodes/digitalsourcetype/
   digitalCreation`
 * Composite of non-AI elements: `http://cv.iptc.org/newscodes/digitalsourcetype/
   composite`

File embedding uses `exiftool` when present (JPEG/PNG/WebP/GIF/TIFF); otherwise 
a built-in pure-PHP writer handles JPEG and PNG.

**Optional, off by default:** an opt-in **AI Transparency Directory** lets you list
your site publicly as one that discloses AI content. Nothing is shared without your
explicit consent, and you can remove your listing anytime.

**Disclaimer:** this plugin is tooling to help meet Article 50 transparency obligations.
It is not legal advice. Whether content is in scope (e.g. what counts as a “deepfake”),
your deployer status, and the wording of your disclosure remain your responsibility.

**Shortcodes.** Place a disclosure anywhere shortcodes run, in a post, a page, a
widget or a block template:

 * `[aicl_disclosure]` with `type` (`ai-generated`, `ai-edited`, `ai-assisted` or`
   chatbot`) and `style` (`inline`, `badge` or `banner`), plus an optional `text`
   override.
 * `[aicl_ai_notice]` for the chatbot notice that tells visitors they are talking
   to an AI.

**A free site checker.** Not sure what AI is already running on your site? Paste
your URL into the free checker at https://aimtransparency.com/checker and it will
list the chatbots and generators it finds, grouped by the article that applies. 
No signup, and it reads only your pages’ public code.

### External services

This plugin can connect to the AIM Transparency service at `directory.aimtransparency.
com`, operated by the plugin’s developer. Every connection is **optional and user-
initiated**: nothing is sent on install, on activation, or during normal use.

 1. **AI Transparency Directory** (opt-in, off by default). If you opt in from the 
    dashboard, the plugin sends your site URL, site name, plugin and WordPress versions,
    the number of images you have labeled, an optional contact email, your consent 
    version/time, and a one-time verification token to `https://directory.aimtransparency.
    com/api/register`, so your site can be listed publicly as one that discloses AI
    content. The service then makes a single request back to a token endpoint on your
    site to verify you control it. You can remove your listing at any time, which deletes
    the stored data.
 2. **Pro waitlist** (sent only when you submit the form). If you enter your email 
    in the optional “notify me about Pro” form, that email is sent to `https://directory.
    aimtransparency.com/api/waitlist` so the developer can email you about the Pro 
    add-on, and is stored only for that purpose.

The plugin makes no other external requests. The `iptc.org`, `schema.org`, `ns.adobe.
com` and `w3.org` URLs in the code are standard metadata vocabulary identifiers 
written into your files and pages; they are not network requests.

Privacy policy: https://aimtransparency.com/privacy

### Build

All of the plugin’s PHP and its front-end scripts (`assets/js/*.js`) are hand-written,
human-readable source with no build step. The one exception is the admin dashboard,
a small React + TypeScript app whose compiled bundle ships as `dashboard/assets/
app.js` and `dashboard/assets/app.css`.

The complete, human-readable source of that bundle is included in this package at`
dashboard/src/` (a standalone Vite + React + TypeScript project: `src/*.tsx`, `package.
json`, `vite.config.ts`, `tsconfig.json`). To rebuild, run `npm install` then `npm
run build` inside `dashboard/src/`, and copy the resulting `dist/assets/app.js` 
and `app.css` into `dashboard/assets/`. Step-by-step notes are in `docs/BUILD.md`,
also included.

Third-party libraries compiled into the bundle: React 18 and ReactDOM (MIT, https://
github.com/facebook/react), lucide-react icons (ISC, https://github.com/lucide-icons/
lucide), built with Vite (MIT). The bundled Geist / Geist Mono fonts are under the
SIL OFL 1.1 (license text ships alongside them in `dashboard/assets/fonts/`). The
badge artwork in `assets/eu-icons/` is the European Commission’s official AI-content
labelling icon set (© European Union, reused under CC BY 4.0 per Commission Decision
2011/833/EU; source, terms and modification notes in `assets/eu-icons/LICENSE.txt`).
The sample scenes in `dashboard/assets/scenes/` are first-party artwork created 
for this plugin (AI-generated, and labelled as such where shown), licensed with 
the plugin under the GPL.

## Screenshots

[⌊The dashboard: live compliance stats, coverage by format, and automatic flagging.⌉⌊
The dashboard: live compliance stats, coverage by format, and automatic flagging
.⌉[

The dashboard: live compliance stats, coverage by format, and automatic flagging.

[⌊Badge Studio: shapes, colours, position and a live preview.⌉⌊Badge Studio: shapes,
colours, position and a live preview.⌉[

Badge Studio: shapes, colours, position and a live preview.

[⌊The "AI Generated" badge on the front end: a real photo and its AI counterpart,
side by side.⌉⌊The "AI Generated" badge on the front end: a real photo and its AI
counterpart, side by side.⌉[

The “AI Generated” badge on the front end: a real photo and its AI counterpart, 
side by side.

[⌊Tag your whole library from the dashboard: search, filter and set each image's
type.⌉⌊Tag your whole library from the dashboard: search, filter and set each image's
type.⌉[

Tag your whole library from the dashboard: search, filter and set each image’s type.

[⌊Embedded metadata and the compliance report export.⌉⌊Embedded metadata and the
compliance report export.⌉[

Embedded metadata and the compliance report export.

[⌊The badge in a blog post: the "AI Generated" mark rides with the image, on any
theme.⌉⌊The badge in a blog post: the "AI Generated" mark rides with the image, 
on any theme.⌉[

The badge in a blog post: the “AI Generated” mark rides with the image, on any theme.

[⌊EU AI Act readiness: your Article 50 disclosure score and the Article 4 AI-literacy
checklist.⌉⌊EU AI Act readiness: your Article 50 disclosure score and the Article
4 AI-literacy checklist.⌉[

EU AI Act readiness: your Article 50 disclosure score and the Article 4 AI-literacy
checklist.

[⌊Two dashboard themes: the default Neo skin and a clean, WordPress-native Classic
skin, switchable anytime.⌉⌊Two dashboard themes: the default Neo skin and a clean,
WordPress-native Classic skin, switchable anytime.⌉[

Two dashboard themes: the default Neo skin and a clean, WordPress-native Classic
skin, switchable anytime.

[⌊Badge Studio in the Classic theme: the same twelve shapes, styles and live preview.⌉⌊
Badge Studio in the Classic theme: the same twelve shapes, styles and live preview
.⌉[

Badge Studio in the Classic theme: the same twelve shapes, styles and live preview.

[⌊The first-run welcome: from activation to your first labelled image in about a
minute.⌉⌊The first-run welcome: from activation to your first labelled image in 
about a minute.⌉[

The first-run welcome: from activation to your first labelled image in about a minute.

## Installation

 1. Upload the plugin to `/wp-content/plugins/`, or install it from the Plugins screen
    in wp-admin.
 2. Activate the plugin.
 3. Open the **AIM Transparency** menu, flag images in the Media Library (single, bulk
    action, or the per-image control), and configure the badge in Settings. The badge
    and machine-readable metadata are on by default; switch the badge to the official
    EU AI-content icons in Badge settings if you prefer them.

## FAQ

### Is it really free?

Yes, everything in this plugin is fully functional, nothing is locked. Flagging,
the visible badge with all its styles and shapes (including the click-to-disclose
modal and a custom logo), the in-dashboard media library, IPTC/XMP embedding for
every supported format, JSON-LD, the AI-assistant notice, the AI-on-your-site detection
card, and the CSV compliance export are all free. A separate, optional **AIM Transparency
Pro** add-on (sold on our site, not hosted here) adds its own features on top: automatic
flagging on upload, a library scanner (strip-guard plus retroactive discovery of
provenance your files already declare), additional report export formats (a print-
ready report you can save as PDF, plus JSON, Markdown & TXT), and WooCommerce support.

### Does the badge satisfy the law on its own?

The visible badge addresses the deployer’s human-visible disclosure (Art. 50(4));
the embedded metadata addresses machine-readability. Both are on by default.

### Will it work with my theme?

It hooks WordPress’s own image and template filters, including `render_block` for
block/FSE themes, so any theme using standard functions is covered. For themes that
hardcode `<img>` tags, enable Universal badge coverage in Settings.

### Will it modify my files?

When file embedding is on, it writes XMP into flagged image files (and every generated
size). It is idempotent. Turn it off to use the visible badge + JSON-LD only.

### My host has no exiftool.

JPEG and PNG are still marked by the built-in PHP writer. WebP and other formats
need exiftool; the Metadata screen shows your current capability.

### What are the shortcodes for?

Disclosure is not only for images. `[aicl_disclosure]` places a labelled notice 
anywhere shortcodes run, so you can disclose AI-assisted writing, a generated hero
image, or a chat widget in your own words and in the exact spot you choose. Pick
a `type` (ai-generated, ai-edited, ai-assisted, chatbot) and a `style` (inline, 
badge, banner). `[aicl_ai_notice]` is the dedicated chatbot notice.

### Does it detect chatbots as well as images?

Yes. The Detection card matches your site against a registry of 671 AI systems and
separates them by duty: chatbots and assistants fall under Article 50(1), which 
asks you to tell visitors they are talking to an AI, while image and content generators
fall under 50(2), which asks you to label the output. It reports which tools are
present, not that any specific image or message is AI.

### Does Detection send my site anywhere?

No. It reads your active plugin list and fetches your own front page over a local
loopback request, both on your server. Nothing is sent to any third party, and the
result is cached so it does not run on every page load.

### Can I check a site before installing anything?

Yes. The free checker at https://aimtransparency.com/checker scans any URL you paste
and lists the AI systems it finds. It reads public page code only, never your files.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“AIM Transparency” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ itisnothuman ](https://profiles.wordpress.org/itsnothuman/)

[Translate “AIM Transparency” into your language.](https://translate.wordpress.org/projects/wp-plugins/aim-transparency)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/aim-transparency/),
check out the [SVN repository](https://plugins.svn.wordpress.org/aim-transparency/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/aim-transparency/)
by [RSS](https://plugins.trac.wordpress.org/log/aim-transparency/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.6

 * New: the dashboard has been redesigned. Every screen is now a single sheet divided
   by hairlines instead of a grid of separate cards, so Overview reads top to bottom:
   your readiness score, the figures behind it, what is running on your site, then
   your library. Readiness gained a numbered Article 4 checklist with proper evidence
   fields, Media shows each image’s disclosure state at a glance, and Upgrade sets
   out plainly what is free and what Pro adds.
 * New: Detection now recognises **671 AI systems**, up from a short list of image
   tools. It separates chatbots and assistants (Article 50(1)) from image and content
   generators (Article 50(2)), so you can see which duty applies to what.
 * New: reusable disclosure shortcodes. `[aicl_disclosure]` places an AI notice 
   anywhere shortcodes run, with a type (generated, edited, assisted or chatbot)
   and a style (inline, badge or banner). `[aicl_ai_notice]` covers the chatbot 
   case.
 * Improvement: Detection also reads your own front page, so AI widgets that load
   in the browser are found, not just plugins on disk. It stays on your server; 
   nothing is sent to a third party.
 * Improvement: uploading an image refreshes the Detection result straight away 
   instead of waiting for the cache to expire.
 * Improvement: clearer wording throughout the dashboard, and a refreshed getting-
   started screen in both the Neo and Classic themes.

#### 1.2.5

 * Improvement: the getting-started screen has fresh artwork that matches your Neo
   or Classic dashboard theme, in a cleaner full-bleed layout.
 * Improvement: the Detection card is more reliable. Re-scanning clears resolved
   warnings right away, it respects images you have marked as human-made instead
   of re-flagging them, and it lists AI-capable plugins by their real names.
 * Improvement: clearer, more natural wording across the dashboard and the getting-
   started screen.
 * Fix: the dashboard now keeps your chosen theme (Neo or Classic) consistent everywhere,
   including the getting-started screen.

#### 1.2.4

 * New: a Detection card on the dashboard that surfaces AI you have not disclosed
   yet. It finds images in your library whose files read as AI-generated (a declared
   source type, or a known generator name like Midjourney, DALL·E or Firefly) but
   are not flagged, and lists active plugins that can generate AI images. Everything
   is computed locally, with no external requests.

#### 1.2.3

 * New: a one-screen welcome after activation that walks you to your first flagged
   image: pick an image, choose how it was made, and see it disclosed straight away.
   Reopen it any time from Transparency > Getting started.
 * Maintenance: minor internal hardening and housekeeping.

#### 1.2.2

 * Improvement: the Pro library scan now runs to completion from one click: the 
   dashboard processes the library in batches with a live progress bar (inspected/
   adopted / remaining) and a cancel button, instead of stopping after one pass.
 * Improvement: the scan result now reports what discovery found (images adopted
   from provenance already declared inside the files), alongside the strip-guard
   counts.
 * i18n: the disclosure modal footer, its close button and the badge screen-reader
   fallback are now translatable.

#### 1.2.1

 * New: **human-provenance source types**: flag images as _Camera Photo_ (`digitalCapture`),
   _Human Created_ (`digitalCreation`, e.g. 3D renders or digital art made without
   generative AI) or _Composite_ (`composite`, a non-AI mix such as photos + renders).
   Each embeds the current IPTC Digital Source Type into the file and the page JSON-
   LD, with no visible badge by default: honest provenance for human-made work, 
   not just AI labels. (An optional visible badge for these types is available with
   the Custom badge style.)
 * Improvement: embedding is now idempotent: files that already carry the exact 
   Digital Source Type value (for example C2PA-signed camera captures) are left 
   byte-for-byte untouched.
 * Improvement: source-type names and the visitor-facing disclosure texts are now
   translatable.
 * Fix: images whose badge is hidden (e.g. the Algorithmic type) now correctly emit
   their machine-readable JSON-LD, as the settings always described.
 * Accessibility: custom-style badges on non-AI types no longer announce “artificially
   generated” to screen readers.

#### 1.2.0

 * New: a fresh default dashboard style (“Neo”), with a one-click toggle back to
   the original monochrome look, in Settings > Appearance or the palette button 
   in the top bar. Both styles support light and dark mode. Fonts are bundled locally(
   Inter + Bricolage Grotesque, SIL OFL); the plugin still makes no external requests.
 * New: the badge live preview now demonstrates the badge on bundled sample images(
   our own AI-generated artwork, labelled as such), with a small slider to switch
   scenes. Docs and Support links added to the dashboard sidebar.

#### 1.1.0

 * New: **AI-assistant (chatbot) disclosure** for EU AI Act Article 50(1): tell 
   visitors when they are interacting with an AI rather than a human. Drop the `[
   aicl_ai_notice]` shortcode into any page with a chat UI, or enable the optional
   floating notice that appears when a known chat widget is detected. Configurable
   disclosure text and position.

#### 1.0.0

 * Initial release: media flag, bulk actions, visible badge across Enfold/standard/
   block themes, optional universal badge coverage, IPTC/XMP embedding (exiftool
   + pure-PHP JPEG/PNG), JSON-LD, free CSV compliance export, React dashboard, opt-
   in transparency directory.

## Meta

 *  Version **1.2.6**
 *  Last updated **2 uri ago**
 *  Active installations **10+**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/aim-transparency/)
 * Tags
 * [ai disclosure](https://sl.wordpress.org/plugins/tags/ai-disclosure/)[ai images](https://sl.wordpress.org/plugins/tags/ai-images/)
   [ai transparency](https://sl.wordpress.org/plugins/tags/ai-transparency/)[article 50](https://sl.wordpress.org/plugins/tags/article-50/)
   [eu ai act](https://sl.wordpress.org/plugins/tags/eu-ai-act/)
 *  [Advanced View](https://sl.wordpress.org/plugins/aim-transparency/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/aim-transparency/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/aim-transparency/reviews/)

## Contributors

 *   [ itisnothuman ](https://profiles.wordpress.org/itsnothuman/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/aim-transparency/)