
Classify media clearly
Five status values, quick marking, filters, review date and reviewer ensure that decisions remain editorially traceable, not merely visible.
In-house WordPress plugin
OMS Labels AI Transparency combines theme-neutral, responsive labels for media and posts with editorial review, traceable status data, Quick Edit and optional permanently labelled image copies. Image dimensions, theme markup and original files remain unchanged.

The update makes labelling reliable on pages with moving or nested layouts - no new settings, no data migration.
Right-aligned positions inside tightly wrapped containers (figure with fit-content, galleries, Woo thumbnails, Elementor widgets) were squeezed to a strip. width:max-content restores the full badge - verified across 240 combinations: 240/240 correct.
The containing block is enforced with inline !important and continuously verified (badge.offsetParent === host). If a host stays unusable, the label falls back into the text flow (.is-unanchored) instead of being misplaced.
Parallax, sliders and drag elements move media without scroll, transition or resize events. A throttled movement watch (500 ms, viewport-near media only, paused while document.hidden) plus pointerup/touchend keeps overlays aligned.
Anchor rules now ship additionally as inline critical CSS (overlay_critical_css(), filter kit_ai_overlay_critical_css). If frontend.css is blocked or altered in delivery, badges no longer scroll with the content.
WP Rocket and Autoptimize sometimes kept serving stale minified copies for months after plugin updates. New filters (rocket_exclude_js/css, rocket_exclude_defer_js, autoptimize_filter_js/css_exclude, switch kit_ai_optimizer_excluded_assets) restore the plugin's own URL with ?ver=plugin version - cost about 2 KB gzip.
Labels survive DOM rebuilds (cleanupRecord resets decorate markers, pruning runs before the scan). Style recalculations during init dropped by roughly 80 percent; idle cost is about 0.8 ms per second.
Tested up to WordPress 7.1. After updating: purge the WP Rocket and Cloudflare caches once - from 3.6.25 the plugin assets are excluded from minification and bust their own cache.
The plugin does more than add a label. It connects the visible output with media-library status, editorial reviews and technical records.

Five status values, quick marking, filters, review date and reviewer ensure that decisions remain editorially traceable, not merely visible.

The scan can detect existing IPTC, XMP and possible C2PA indicators as review suggestions. The actual classification deliberately remains an editorial decision.

A content hash detects later changes. Sources, fact checking, editorial responsibility and AI systems can be documented, while Quick Edit and Bulk Edit shorten the editorial workflow.

Symbols, JavaScript and CSS are included locally in the plugin. No cookies are set and no media are sent to third-party servers for detection.
The recommended workflow separates automatic review suggestions from deliberate editorial decisions.
For a safe start, choose “Media library + CSS classes” and review the exclusions.
Set the appropriate AI status in the media library and review suggested provenance indicators.
Adjust shape, base size, icon contrast, position, colours and responsive short text in the live preview. Post image, search result and tile use the same logic as the front end.
Edit posts in the editor, Quick Edit or Bulk Edit, approve a specific revision and monitor changes in the central AI Content overview.
Technology cannot replace a case-by-case assessment. The publisher remains responsible for:
The overlay is intended for display on the website. A separate image copy keeps the notice in the file after download or sharing.


