{"id":337965,"date":"2026-07-23T18:28:18","date_gmt":"2026-07-23T18:28:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/eu-ai-label\/"},"modified":"2026-08-02T21:59:13","modified_gmt":"2026-08-02T21:59:13","slug":"eu-ai-label","status":"publish","type":"plugin","link":"https:\/\/uz.wordpress.org\/plugins\/eu-ai-label\/","author":23529995,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.5.0","stable_tag":"0.5.0","tested":"7.0.2","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"EU AI Label","header_author":"EU AI Label","header_description":"Adds visible, localized AI labels to images in the Media Library, in the spirit of EU AI Act Article 50 transparency obligations.","assets_banners_color":"212a61","last_updated":"2026-08-02 21:59:13","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/euailabel.app\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":10,"downloads":160,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.3.0":{"tag":"0.3.0","author":"lukjak","date":"2026-07-23 18:27:53"},"0.4.1":{"tag":"0.4.1","author":"lukjak","date":"2026-08-02 20:06:14"},"0.5.0":{"tag":"0.5.0","author":"lukjak","date":"2026-08-02 21:59:13"}},"upgrade_notice":{"0.2.0":"<p>Media Library label column, redesigned settings page, and a 10-image free-plan cap (existing labels keep working).<\/p>","0.1.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3620383,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3620383,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3620383,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3620383,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3620383,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.3.0","0.4.1","0.5.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3620383,"resolution":"1","location":"assets","locale":"","width":1480,"height":1120},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3620383,"resolution":"2","location":"assets","locale":"","width":880,"height":1160},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3632118,"resolution":"3","location":"assets","locale":"","width":1280,"height":764}},"screenshots":{"1":"The AI transparency badge rendered on a front-end image (with the optional Pro alteration tooltip).","2":"Setting the AI label and alteration details on an attachment in the Media Library.","3":"Pro Label Studio with color controls, border radius, icon choices, live preview, and WCAG contrast feedback."}},"plugin_section":[],"plugin_tags":[2353,254918,163,233,25098],"plugin_category":[50],"plugin_contributors":[78154,273028],"plugin_business_model":[],"class_list":["post-337965","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-eu-ai-act","plugin_tags-images","plugin_tags-media-library","plugin_tags-transparency","plugin_category-media","plugin_contributors-freemius","plugin_contributors-lukjak","plugin_committers-lukjak"],"banners":{"banner":"https:\/\/ps.w.org\/eu-ai-label\/assets\/banner-772x250.png?rev=3620383","banner_2x":"https:\/\/ps.w.org\/eu-ai-label\/assets\/banner-1544x500.png?rev=3620383","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/eu-ai-label\/assets\/icon.svg?rev=3620383","icon":"https:\/\/ps.w.org\/eu-ai-label\/assets\/icon.svg?rev=3620383","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/eu-ai-label\/assets\/screenshot-1.png?rev=3620383","caption":"The AI transparency badge rendered on a front-end image (with the optional Pro alteration tooltip)."},{"src":"https:\/\/ps.w.org\/eu-ai-label\/assets\/screenshot-2.png?rev=3620383","caption":"Setting the AI label and alteration details on an attachment in the Media Library."},{"src":"https:\/\/ps.w.org\/eu-ai-label\/assets\/screenshot-3.jpg?rev=3632118","caption":"Pro Label Studio with color controls, border radius, icon choices, live preview, and WCAG contrast feedback."}],"raw_content":"<!--section=description-->\n<p>EU AI Label lets you flag images in your WordPress Media Library as AI generated or AI modified. Labeled images are wrapped on the front end with a clean badge overlay so visitors can see at a glance which visuals involved AI.<\/p>\n\n<p>Built for EU WooCommerce stores that want a simple, honest way to disclose AI-generated product imagery \u2014 no C2PA, no cryptography, no external services. Just a clear visual mark plus attachment metadata.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Per-image labeling directly in the Media Library, for unlimited images.<\/li>\n<li>Three-state taxonomy: AI generated, AI modified, or No AI (no badge).<\/li>\n<li>Server-side-first rendering. Featured\/gallery images, in-content images, Elementor AJAX widgets, and Media Library-backed static Elementor backgrounds are covered; lightweight helpers support dynamic\/background and Pro tooltip behavior.<\/li>\n<li>An accessibility-first badge: always visible (no hover needed), high-contrast on any photo, <code>role=\"img\"<\/code> with a screen-reader label, and a readable minimum size. The wording and pill shape mirror the EU standardized AI labels.<\/li>\n<li>Fully localized badge text \u2014 English, Polish, German, French, Spanish, Italian, and Dutch \u2014 following the site or user locale.<\/li>\n<\/ul>\n\n<p>Labeling is manual and per-image by design: you stay in control of exactly what is disclosed.<\/p>\n\n<p>This plugin is part of the euailabel.app AI Act toolkit for e-commerce.<\/p>\n\n<p><strong>Need to audit images across an entire website?<\/strong> <a href=\"https:\/\/aiacticon.com\/?utm_source=wordpress.org&amp;utm_medium=plugin-readme&amp;utm_campaign=eu-ai-label\">AI Act Icon<\/a> discovers public website images and where they appear, then helps you classify them and maintain an audit history.<\/p>\n\n<p>EU AI Label is an independent tool that helps with transparency disclosures in the spirit of the EU AI Act (Regulation (EU) 2024\/1689). It is not affiliated with, endorsed by, or an official labeling scheme of the European Union or any EU institution.<\/p>\n\n<p><strong>EU AI Label Pro<\/strong><\/p>\n\n<p>A Pro upgrade adds, for stores that need more:<\/p>\n\n<ul>\n<li>An adaptive badge that auto-adjusts to light or dark images.<\/li>\n<li>Label Studio controls for background\/text colors, border radius, and an optional Sparkles, AI Pen, or Robot icon.<\/li>\n<li>Bulk labeling from the Media Library (list and grid views).<\/li>\n<li>Optional \"how it was altered\" details shown in a badge tooltip (e.g. background removed, color modified).<\/li>\n<li>A tamper-evident audit log of every label change (who, what, when), sealed with a hash chain.<\/li>\n<\/ul>\n\n<p>Label Studio is available under Settings \u2192 EU AI Label \u2192 Label Studio. Its live preview shows color, corner-radius, and icon changes immediately and reports the resulting WCAG AA text-contrast ratio before the style is saved. Badge wording remains localized and cannot be replaced. The compact \u201cAI\u201d mark stays circular and icon-free, while custom colors override the adaptive light-chip palette for consistent branding.<\/p>\n\n<p>The free plugin is a complete, unrestricted disclosure tool; Pro adds the refinements above. All Pro functionality lives in a separately distributed build \u2014 nothing in the free plugin is locked or limited.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>eu-ai-label<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install through the Plugins screen.<\/li>\n<li>Activate the plugin through the <em>Plugins<\/em> screen in WordPress.<\/li>\n<li>Open any image in the Media Library and set its <em>AI label<\/em> to AI generated or AI modified.<\/li>\n<li>Labeled images get the badge automatically on the front end. There is nothing else to configure.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20detect%20ai%20images%20automatically%3F\"><h3>Does this detect AI images automatically?<\/h3><\/dt>\n<dd><p>No. Labeling is manual and per-image, by design. You decide what is disclosed.<\/p><\/dd>\n<dt id=\"is%20the%20free%20version%20limited%3F\"><h3>Is the free version limited?<\/h3><\/dt>\n<dd><p>No. The free plugin is fully functional: you can label as many images as you like, and every feature it ships is available to everyone. Pro is a separate build that adds extras (Label Studio, adaptive badge, bulk labeling, alteration tooltips, and an audit log). Labels always keep working and stay editable, even if you drop from Pro back to free.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20badge%20text%20or%20its%20appearance%3F\"><h3>Can I change the badge text or its appearance?<\/h3><\/dt>\n<dd><p>The free badge uses a fixed, accessibility-first style. Pro includes Label Studio for changing background and text colors, border radius, and an optional icon, with a live WCAG contrast warning. Badge text remains fixed and localized automatically.<\/p><\/dd>\n<dt id=\"which%20images%20get%20the%20badge%3F\"><h3>Which images get the badge?<\/h3><\/dt>\n<dd><p>Any labeled Media Library image used as a featured image, in a gallery\/carousel, in post content, or as a static Elementor background. Externally hotlinked images and raw CSS background URLs without a Media Library attachment ID cannot be labeled. Elementor background slideshows are skipped because one fixed label cannot accurately describe a changing image.<\/p><\/dd>\n<dt id=\"is%20this%20legal%20advice%20or%20a%20guarantee%20of%20compliance%3F\"><h3>Is this legal advice or a guarantee of compliance?<\/h3><\/dt>\n<dd><p>No. EU AI Label is a tool to help you disclose AI-generated imagery clearly. It does not constitute legal advice, and using it does not by itself guarantee compliance with the EU AI Act or any other law. Consult a qualified professional about your obligations.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20labels%20when%20i%20uninstall%3F\"><h3>What happens to labels when I uninstall?<\/h3><\/dt>\n<dd><p>Plugin settings are removed on uninstall. Per-image labels stored in attachment metadata are preserved so they survive a reinstall.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Added: Pro Label Studio with live preview, background\/text colors, border radius, optional Sparkles\/AI Pen\/Robot icons, and a WCAG contrast warning.<\/li>\n<li>Improved: Elementor support for AJAX-loaded widgets, custom galleries\/carousels, and Media Library-backed static background images.<\/li>\n<li>Fixed: Elementor ratio-card thumbnails no longer disappear when the label wrapper is inserted.<\/li>\n<li>Fixed: Pro alteration tooltips inside linked thumbnails keep a single focus target and no longer block image links.<\/li>\n<li>Added: WooCommerce product-editor controls for labeling featured and gallery images.<\/li>\n<li>Improved: WooCommerce controls now use a native Product Data tab with live status feedback.<\/li>\n<li>Added: a premium-only Woo Marketplace build with all Pro features and no external licensing runtime.<\/li>\n<li>Added: HPOS compatibility declaration and testing against WooCommerce 10.8 and 10.9.<\/li>\n<li>Changed: the minimum supported PHP version is now 7.4.<\/li>\n<\/ul>\n\n<h4>0.4.1<\/h4>\n\n<ul>\n<li>Fixed: temporary Freemius pricing-page CSS now loads through WordPress enqueue APIs.<\/li>\n<li>Added: a related AI Act Icon website-audit product link.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Added: a new \"AI (without details)\" label for images where AI involvement is disclosed but the type of change is not. It renders as a compact, localized \"AI\" circle badge.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Changed: removed the free-plan 10-image limit \u2014 the free plugin now labels unlimited images and is fully functional, per WordPress.org guidelines.<\/li>\n<\/ul>\n\n<h4>0.2.3<\/h4>\n\n<ul>\n<li>New: redesigned upgrade page \u2014 real yearly prices instead of per-month framing, prices in EUR by default (USD still selectable), and the plugin icon on all Freemius screens.<\/li>\n<\/ul>\n\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>Changed: the bundled Freemius SDK moved from includes\/freemius to vendor\/freemius, the wordpress.org convention for third-party libraries.<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Fixed: removed the Author URI plugin header (duplicated the Plugin URI, flagged by wp.org Plugin Check).<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>New: \"AI label\" column with status chips in the Media Library list view.<\/li>\n<li>New: redesigned settings page \u2014 live badge preview, labeled-image counts, clearer plan overview.<\/li>\n<li>New: free plan labels up to 10 images; Pro is unlimited. Existing labels always keep working.<\/li>\n<li>Improved: audit log (Pro) shows label changes as status chips.<\/li>\n<li>Fixed: admin thumbnails are no longer wrapped with front-end badge markup (stray badge text under Media Library thumbnails).<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: per-image AI labeling, localized accessibility-first front-end badge covering featured, gallery, and in-content images.<\/li>\n<\/ul>","raw_excerpt":"Add visible, localized AI labels to your Media Library images, in the spirit of EU AI Act Article 50 transparency obligations.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/337965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=337965"}],"author":[{"embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lukjak"}],"wp:attachment":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=337965"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=337965"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=337965"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=337965"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=337965"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=337965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}