Title: Ropemark Image Marking for the EU AI Act
Author: The Rope
Published: <strong>September 14, 2026</strong>
Last modified: September 14, 2026

---

Search plugins

![](https://ps.w.org/ropemark-image-marking-for-eu-ai-act/assets/banner-772x250.
png?rev=3695140)

![](https://ps.w.org/ropemark-image-marking-for-eu-ai-act/assets/icon-256x256.png?
rev=3695140)

# Ropemark Image Marking for the EU AI Act

 By [The Rope](https://profiles.wordpress.org/therope/)

[Download](https://downloads.wordpress.org/plugin/ropemark-image-marking-for-eu-ai-act.1.0.1.zip)

 * [Details](https://wordpress.org/plugins/ropemark-image-marking-for-eu-ai-act/#description)
 * [Reviews](https://wordpress.org/plugins/ropemark-image-marking-for-eu-ai-act/#reviews)
 *  [Installation](https://wordpress.org/plugins/ropemark-image-marking-for-eu-ai-act/#installation)
 * [Development](https://wordpress.org/plugins/ropemark-image-marking-for-eu-ai-act/#developers)

 [Support](https://wordpress.org/support/plugin/ropemark-image-marking-for-eu-ai-act/)

## Description

**Since 2 August 2026 the EU AI Act (article 50) requires AI-generated and AI-manipulated
images to be marked in a machine-readable way and, when they show people or scenes
that look real, to be disclosed visibly to the public.** If you publish virtual 
models, AI product shots, campaign visuals or any image made with Midjourney, Nano
Banana, DALL·E, Firefly, Stable Diffusion or similar tools, this concerns your WordPress
site.

Ropemark does four things: it **marks** files that lack the IPTC marking, **keeps**
the marking in every size WordPress generates, **discloses** it on the page and **
documents** it in the Media Library.

#### 1. The visible disclosure

 * **AI badge**: a round, semi-transparent “AI” mark overlaid on AI-generated images,
   in the corner you choose. Text or your own icon, diameter, colors, opacity, minimum
   image width and tooltip are settings; the markup carries CSS classes your theme
   can restyle.
 * **Provenance popup**: a click on the badge opens a small panel with type, disclosure
   text, creator, credit, generator and marking of that image. It is plain HTML 
   kept hidden in the page, readable by assistive technology and search engines.
 * **Per image**: not every AI image needs the badge. Each attachment can follow
   the settings, always show it or never show it, one by one or in bulk.
 * **Text label** under AI images, **site notice** at the end of every page, and
   a `[ropemark_disclosure]` shortcode plus an “AI disclosure notice” block for 
   your transparency page, with the count of AI images.
 * **Data attributes** (`data-ai-generated`, `data-digital-source-type`) and **schema.
   org ImageObject** with `digitalSourceType` for search engines and AI crawlers.

#### 2. The machine-readable marking, written and kept

WordPress never touches the file you upload, but every size it generates (thumbnails,
medium, large and the scaled copy it serves as “full”) comes out of GD or Imagick**
without XMP and IPTC**. The marking your generator or your DAM wrote into the original
is gone from the images your pages actually show.

 * The plugin **reads** the provenance of each upload: the IPTC `DigitalSourceType`
   term (`trainedAlgorithmicMedia`, `compositeWithTrainedAlgorithmicMedia`, and 
   the rest of the vocabulary), the disclosure text, creator, credit and rights,
   and whether a **C2PA / Content Credentials** manifest is present, with the names
   of the tools that signed it (Google, Adobe Lightroom, Photoshop, and so on).
 * It **carries the marking into every generated size**, byte for byte, without 
   re-encoding pixels: JPEG, PNG and WebP.
 * You decide **what to carry** (the whole XMP and IPTC blocks, or only the provenance
   fields), **into which sizes**, and whether the **original** is left untouched
   or cleaned of post-production traces (Camera Raw settings, document history) 
   while keeping the marking.
 * **Manual classification** for files that carry no marking (most retouched images
   lose it): “AI generated”, “AI modified” or “not AI”, per image or in bulk. An
   AI classification **writes the IPTC digital source type into the sizes and, unless
   the original carries a C2PA manifest, into the original**. A manual choice becomes
   a machine-readable marking that travels with the file.
 * **Generator traces**: files without a formal marking but with signs of Midjourney,
   DALL·E, Firefly, Stable Diffusion, ComfyUI, Google, OpenAI and others (software
   fields, PNG parameters, XMP) are listed as “Suspected AI, to confirm”, never 
   marked automatically.

#### 3. The audit trail in the Media Library

 * A column and a badge in the list view, a badge on grid tiles.
 * A read-only **provenance panel** in the attachment details: digital source type,
   disclosure text, creator, credit, rights, C2PA signers, and which generated sizes
   carry the marking.
 * A **filter**: AI generated or modified, suspected AI, with provenance marking,
   without.
 * **Bulk actions** to classify and to show or hide the badge, a **library scan**
   for everything uploaded before the plugin, a **CSV export** of the AI images 
   for your audit file, and WP-CLI.
 * The record is exposed on the **REST API** attachment endpoint for headless themes.

#### What the plugin does not do

 * It does not guess whether an image is AI-made by looking at pixels. It reads 
   what the file declares in the standard vocabularies (IPTC Photo Metadata, C2PA).
   Files with no marking are shown as “No marking”: write the marking in production,
   before upload (most generators do it; exiftool or any DAM can add `DigitalSourceType`).
 * It does not copy C2PA manifests into resized copies. A C2PA signature covers 
   the exact bytes of the original file, so a copy inside a derivative would validate
   as tampered. The original keeps its manifest; the plugin records the fact and
   the signers.
 * It does not write AVIF yet. If your site converts sizes to AVIF, those sizes 
   stay unmarked and the settings screen tells you.
 * It is not legal advice. The AI Act distinguishes the machine-readable marking
   of the file (article 50(2)) from the visible disclosure to the person looking
   at the image (article 50(4)). The plugin gives you the tools for both; how you
   word the disclosure is your call, with your legal team.

#### Who it is for

Brands, e-commerce teams and agencies that publish AI-generated visuals (virtual
models, product shots, campaign images, AI-retouched photos) and need the marking
to survive publication, with proof in the Media Library. Works with WooCommerce 
galleries, the block editor, classic themes and headless setups.

#### Standards

 * IPTC Photo Metadata Standard: `Iptc4xmpExt:DigitalSourceType`.
 * IPTC IIM (Caption, By-line, Credit, Copyright) in the Photoshop APP13 segment.
 * C2PA (Coalition for Content Provenance and Authenticity) manifests: detected 
   and reported, never altered.
 * XMP in PNG (`iTXt XML:com.adobe.xmp`) and WebP (`XMP` chunk with the VP8X flag).

#### For developers

 * `ropemark_get_provenance( $attachment_id )` returns the record; `ropemark_is_ai_generated(
   $attachment_id )` returns a boolean.
 * Filters: `ropemark_should_preserve` (per attachment), `ropemark_decorate_image`(
   badge and label per image), `ropemark_badge_text`, `ropemark_label_text`, `ropemark_popup_rows`.
 * Constant `ROPEMARK_CREDIT_DEFAULT` (wp-config.php) to start with the credit line
   in the popup enabled.
 * Action: `ropemark_after_inject` with the per-size outcome.
 * WP-CLI: `wp ropemark scan [--all] [--dry-run]`, `wp ropemark status <id>`.
 * CSS classes for the front end: `.ropemark-wrap`, `.ropemark-ai-badge`, `.ropemark-
   pos-bottom-right` (and the other corners), `.ropemark-popup`, `.ropemark-label`,`.
   ropemark-site-notice`, `.ropemark-disclosure`, `img[data-ai-generated]`.

Ropemark Image Marking for the EU AI Act is made by [The Rope](https://therope.it),
a digital agency in Milan.

## Screenshots

[⌊Media Library list view with the AI marking column, filter and bulk actions.⌉⌊
Media Library list view with the AI marking column, filter and bulk actions.⌉[

Media Library list view with the AI marking column, filter and bulk actions.

[⌊The marking panel in the attachment details: provenance, classification, per-image
badge.⌉⌊The marking panel in the attachment details: provenance, classification,
per-image badge.⌉[

The marking panel in the attachment details: provenance, classification, per-image
badge.

[⌊Badges on grid tiles.⌉⌊Badges on grid tiles.⌉[

Badges on grid tiles.

[⌊The AI badge and the provenance popup on the front end.⌉⌊The AI badge and the 
provenance popup on the front end.⌉[

The AI badge and the provenance popup on the front end.

[⌊Settings: original file, generated sizes, badge, popup, label and site notice.⌉⌊
Settings: original file, generated sizes, badge, popup, label and site notice.⌉[

Settings: original file, generated sizes, badge, popup, label and site notice.

## Blocks

This plugin provides 1 block.

 *   AI disclosure notice

## Installation

 1. Install from the Plugins screen or upload the folder to `/wp-content/plugins/`.
 2. Activate.
 3. Go to **Media  Ropemark**, turn on the badge if you want it, and run **Scan new
    images** to process what was uploaded before activation.

Every new upload is processed automatically.

## FAQ

### Does the plugin detect AI images?

No. It reads the declaration inside the file (IPTC `DigitalSourceType`, C2PA manifest).
Images without a declaration are listed as “No marking”. Mark files in production,
before upload: most generators embed C2PA, and exiftool or any DAM can write `DigitalSourceType`.

### Is the badge enough for the AI Act?

The plugin cannot give legal advice. Article 50 asks for a visible, clearly distinguishable
disclosure at first exposure for deepfakes, which the Commission guidelines of July
2026 read as including photorealistic portraits of people who do not exist. A badge
on the image or a label next to it are the two forms seen on European e-commerce
sites today. Metadata alone is not considered enough for the visible part.

### Why is the C2PA manifest not in the thumbnails?

Because it would be a lie. A C2PA signature binds the exact bytes of one file. Thumbnails
are new files; the honest thing is to carry the XMP and IPTC declaration, keep the
manifest on the original, and record the signing tools in the library.

### My image optimizer strips metadata.

Smush, EWWW, ShortPixel, Imagify, TinyPNG, Optimole and LiteSpeed all have a “strip
metadata” option. Turn it off for the marking to survive, then re-scan the library.
The settings screen lists the optimizers it detects.

### Can I style the badge?

Yes: text or your own icon, corner, diameter, background color, opacity, text color,
minimum image width and tooltip are settings. For anything else the badge, popup
and label carry CSS classes (`.ropemark-ai-badge`, `.ropemark-popup`, `.ropemark-
label`) that you can restyle from your theme stylesheet or the Customizer. You can
also turn the badge off and use the `data-ai-generated` attribute in your theme.

### Can I keep the badge off some AI images?

Yes. Every attachment has a “visible badge” choice: follow the settings, always 
show, never show. Bulk actions set it on many images at once.

### What if a file has no marking at all?

Classify it by hand in the attachment details or with a bulk action. The plugin 
writes the IPTC digital source type into the generated sizes and, unless the original
carries a C2PA manifest, into the original too. Files with generator traces are 
listed as “Suspected AI, to confirm” so you find them first.

### Does it work with WebP and PNG sizes?

Yes. XMP is written as an `iTXt` chunk in PNG and as an `XMP` chunk in WebP (creating
the VP8X header when the encoder did not). IPTC IIM exists only in JPEG.

### Does it slow down uploads?

Marginally: one read and one write per generated size, copying bytes. Nothing is
re-encoded. On a large library use “Scan in background” (Action Scheduler when present,
WP-Cron otherwise) or WP-CLI: `wp ropemark scan` processes tens of images per second
in one process.

### How does it behave on a large library?

Filters and counters use flat flags, not the serialized record, so the Media Library
stays fast at tens of thousands of images. Scans run in time-bounded batches and
release memory as they go. Each derivative is read once and written only when the
marking is missing.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Ropemark Image Marking for the EU AI Act” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ The Rope ](https://profiles.wordpress.org/therope/)

[Translate “Ropemark Image Marking for the EU AI Act” into your language.](https://translate.wordpress.org/projects/wp-plugins/ropemark-image-marking-for-eu-ai-act)

### Interested in development?

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

## Changelog

#### 1.0.1

 * First public release: IPTC/XMP/C2PA provenance reading, marking carried into 
   JPEG, PNG and WebP sizes, manual classification per image and in bulk, generator
   traces as “suspected AI”, AI badge with provenance popup, per-image badge choice,
   text label, site notice, shortcode and block, schema.org digitalSourceType, Media
   Library column, panel, filters and CSV export, foreground and background library
   scan, WP-CLI, REST.

## Meta

 *  Version **1.0.1**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.1 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [ai images](https://wordpress.org/plugins/tags/ai-images/)[image metadata](https://wordpress.org/plugins/tags/image-metadata/)
   [iptc](https://wordpress.org/plugins/tags/iptc/)[media library](https://wordpress.org/plugins/tags/media-library/)
   [provenance](https://wordpress.org/plugins/tags/provenance/)
 *  [Advanced View](https://wordpress.org/plugins/ropemark-image-marking-for-eu-ai-act/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/ropemark-image-marking-for-eu-ai-act/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/ropemark-image-marking-for-eu-ai-act/reviews/)

## Contributors

 *   [ The Rope ](https://profiles.wordpress.org/therope/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/ropemark-image-marking-for-eu-ai-act/)