Description
Enfants IMG Performer detects AI-generated images on upload and applies a machine-readable and visible label as required by Article 50 of the EU AI Act. At the same time it converts every upload to WebP (free) and AVIF (Pro) locally on your own server – no cloud service, no account, no limit. The Pro version also generates WCAG 2.1 AA alt texts for the European Accessibility Act using your own AI API key.
The separately available Enfants Img Performer PRO plugin unlocks AVIF conversion, bulk optimization and AI-powered alt text generation.
Why Img Performer?
Most image optimization plugins send your images to a third-party cloud service for processing – often with monthly quotas and accounts required. Img Performer is different: it uses PHP’s built-in GD library (with Imagick as fallback) to convert images locally. Your images never leave your server. No account needed. No monthly limit.
What it does
- Converts JPEG and PNG uploads to WebP automatically – unlimited, free
- Converts all registered image sizes (thumbnail, medium, large, custom)
- Rewrites
src,srcset,href(lightbox) and lazy-load attributes in the frontend - Deletes WebP files when the original image is deleted
- Logs all conversions for transparency
- Configurable quality setting (1–100, default 85)
- CO₂ savings tracker with optional anonymous global statistics
- Detects AI-generated images on upload and labels them for EU AI Act Art. 50 compliance – see below
The separately available Enfants Img Performer PRO plugin (installed alongside this plugin) adds:
- AVIF conversion – up to 50% smaller than WebP
- Bulk Converter – convert your entire media library in one click
- AI Alt Text Generator – WCAG-compliant alt texts via Mistral, Claude or OpenAI
- AI labeling in Alt-Text – optionally append a disclosure note to the alt text of AI-classified images
EU AI Act Art. 50: AI image labeling
From August 2, 2026, AI-generated images published on a website must carry machine-readable labeling under Article 50 of the EU AI Act. WordPress itself strips this information the moment it generates thumbnails on upload (WordPress/ai issue #421, unresolved) – Img Performer works around that:
- Detects AI provenance in newly uploaded images (based on embedded metadata such as C2PA manifests, where present)
- Writes its own hosting-independent labeling into the original and every generated image size – no Imagick required
- Shows a visible “AI-generated” badge on the frontend, toggleable
- Lets you manually correct the automatic classification directly in the Media Library
- Shows an “AI Labeling” status column and Alt-Text presence indicator in the Media Library list view, with a “Needs review” filter for unclassified images
- Only applies to new uploads – your existing media library is not scanned or changed retroactively
The separately available PRO plugin additionally lets you append a disclosure note to the image’s alt text itself when it’s classified as AI-generated (optional, per image).
This labeling is based on the IPTC “Digital Source Type” standard field and meets the technology-neutral requirements from the EU AI Act Code of Practice. It is not a cryptographically signed C2PA manifest – producing one would require certification through the official C2PA Conformance Programme, a separate process this plugin does not perform.
GDPR / DSGVO
Enfants Img Performer processes all images exclusively on your own server. No image data, IP addresses or personal information is transferred to external services. No API keys required.
The only optional external connection is the anonymous CO₂ statistics feature (opt-in, disabled by default). When enabled, it sends only total bytes saved to our EU-based server – no IP address, no domain, no personal data.
Requirements
- WordPress 6.0 or higher
- PHP 7.4 or higher
- GD extension with WebP support (
imagewebp)
External Services
This plugin can optionally send anonymous usage data to an external service operated by Enfants Terribles digital GmbH.
CO₂ Statistics (opt-in, disabled by default)
When you enable “Global sustainability stats” in the plugin settings, the plugin sends the following data once per day to our EU-based server:
- An anonymous random site ID (UUID v4, generated locally, no personal data)
- Total bytes saved through WebP conversion
No images, no IP addresses, no domain names and no personal data are transmitted. The anonymous site ID cannot be traced back to you or your website.
This data is used solely to display a global CO₂ savings counter on the plugin website.
- Service: Enfants Terribles digital GmbH (EU-based server, Netcup, Germany)
- Endpoint: https://tools.enfants.de/imp-stats/
- Privacy Policy: https://img-performer.enfants.de/datenschutz/
- Terms of Use: https://img-performer.enfants.de/nutzungsbedingungen/
Screenshots























Installation
- Upload the plugin to
/wp-content/plugins/img-performer/or install via the WordPress plugin directory. - Activate the plugin.
- Go to Settings Img Performer to configure the quality.
- Upload an image – WebP is created automatically.
FAQ
-
Does this plugin send images to an external server?
-
No. All conversions happen locally using PHP’s GD library (with Imagick as fallback). Your images never leave your server.
-
Is there a monthly limit?
-
No. Img Performer converts unlimited images for free. There are no quotas, no credits and no subscription required for the basics.
-
Which image formats are supported?
-
JPEG and PNG are converted to WebP. Other formats (GIF, SVG, WebP) are skipped. AVIF conversion is available via the separately installable Enfants Img Performer PRO plugin.
-
What happens if my server doesn’t support WebP?
-
The plugin checks for WebP support automatically. If not available, conversion is silently skipped and the original image is served. No errors, no broken images.
-
Does it work with page builders like Elementor or Divi?
-
It works well with Gutenberg and the classic editor. Page builders like Elementor or Divi sometimes use their own image rendering pipelines – a quick test on your setup is recommended.
-
Does it work with lazy-load plugins?
-
Yes. Img Performer replaces URLs in
data-src,data-full,data-largeanddata-lazy-srcattributes used by popular lazy-load plugins like WP Rocket and Jetpack. -
Does it replace images in lightboxes?
-
Yes. When you enable “Expand on click” in Gutenberg, the lightbox link (
href) is also rewritten to serve WebP or AVIF. -
Does the AI image labeling send any data externally?
-
No. Detection and labeling both run entirely locally on your own server, the same as WebP conversion. No image data, API keys or cloud connection involved.
-
Will the AI labeling detect every AI-generated image?
-
Only if the image itself carries embedded provenance data (such as a C2PA manifest) from the tool that generated it. Not every AI tool embeds this yet, and re-saving, editing or screenshotting an image removes it. Images without a usable signal are marked “Unknown” so you can review and correct them manually.
-
How do I label AI-generated images in WordPress for the EU AI Act?
-
Enfants IMG Performer checks every upload for signals that an image is AI-generated (C2PA /
Content Credentials manifests, EXIF metadata, heuristics). Detected images get a visible label
on the front end and a machine-readable marker written into the file. You can correct edge
cases manually in the media library – for example when an image is AI-generated but obviously
artificial and does not need a visible label. -
Does the plugin write C2PA / Content Credentials metadata?
-
The plugin reads existing C2PA / Content Credentials manifests on upload and writes a
machine-readable marker into the original image and into every image size WordPress generates,
embedded as an XMP packet using the IPTC “Digital Source Type” property. This keeps the label
intact in the thumbnails, where WordPress normally strips metadata. It is not a cryptographically
signed C2PA manifest – producing one would require certification through the official C2PA
Conformance Programme, which this plugin does not perform. -
Does image optimization work without a cloud service or an account?
-
Yes. WebP and AVIF conversion and AI image detection run entirely locally on your server. No
images are sent to any external service, you don’t need an account, and there is no quota for
conversion. Only the optional AI alt-text feature uses an AI provider of your choice through
your own API key. -
Does the plugin generate accessible alt texts (European Accessibility Act / BFSG)?
-
Yes, in the Pro version. IMG Performer generates WCAG 2.1 AA alt texts on upload through an AI
provider of your choice – recommended: Mistral (hosted in France, GDPR-compliant),
alternatively Claude or OpenAI. You use your own API key, there is no credit system and no cap.
Existing media can be processed in bulk. -
How is this different from ShortPixel and Imagify?
-
ShortPixel and Imagify process images in their cloud and require an account with a credit
quota. IMG Performer runs locally on your server, with no account and no limit for conversion.
It also labels AI-generated images for EU AI Act Art. 50 – something neither of them does.
Contributors & Developers
“Enfants Img Performer” is open source software. The following people have contributed to this plugin.
Contributors“Enfants Img Performer” has been translated into 1 locale. Thank you to the translators for their contributions.
Translate “Enfants Img Performer” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.3.9
- Fixed: The Media Library list view status chip displayed “AI generated” for images actually classified as “AI modified” – the two statuses were grouped under one label. They are now shown distinctly, matching the dropdown options.
0.3.8
- Improved: readme.txt tags reordered to prioritize EU AI Act compliance discoverability (eu-ai-act, article-50, ai-labeling, ai-transparency, compliance now lead; format/optimization tags moved down)
0.3.7
- Improved: readme.txt rewritten for better AI/GEO visibility – tags, short description and first paragraph now focus on EU AI Act labeling and local processing; five new FAQ entries added
- Improved: Store screenshots refreshed (23 total, including a new PRO AI Alt Text Generator example)
0.3.6
- New: Change the AI labeling status directly in the Media Library list view – click the label for a dropdown that saves instantly, or use the new bulk action to update several images at once
- New: “Optimize All Images” is now also available on the “File Optimization” tab and the Dashboard, not just hidden on the “Alt Text” tab
- Fix: AI-generated image alt text suffix (PRO) didn’t match the EU AI Act format recommendation – square brackets and the Art. 50 citation offered no screen reader benefit per WCAG/WebAIM review. New format: “… (AI-generated).” / “… (AI-edited).”
- Fix: The “not classified retroactively” notice on the AI Labeling tab contradicted the PRO retroactive bulk scan directly below it – now only shown without an active PRO license
- Fix: Savings notice in the attachment edit dialog didn’t span the full width in the Media Library sidebar
0.3.5
- Fix: Re-uploading an image already labeled by this plugin wasn’t recognized as such, because the classifier only looked for third-party C2PA manifests, not its own XMP marker – affected WebP thumbnails in particular (the default conversion target), which had no read support at all. JPEG APP1, PNG iTXt and WebP XMP-RIFF containers are now checked in addition to C2PA (AVIF too, for PRO)
- Fix: AI-labeling area in the media modal only used about 65% of the sidebar width and its buttons wrapped unevenly on narrow windows; title and buttons repositioned/redistributed
0.3.4
- Fix: AI-labeling XMP/IPTC marker (DigitalSourceType) was completely lost when converting to the AVIF sidecar (PRO) – affected the original and every thumbnail size. WebP was not affected.
0.3.3
- Fix: AI label wasn’t detected on themes that render images manually without WordPress’s own wp-image-{ID} class (e.g. custom Blade/Tailwind templates) – detection now also matches by image URL, with fallbacks for resized filenames, for files renamed by the plugin’s own WebP conversion, for WebP size variants generated independently by WordPress core, and for WordPress’s own “-scaled” suffix on auto-downscaled originals
- Fix: Badge appeared below the image instead of on top of it on themes that set a vertical margin on images (e.g. Tailwind Typography)
- Fix: Labeled images rendered narrower than unlabeled ones when image width was set via a CSS class (e.g. Tailwind’s w-full) instead of inline style
0.3.2
- Fix: AI-labeling badge broke the Gutenberg Gallery block’s “Crop images to fit” option and images with a fixed height (e.g. Featured Images using object-fit: cover) – images fell back to their natural aspect ratio instead of cropping
- Fix: Small gap below labeled images caused by a missing vertical-align on the badge wrapper
- Fix: Dashboard “Review markings” button now links directly to the filtered Media Library view instead of the settings tab
- Fix: “WebP quality” label corrected to “Quality”, since the setting also applies to AVIF (PRO)
0.3.1
- Fix: Long filenames no longer break the History table layout (AI Labeling and File Optimization tabs) – truncated with an ellipsis, full name shown on hover
- Fix: AI-labeling badge position was incorrect on images rendered without the theme’s own display:block reset (e.g. ACF image fields) – now positioned consistently everywhere
0.3.0
- New: AI image labeling for EU AI Act Art. 50 compliance – detects AI-generated images on upload and writes hosting-independent labeling into every generated image size
- New: Visible “AI-generated” frontend badge, toggleable
- New: Manual correction control in the Media Library attachment details
- New: “Needs review” filter and status columns (AI Labeling, Alt-Text) in the Media Library list view
- New: Searchable, paginated history in Settings AI Labeling
- Applies to new uploads only – existing media library images are not scanned or changed retroactively
0.2.2
- Renamed internal prefix from IMP to EIMP (4+ characters) to comply with WordPress.org plugin review guidelines
0.2.0
- PRO: Bulk Converter – converts entire media library to WebP/AVIF including all thumbnail sizes
- PRO: Background Queue via WP-Cron for batch processing without PHP timeout risk
- PRO: AI Alt Text Generator – generates alt text, caption and description on upload (Mistral, Claude, OpenAI)
- PRO: Bulk AI queue fills missing alt texts, captions and descriptions for all existing images
- Fixed: Bulk conversion now correctly creates WebP and AVIF for all registered image sizes
0.1.0
- Initial release
- WebP conversion on upload via GD (Imagick fallback)
- AVIF conversion (PRO) with automatic best-format selection by file size
- Replacement of src, srcset, href and data-* attributes in frontend
- Configurable quality setting
- CO₂ savings tracker with animated tree visualization
- Optional anonymous global statistics (opt-in)
- Activity log in admin
