MME AI Image Disclosure Wordpress Plugin - Rating, Reviews, Demo & Download
Plugin Description
Article 50 of the EU AI Act requires visible disclosure when an image is AI-generated or AI-edited. A CSS overlay does not survive a right-click download, a hotlink, an RSS feed or a theme change — so this plugin composites a badge PNG into the image file itself, overwriting the file at its existing path so no URL, link or post content ever changes.
Labelling is always a deliberate, manual action: you select the images, choose the label type and badge corner, and confirm. Nothing is ever labelled automatically, in bulk, or behind your back.
How it works
- Select one or more images in the Media Library and choose the Add AI Label bulk action.
- Pick a label type, a corner, and either auto-contrast or a specific badge variant.
- Each image is queued as its own background job, so a large batch never hits a PHP timeout and one failure cannot block the rest.
- Per image, the plugin copies the original into a protected backup folder, samples the target corner’s brightness to pick the readable badge variant, composites the badge, overwrites the file, regenerates the registered image sizes from the labelled original, appends a disclosure suffix to the alt text, and purges the caches it can reach.
- A results screen shows success or failure per image, with the exact step that failed.
Two kinds of label — image or text
Every label type can either composite a badge PNG, or render its own text label on the server: wording, text and background colour, opacity, corner radius and border, with separate colours for light and dark backgrounds. Text labels need no design work and no image file at all, so you can start disclosing immediately and swap in a designed badge later. They are rendered at high resolution and scaled down onto the image, so they stay crisp, and they get their own scale setting because a wide text strip needs more width than a square seal to stay readable.
Ready-made badges included
The plugin ships with two label types, AI-generated and AI-modified, each with a ready-made badge in a light and a dark version, so you can label images straight after activation. Upload your own PNG for either variant at any time to replace the default.
Re-labelling never stacks badges
Changing a label — different type, different corner, edited text, new badge file — always restores the original from the backup first and applies the new label to those original bytes. The plugin will not composite onto a file it knows is already labelled: if the backup is missing it refuses and says so rather than baking a second badge into the image.
Reversible by design
Restore original copies the untouched backup back over the live file, rebuilds the image sizes and removes the alt-text suffix. Backups are never deleted automatically — not on restore, not on deactivation, not even on uninstall. Only the explicit Delete unused backups tool removes them, and it refuses to touch a backup whose image is still labelled.
Features
- Badge is baked into the image bytes — verifiable by re-downloading the file.
- Filename and URL never change; no database rewriting, no broken links.
- Ships with one ready-to-use label type (AI-generated) and no hardcoded limit — add, rename or delete types freely, each with a light- and a dark-background variant.
- Per type: use an uploaded badge PNG, or a text label the plugin renders itself — no image required.
- Re-labelling always restores the original first, so a second badge can never be stacked onto an already-labelled image.
- Auto-contrast: the target corner’s mean luminance decides which badge variant is used.
- Imagick preferred, GD fallback — works on both kinds of host. JPEG, PNG, GIF and WebP everywhere; AVIF and HEIC where the host supports them.
- Idempotent: re-running the label on an already-labelled image never stacks a second badge.
- Background processing via Action Scheduler when another plugin provides it, WP-Cron otherwise. No bundled library.
- Legibility floor: image sizes too small to carry a readable badge are rebuilt from the unlabelled original instead of showing a smudge.
- Automatic cache purging for WP Rocket, W3 Total Cache, LiteSpeed Cache and SiteGround Optimizer when active; optional Cloudflare purge-by-URL.
- Optional labelled WebP sidecar, served through a
<picture>element. Off by default; the primary file always keeps its own format and MIME type. - Persistent job log with the failed step per image, plus a dashboard widget for backup folder size.
- Own capability (
ai_label_manage), granted to administrators, so an agency can hand labelling to an editor without full admin rights. - Per-site settings and badge registry, so one multisite network can serve many clients.
- WP-CLI:
wp ai-label apply|restore|reapply|status|run-queue.
External services
This plugin does not contact any external service by default.
If — and only if — you enter a Cloudflare zone ID and API token on the settings screen, the plugin calls the Cloudflare cache-purge API (https://api.cloudflare.com/client/v4/zones/{zone}/purge_cache) after an image is labelled or restored, so the CDN stops serving the previous version of that file. The only data sent is the public URLs of the image files that changed, together with your API token for authentication. No personal data and no image content is transmitted. The token is stored encrypted and is never displayed again.
Cloudflare terms of service: https://www.cloudflare.com/terms/
Cloudflare privacy policy: https://www.cloudflare.com/privacypolicy/
Remove the token from the settings screen (type delete into the field) to stop all outgoing requests.
Screenshots
No screenshots provided

