Subreality AI-Media-Label

Description

Subreality AI-Media-Label helps you meet the transparency obligations of the EU AI Act for image material with as little effort as possible.

An editor decides once, in the media library, whether an image

  • needs no label,
  • was fully AI-generated, or
  • was edited with AI.

From that moment on, the label appears automatically everywhere the image is used on the site – as a featured image, in Gutenberg blocks, in galleries, in the Classic Editor and on WooCommerce product images. Editors never have to think about it again when inserting the image.

Important: The plugin never modifies the image file itself. No image manipulation takes place (no GD, no Imagick, no watermark burned into the file). The label is rendered purely through an HTML wrapper plus CSS. It therefore works losslessly with JPEG, WebP, AVIF and any other format, and the design can be changed at any time without reprocessing existing images.

The plugin is fully translatable, with translations delivered through translate.wordpress.org. The badge texts can be changed freely on the settings page, so the visible frontend label can be in any language you like.

How it works

  • Three additional fields in the media edit dialog: label status, badge visibility, badge position.
  • Automatic detection on upload: If an image file contains the IPTC/XMP standard value digitalSourceType (set by DALL-E and Adobe Firefly, among others), the label status is applied automatically. This can be switched off, and an existing label is never overwritten.
  • Automatic coverage of attachment images through wp_get_attachment_image() (featured images, WooCommerce) as well as through rendered content (Gutenberg, Classic Editor, galleries).
  • An additional safety net for images in block templates (full site editing), plus an optional JavaScript fallback for themes that only output images by their URL.
  • Global settings page (Settings > Subreality AI-Media-Label) with a live preview: site-wide on/off switch, badge texts, badge position and visibility (optionally enforced for all images), a freely selectable background colour with an opacity slider – the badge text colour is chosen automatically for sufficient contrast.
  • Media library tools: a dedicated “AI label” column in the list view, a status filter (including “not labelled”) and bulk actions to label many images at once.
  • Machine-readable label: labelled images additionally receive a data-ai-status attribute in the HTML, which can be evaluated by search engines and tools even when the visible badge is hidden. This can be switched off.
  • Live preview of the label directly in the block editor.
  • No label is applied in RSS/Atom feeds and WooCommerce emails, because no plugin CSS is loaded there.
  • Extensive filters and actions for developers, among other things to replace the badge design entirely and to add custom detection markers.

Privacy

This plugin does not collect, store or transmit any personal data about site visitors. It only stores editorial metadata (the label status) on the individual media attachment. The automatic detection reads the locally uploaded file only; no external services are contacted.

Bundled image files

The sample image used in the live preview (assets/img/beispielbild.webp) and the plugin logo (assets/img/ki-transparenz-logo.svg) were created by the plugin author with an AI image generator. No third-party rights apply to them; they are licensed under GPLv2 or later, just like the plugin.

Screenshots

Installation

  1. Upload the plugin folder to /wp-content/plugins/, or upload the ZIP file via “Plugins > Add New”.
  2. Activate the plugin.
  3. Edit an image in the media library and choose the appropriate status under “AI label” – or simply upload an AI image that carries the corresponding metadata, in which case it happens automatically.

FAQ

Is the image file modified?

No. The label is rendered purely through HTML and CSS while the page is being output. The original file is never touched.

Does the plugin work with any theme?

Yes. The labelling hooks into WordPress core (wp_get_attachment_image, the_content, render_block) and is therefore independent of the theme in use. For themes that only output images by their URL (for example via get_the_post_thumbnail_url), an optional JavaScript fallback detection is available, as well as helper functions for theme developers.

Does the plugin detect AI images automatically?

Yes, on upload. Many generators (for example DALL-E and Adobe Firefly) embed the IPTC standard value digitalSourceType into the file. If the plugin finds this marker, the status is applied automatically. Images without metadata (for example screenshots taken from AI tools) still have to be labelled manually.

Can I customise the appearance of the badge?

Yes. Badge texts, position, background colour and opacity are configurable on the settings page, with a live preview. The text colour is chosen automatically for sufficient contrast. For anything beyond that, developer filters are available, among them subreal_ai_badge_renderer for a completely custom badge design.

What happens if I disable “show badge”?

The label status stays stored, but no visible label is rendered in the frontend. The machine-readable label (the data-ai-status attribute) is still applied, provided that option is enabled.

In which languages is the plugin available?

The admin interface is in English. Translations are delivered through translate.wordpress.org and are installed automatically, and every string is translatable, so contributions are welcome. The badge texts shown in the frontend can be edited freely on the settings page as well, so the visible label can be in any language regardless of the interface language.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Subreality AI-Media-Label” is open source software. The following people have contributed to this plugin.

Contributors

“Subreality AI-Media-Label” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Subreality AI-Media-Label” 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.0

  • First release.
  • Labels AI-generated and AI-edited images purely through an HTML wrapper and CSS – the original file is never modified.
  • Three fields per image in the media library: label status (none / AI-generated / AI-modified), badge visibility and badge position.
  • Automatic coverage of featured images, WooCommerce images and images in post content; optional JavaScript fallback for images that themes only output by their URL.
  • Settings page with live preview: badge texts, position, visibility, background colour and opacity; global defaults can be enforced for all images.
  • Badge text colour is chosen automatically for sufficient contrast (light text on dark backgrounds and vice versa).
  • Machine-readable data-ai-status attribute on every labelled image, even when the badge is hidden.
  • Automatic detection on upload based on the XMP/IPTC marker digitalSourceType; existing labels are never overwritten.
  • Media library list view: “AI label” column, status filter and bulk actions for labelling and removing.
  • No labelling inside WooCommerce emails; contexts and markup are extensible through filters.
  • Fully translatable interface in English; translations are delivered through translate.wordpress.org.
  • Optionally removes all plugin data on uninstall.