Skip to content
WordPress.org
  • Showcase
  • Plugins
  • Themes
  • Hosting
  • News
    • Learn WordPress
    • Documentation
    • Education
    • Forums
    • Developers
    • Blocks
    • Patterns
    • Photos
    • Openverse ↗︎
    • WordPress.tv ↗︎
    • About WordPress
    • Make WordPress
    • Events
    • Five for the Future
    • Enterprise
    • Gutenberg ↗︎
    • Job Board ↗︎
  • Swag ↗︎
  • Get WordPress
Get WordPress
WordPress.org

Plugin Directory

Ropemark Image Marking for the EU AI Act

  • Submit a plugin
  • My favorites
  • Log in
  • Submit a plugin
  • My favorites
  • Log in

Ropemark Image Marking for the EU AI Act

By The Rope
Download
  • Details
  • Reviews
  • Installation
  • Development
Support

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, 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.
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.
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.

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

Translate “Ropemark Image Marking for the EU AI Act” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by 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 imagesimage metadataiptcmedia libraryprovenance
  • Advanced View

Ratings

No reviews have been submitted yet.

Your review

See all reviews

Contributors

  • The Rope

Support

Got something to say? Need help?

View support forum

  • About
  • News
  • Hosting
  • Privacy
  • Showcase
  • Themes
  • Plugins
  • Patterns
  • Learn
  • Documentation
  • Developers
  • WordPress.tv ↗
  • Get Involved
  • Events
  • Donate ↗
  • Swag ↗
  • WordPress.com ↗
  • Matt ↗
  • bbPress ↗
  • BuddyPress ↗
WordPress.org
WordPress.org
  • Visit our X (formerly Twitter) account
  • Visit our Bluesky account
  • Visit our Mastodon account
  • Visit our Threads account
  • Visit our Facebook page
  • Visit our Instagram account
  • Visit our LinkedIn account
  • Visit our TikTok account
  • Visit our YouTube channel
  • Visit our Tumblr account
Code is Poetry
The WordPress® trademark is the intellectual property of the WordPress Foundation.