The plugin works with the WordPress media library, Gutenberg content, galleries, Cover blocks, Media & Text, WooCommerce and common Elementor content areas. Labels are added without wrappers: image width, height, srcset, sizes and theme classes remain untouched.
The directory package uses English source strings. After publication, WordPress automatically delivers approved community translations for the site language. This documentation is available separately in English and German.
This guide applies to OMS Labels AI Transparency 3.6.25. The WordPress.org package uses English source strings; approved translations are later distributed automatically through WordPress.org.
The full developer handover describes architecture rules, data model, hooks, options, front-end rendering, image copies and test procedures. The downloadable files are currently provided in German.
In the recommended selection mode, a notice appears only for explicitly classified media or elements with the relevant CSS classes.
| Setting | Recommended starting point |
|---|---|
| Label images | Enable this option when visible notices should be displayed on images. |
| Audio and video | Enable this option when embedded audio and video elements should also display notices. |
| Selection mode | Media library + CSS classes. Specific media-library statuses take priority. |
| Always exclude | Add logos, avatars, emojis and custom areas that must never be labelled. |
| Media-library quick marking | Choose a suitable default status; initially leave automatic adoption of detected provenance disabled. |
IPTC, XMP or possible C2PA data may be missing, incomplete or incorrect. Always perform an editorial review before classification.
In the Media tab, you control which media types are considered and how the plugin selects labelled content.
Under Media → AI Media Review, the plugin shows status counts, detected indicators and image-copy states. The central AI Content overview also brings together open media and post reviews.
The visible label is aligned as a separate overlay layer on the existing medium. The plugin does not wrap, move or scale the image. The live preview uses the same sizing logic as the front end and shows a post image, search result and small tile.
| Area | Function |
|---|---|
| Shape | Automatic, always compact badge or full-width bar on sufficiently large media. Small archive, sidebar and tile images are protected regardless of the base shape. |
| Base size | Small, medium or large determines the appearance on large media. On small images, font, padding and icon are reduced proportionally. |
| Responsive text | Automatic short text, forced short text, icon-only or full text while sufficient space remains. |
| Position | Badges at the top or bottom, left or right; bars separately at the upper or lower image edge. |
| Icon and contrast | Local AI, AI-GENERATED and AI-MODIFIED symbols in black, white or automatic contrast. Icons are decorative background elements rather than ordinary theme images. |
| Labels | Custom text for fully generated, partly modified and general notices, plus an English version. |
| Colours & opacity | Adapt background, text, accent, transparency, corner radius, edge spacing and z-index to the frontend design. |
| Live preview | Compact preview cards for post image, search/archive image and tile. Changes appear immediately without modifying the actual media. |
| Contrast check | Warning when the contrast ratio is below 4.5:1. |
| Local EU icon | Controls the icon in the overlay and is required for permanently labelled image copies. Without it, browser text labels can remain active, but no image copy is generated. |
Width, height, srcset, sizes, theme classes and the medium’s DOM position remain unchanged. Direct theme selectors for featured images are not interrupted by additional wrappers.
Page, CSS, CDN and browser caches may continue to serve old styles. In optimisation plugins such as WP Rocket, rebuild optimised CSS and JavaScript afterwards.
Image copies are useful when the label should remain visible after download, export or sharing. The plugin creates a separate WordPress media file under wp-content/uploads/oms-labels-ai-transparency/ and leaves the original untouched.
Generated files are registered as regular WordPress attachments. The path is resolved through WordPress at runtime; original uploads are never overwritten.
Optionally, IPTC/XMP fields such as Digital Source Type and supplementary AI information can be written. Imagick is required for WebP metadata; the GD fallback only creates the visible label.
When a permanently labelled copy is served, the dynamic overlay should not also appear on that image. The plugin includes logic to avoid this duplication.
In the post editor, AI status and review can be recorded directly for the relevant version.
The post notice can be displayed below the content and before common author boxes. An additional plain-text notice can optionally be enabled in RSS feeds.
A public notice appears only on explicitly classified posts. After content changes, the new version must be reviewed and approved again.
| Function | Description |
|---|---|
| Custom selectors | Specifically include or exclude theme, builder or project areas. |
| RSS notice | Optionally add a plain-text notice to feeds. |
| CSV export | Export media and post logs; formula injection in spreadsheets is mitigated. |
| Site Health | Check local icons and whether existing image copies are up to date. |
| Plugin design | Customise the accent, background, card, text and header colours of the admin interface. |
| Data on uninstall | Optionally enable complete data removal. Review logs are retained by default. |
| AI Content overview | Combine open media and post reviews and jump directly to the relevant filtered lists. |
[ai_transparency_label][ai_transparency_label style="minimal" text="Your own transparency notice"]The legacy shortcode [ki_transparenzhinweis] remains available for compatibility.
| Class | Meaning |
|---|---|
.kit-ai-full | Label a medium or area as fully AI-generated. |
.kit-ai-partial | Label a medium or area as partly modified with AI. |
.kit-ai-generic | Use a general AI notice. |
.kit-ai-skip | Explicitly exclude a medium or entire area from labelling. |
The classes can be applied directly to the image, its surrounding link or a suitable container. With complex builder structures, check the output on desktop and mobile afterwards.
OMS Labels AI Transparency does not load fonts, icons, scripts or styles from third-party servers. There is no telemetry, licence server or analytics feature. The media-library scan processes files on the site server. Language packs for the WordPress.org version are delivered only through the standard WordPress translation system.
The theme, website and other plugins may independently use their own external services. These must be reviewed separately.
.kit-ai-skip applied.The current version does not wrap or scale media. If a visible jump remains, old combined CSS or JavaScript is most likely still being served. In WP Rocket or a comparable optimiser, clear the page cache, used CSS, minified files and CDN cache, then test in a private browser window.
Local symbols are no longer rendered as ordinary <img> elements. They use status-specific background elements, so theme rules for featured images cannot scale them. After an update, still rebuild all optimised CSS and JavaScript files.
A permanently labelled image copy and a dynamic overlay are being displayed at the same time. Enable duplicate-label prevention in the image-copy settings and clear the cache.
Since version 3.6.9, dismissal is stored permanently for each user account. After an update, close the notice once using the standard close button. If it returns, clear admin/object caches and check whether backend AJAX requests are blocked.
The stored content hash no longer matches the current version. Review the post, sources and status again, then deliberately approve the new version.
No. The plugin supports visible notices, editorial documentation and technical workflows. It does not replace legal advice and does not guarantee compliance with the EU AI Act or other regulations.
No, not as a blanket rule. The European Commission specifically refers to AI-generated or manipulated text concerning matters of public interest where no human review or editorial control has taken place and no natural or legal person assumes editorial responsibility. The Cologne Chamber of Industry and Commerce also notes that not every marketing or website text falls within this category.
Source: European Commission · Practical overview: Cologne Chamber of Industry and Commerce
The legal obligation does not apply automatically to every image. Article 50 specifically highlights deepfakes: AI-generated or manipulated image, audio or video content resembling existing persons, objects, places, entities or events and liable to falsely appear authentic. Additional voluntary labelling can form part of an organisation’s own transparency strategy.
The European Commission describes use of the symbols as voluntary. Where a disclosure obligation applies, it remains in force. The symbol alone does not establish legal compliance.
In the recommended mode, only when they have been explicitly classified in the media library or marked with a CSS class. The broad mode covering all media within defined content areas is optional and should be used deliberately.
No. The plugin can read or write IPTC/XMP indicators and detect possible C2PA data. Full cryptographic C2PA verification is not included.
Article 50 of the EU AI Act has applied since 2 August 2026. The current regulation, European Commission guidance and the circumstances of the specific content are relevant to a case-specific assessment. The plugin does not provide legal advice.
Legal basis: Regulation (EU) 2024/1689 · Practical overview: Cologne Chamber of Industry and Commerce
The following sources provide general orientation. They do not replace a case-specific legal assessment. The current text of the regulation, official guidance and the circumstances of the specific content are decisive.
I build and optimise WordPress websites with a focus on clear usability, mobile presentation, loading speed and traceable processes.