WordPress.org

Plugin Directory

TransparAI: EU AI Act Compliance, AI Disclosure & AI Image Detection

TransparAI: EU AI Act Compliance, AI Disclosure & AI Image Detection

Beschrijving

TransparAI is the EU AI Act compliance plugin for WordPress that covers AI transparency and AI disclosure end to end: it detects AI-generated images in your media library, labels them with a visible AI badge, writes the machine-readable AI disclosure (the IPTC digital source type) into the image files, adds the note on AI-written text and the notice in front of a chatbot, and shows you where you stand with a readiness score, a self-assessment, an inventory of the AI systems on your site and a compliance report. Detection, labeling, structured data for SEO, audit trail, REST API and WP-CLI, all on your own server, without a single external request.

Voor wie deze plugin is

Uitgevers en bloggers die AI-afbeeldingen of AI-ondersteunde tekst gebruiken. WooCommerce-winkels met AI-productafbeeldingen of -beschrijvingen. Sites met een AI-chatbot. Bureaus die veel klantsites beheren en per site een gedocumenteerde, exporteerbare en scriptbare status nodig hebben. Iedereen die de vraag “waar gebruiken we AI op deze site” moet beantwoorden voor het management, een klant of een jurist.

Behandelde artikelen van de EU AI Act

Artikel 50, de transparantieverplichtingen, geldt vanaf 2 augustus 2026: bezoekers moeten worden geïnformeerd wanneer ze met een AI-systeem praten (50(1)), AI-gegenereerde content moet een machineleesbare markering dragen (50(2)), en deepfakes en AI-geschreven tekst over onderwerpen van algemeen belang moeten worden vermeld (50(4)). Welk lid op jou van toepassing is, hangt ervan af of je het AI-systeem aanbiedt of gebruikt; de plugin dekt de technische kant van al deze leden. Artikel 4, AI-geletterdheid, geldt sinds 2 februari 2025: aanbieders en gebruiksverantwoordelijken nemen maatregelen zodat de mensen die met AI-systemen werken over voldoende AI-geletterdheid beschikken, en de checklist van de plugin legt vast wat je organisatie heeft gedaan. Het dashboard toont de volledige tijdlijn met de data zoals vastgesteld in Verordening (EU) 2024/1689.

Gereedheidsscore, zelfbeoordeling en nalevingsrapport

Het TransparAI-dashboard beoordeelt je nalevingsgereedheid van 0 tot 100 met een stoplicht: elke controle staat voor een beslissing of een artefact dat de plugin zelf kan verifiëren, zoals een AI-niveau op je AI-geschreven berichten, een afgewerkte beoordelingswachtrij, een beantwoorde chatbotvraag en een geïnventariseerde lijst van AI-systemen. Een zelfbeoordeling met zes vragen (chatbot, AI-tekst, AI-afbeeldingen, personalisatie, vertaling, synthetische media) noemt de verplichtingen die waarschijnlijk van toepassing zijn en de pagina die elk daarvan afhandelt. De checklist voor artikel 4 telt mee in de score. Twee widgets op het WordPress-dashboard houden de score met zijn open controles en de kerncijfers in beeld. De score is een technische zelfcontrole van de pluginstatus en je eigen antwoorden, geen juridische beoordeling.

Inventaris van AI-systemen: welke AI-plugins draaien op je site

Een lijst met bekende AI-tools wordt met de plugin meegeleverd en op je server vergeleken met je geïnstalleerde plugins, er wordt niets opgehaald. Chatbots waarin een AI antwoordt zijn inbegrepen, plugins die de lijst niet kent worden voorgesteld op basis van hun eigen beschrijving, en al het andere (een externe dienst, een script dat je thema aanroept) kan handmatig worden opgegeven. Voor elk systeem bepaal je of bezoekers erover worden geïnformeerd; de vermelding verschijnt als regel onderaan de pagina, als kleine badge of als wegklikbare banner en kan ook via blok of shortcode worden geplaatst.

Automatische AI afbeelding detectie

Most AI image generators leave traces in their files, and TransparAI reads all of the common ones: C2PA manifests (Content Credentials) from OpenAI (ChatGPT, DALL-E, GPT-Image), Adobe Firefly, Google Gemini including Nano Banana, and Bing Image Creator; the IPTC digital source type in XMP as written by Midjourney and a growing number of tools; generation parameters in PNG chunks from Stable Diffusion (AUTOMATIC1111), ComfyUI, NovelAI and InvokeAI; EXIF and XMP signatures of Flux, Leonardo.Ai, Ideogram, Recraft, Seedream and Photoshop Generative Fill; JPEG comment markers, C2PA in MP4 video, AI declarations in MP3 audio and Content Credentials embedded in plain text files.

Detection parses the real file containers (JPEG segments, PNG chunks, RIFF, MP4 boxes, ID3 frames) and matches only inside metadata blocks, never with a blind text search over raw bytes, and never with guesses from image dimensions, file size or file names. Cameras from Leica, Sony and Nikon embed Content Credentials into real photos too, so a C2PA manifest alone never auto-labels anything here. Content Credentials are verified the way a C2PA validator does it, on your own server: the manifest signature, the hashes of every part of the manifest, the data hash over the file bytes, the certificate chain against the bundled C2PA trust list and an RFC 3161 time stamp. A manifest that was copied, edited after signing or forged does not label automatically but lands in the review queue, and the signer, the claim generator and the time stamp are shown with the file. Findings carry a confidence level: explicit AI declarations are labeled automatically, strong but informal signals land in a review queue where you confirm or dismiss them, single or in bulk, right in the media library. New uploads are checked on arrival, the existing library in a batched, pausable scan. Media generated by AI plugins on your own site (AI Engine, AI Power, Elementor AI, Divi AI, WordPress AI) is labeled at the source.

Het zichtbare AI-label

Een configureerbare AI badge markeert gelabelde media in de front-end: overlay of bijschriftregel, vier posities, drie formaten, donker, licht, outline, alleen icoon of de officiële EU iconen die de Europese Commissie in juni 2026 heeft gepubliceerd met haar Code of Practice (Volledig door AI gegenereerd, Gedeeltelijk door AI aangepast of het basis AI icoon, in zwart of wit), je eigen achtergrond en tekstkleur met een opacity naar keuze, optionele generatornaam, alt-text notitie voor schermlezers en startdatum zodat oudere content niet met terugwerkende kracht een badge krijgt. Het wordt server-side gerenderd, dus het blijft werken bij pagina caching, en het werkt met de blok-editor, de klassieke editor, uitgelichte afbeeldingen, template afbeeldingen, widgets, Elementor gratis en Pro inclusief Theme Builder, WPBakery Page Builder, Bricks Builder, Divi en WooCommerce, waar de badge variatie wissels volgt en opnieuw verschijnt in de zoom en lightbox. Een controle kijkt naar de echte paint order en verplaatst een badge die door een thema overlay wordt bedekt naar een vrije hoek of onder de afbeelding. Overrides per afbeelding en CSS utility classes geven thema bouwers volledige controle, markup die een thema zelf rendert gaat via de transparai_label_media filter, en een optioneel script labelt ook afbeeldingen die zonder een bijlage ID en CSS achtergronden worden getoond. Pagina cache plugins krijgen de instructie om te verversen wanneer een label wijzigt.

Machineleesbare AI-labeling, gestructureerde data en SEO

For labeled files TransparAI writes the IPTC digital source type (trainedAlgorithmicMedia, or compositeWithTrainedAlgorithmicMedia for AI-edited media) as XMP into JPEG, PNG, WebP and AVIF, every size variant included. Google documents this field and can show an “AI-generated” label in Google Image Search, so the disclosure travels with the image wherever it is indexed. Each page additionally carries Schema.org JSON-LD structured data (ImageObject, VideoObject, AudioObject and an Article node for AI-written posts) with digitalSourceType both as the Schema.org enumeration and as the IPTC vocabulary URI, so search engines and AI crawlers get the declaration without opening a file. All of it is server-rendered with no extra request and no layout shift, so the SEO signals arrive without a Core Web Vitals cost. The same declarations serve GEO (generative engine optimization): AI search and answer engines such as Google AI Overviews, ChatGPT search and Perplexity weigh structured data and provenance signals when they decide what to cite. Existing metadata is merged, not replaced; unlabeling removes exactly what the plugin wrote; writes are atomic and validated. Because image optimizers and thumbnail regeneration strip metadata, every labeled file is fingerprinted and an hourly sweep restores missing declarations.

Camerafoto’s en menselijk werk

Not every declaration says “AI”. Any media file can be declared as a camera photo (digitalCapture) or as human digital work (digitalCreation), from the attachment details, in bulk, or with WP-CLI. The declaration ends any AI label or pending detection, appears in the structured data, and is written into the file, but only where no other digital source type exists: a camera’s own declaration stays untouched. A “Human made” badge is optional and off by default.

AI-geschreven tekst: vermeldingsniveaus per bericht

Every post, page and public custom post type carries an AI level for its text: no AI used, AI-assisted, AI-generated, or AI-generated and reviewed by a person. Set it in the block editor sidebar, the classic meta box, Quick Edit or Bulk Edit; the post list gets a sortable column and a filter, the AI Content screen sums it up per post type. AI levels show a configurable note ahead of the content, after it or on both sides, as a block, an inline note, a dismissible banner, a badge or a button that opens a dialog, plus an optional AI badge behind the post title. Five blocks (AI Notice, AI Image Label, AI Systems Notice, AI Systems List, Chatbot AI Notice) and the [transparai_notice] shortcode place every notice by hand; “only where a block or shortcode is placed” switches the automatic output off. Reviewed texts record the reviewer, the date and a fingerprint of the content, so a later edit shows as “changed since review”. The note can go into excerpts and RSS feed items, including a dc:description element and an optional [AI] prefix on feed titles.

Chatbotvermelding

Chatbottransparantie is de plicht uit artikel 50 die elke bezoeker als eerste opvalt: mensen moeten weten wanneer ze met een AI-systeem praten. TransparAI zet die melding in het eerste bericht van de bot bij AI Engine, naast de chatknop bij elke andere widget, of als regel onderaan elke pagina. Je antwoord bepaalt of die verschijnt en wie er in de chat antwoordt; de plugin herkent lokaal meer dan 40 chat- en chatbotleveranciers (plugins, themasnippets, geregistreerde scripts, je eigen browser als beheerder) en vertelt je wat hij heeft gevonden, maar schakelt de melding nooit in op basis van een bevinding alleen, omdat een livechat met een mens erachter geen AI-systeem is.

Audittrail, nalevingsrapport, REST API, WP-CLI

Every label, review decision, declaration and repair is recorded per file with time, previous state, trigger and the editor’s name, plus a site log of settings changes, scans, sweeps, bulk actions and declarations that the dashboard shows as recent activity. Export the whole library as a CSV audit list or as the complete JSON record, or open the compliance report: a print view with the readiness score, the assessment answers, the Article 4 checklist, the AI systems in use, the state of every disclosure notice, the AI-written content, the media audit list and the recent activity, sealed with a document hash over the facts, the guidance basis and the stated limitations, ready for print-to-PDF. A REST API under transparai/v1 exposes rows, per-file detail, every action and the same report for headless setups and agency tooling; nothing in it is public. WP-CLI covers scanning, labeling, declaring, auditing, the score, the assessment, the AI systems inventory, the AI levels of posts and the report. Other plugins can label media through an action, detection rules and the AI systems list are extensible via filters, WPML and Polylang are configured, and uninstalling cleans up across a multisite network on request.

Privacy by design

The plugin runs entirely on your server: no accounts, no telemetry, no external requests, and the list of AI tools ships with the plugin instead of being fetched. The only HTTP request it can make is the optional delivery check, which asks your own site for one image to see whether your CDN strips the declaration. The interface ships in 16 languages (English, German in both forms, Austrian German, French, Spanish, Italian, Dutch, Polish, Portuguese, Swedish, Danish, Finnish, Czech, Romanian, Greek and Hungarian), and a suggested paragraph for your privacy policy appears in the WordPress policy guide. Please also read the Disclaimer section.

Contact: TransparAI@cms-admins.de

Voor ontwikkelaars

Alles hieronder is een stabiel API-oppervlak; hooks en opties gebruiken het voorvoegsel transparai_, metasleutels _transparai_. Elke structuur en elk voorbeeld staat in de GitHub-README: https://github.com/cmsadmins/TransparAI

Meta: bijlagesleutels _transparai_ai, _transparai_type, _transparai_source, _transparai_generator, _transparai_confidence, _transparai_detected, _transparai_human, _transparai_badge_pos, _transparai_history, _transparai_delivery, _transparai_c2pa (beschikbaar via REST, upload_files); berichtsleutels _transparai_content_ai, _transparai_content_responsible, _transparai_content_review (edit_post). Opties: transparai_settings, transparai_compliance, transparai_systems, transparai_log.

Hooks: do_action( 'transparai_mark_ai', $id, 'My Generator' ) labelt media vanuit je eigen code, echo apply_filters( 'transparai_label_media', $html ) voorziet de AI-afbeeldingen in markup die je thema rendert van een badge; filters transparai_signatures, transparai_detection_result, transparai_badge_html, transparai_badge_wrap_classes, transparai_notice_text, transparai_notice_html, transparai_chatbot_vendors, transparai_chatbot_notice, transparai_systems_registry, transparai_systems_notice, transparai_c2pa_trust_anchors, transparai_c2pa_tsa_anchors.

Shortcode and blocks: [transparai_notice type="content|media|systems|chatbot" style="block|inline|banner|badge|modal" text="" id=""] and the five blocks (AI Notice, AI Image Label, AI Systems Notice, AI Systems List, Chatbot AI Notice) render only what is declared. REST (/wp-json/transparai/v1/, authenticated): GET /media, GET|POST /media/{id}, POST /media/{id}/scan, GET /report with document_hash, compliance and log. WP-CLI (wp transparai): scan, flag, unflag, human, status, score, content, assessment, systems, systems-declare, systems-undeclare, systems-visible, report, write-meta, verify-meta, verify-delivery. Theme control: container classes trai-badge-top-left to trai-badge-hidden and trai-badge-manual, stacking via --trai-badge-z, colours via --trai-badge-bg, --trai-badge-fg and --trai-badge-opacity.

Externe diensten

None. The plugin makes no request to any external service and never sends media or site data anywhere. The list of AI tools it matches installed plugins against is a file inside the plugin. The only HTTP request it can make is the optional delivery check, which fetches one image from your own site to see whether a CDN strips the declaration; it is off by default, runs only on click, and stops if the image is served from another host.

Privacy

TransparAI processes media files locally on your server and stores its results in the WordPress database (post meta and a few options). The per-file history records the user ID and display name of whoever labeled, confirmed, declared or dismissed a file (last fifty events), a site log keeps the last 200 administrative events, the self-assessment and the AI literacy checklist keep the name and date of the last save, and a post marked as reviewed stores the reviewer’s name and user ID, which is shown publicly only when you enable it. Everything is removed on uninstall with data removal enabled. The plugin collects, transmits and shares nothing and sets no cookies.

Disclaimer

TransparAI is a technical tool, not legal advice, and is provided “as is” without warranty of any kind, to the extent permitted by law (GNU GPL v2, sections 11 and 12). The author makes no representation that using it makes your site compliant with the EU AI Act, the Digital Services Act or any other law; legal obligations depend on your situation and remain your responsibility as the site operator. The readiness score and the self-assessment reflect your own answers and the checks this plugin can perform; they are not a legal assessment. Detection is based on metadata embedded by generators: stripped files carry no signals, and detected metadata is an indication, not proof. No function is guaranteed to run without error in every environment. You use this plugin at your own risk; to the extent permitted by law, the author accepts no liability for damages arising from its use.

Schermafbeeldingen

Blokken

Deze plugin heeft 5 blokken.

  • AI Systems List A list of the AI systems marked as visible in the TransparAI registry, each with its category. The building block for an AI transparency statement, kept in sync with the registry: a system you add or hide appears or disappears on every page that carries the list.
  • AI Systems Notice One sentence naming the AI systems this site uses, taken from the TransparAI registry: chatbots, recommendations, image generation, translation. For the imprint, the privacy policy or a transparency page. Shows only when at least one system is marked as visible.
  • Chatbot AI Notice Tells visitors that an AI answers in the chat, as Article 50 of the EU AI Act requires, with the wording from the TransparAI settings. Put it on the contact page or next to the chat widget. Stays hidden while the chatbot question is unanswered or no AI answers.
  • AI Image Label The label of one image, video or audio file from the media library: AI-generated, with the generator name when known, or Human made. Place it under a gallery, in a caption or next to a builder image the automatic badge does not reach. Shows only for labeled files.
  • AI Notice Disclosure note for AI-written text, as the EU AI Act asks for: a block, an inline note, a dismissible banner, a badge or a button that opens a dialog, with the wording from the TransparAI settings. Shows only when the post has an AI level.

Installatie

  1. Install the plugin from the WordPress plugin directory (Plugins, Add New, search for “TransparAI”) or upload the ZIP, then activate it. The activation opens the setup assistant: three screens through what your site uses, the look of the visible label (official EU icon included, with a live preview) together with the detection and file options, and the scan of the existing library. Every screen saves on its own and can be changed later; “Not now” hides the assistant until you open it again from the dashboard.
  2. Nieuwe uploads worden vanaf nu automatisch gecontroleerd.
  3. Klik op Nieuwe/ongescande media scannen (op het scherm AI-afbeeldingen of in de setup) om je bestaande bibliotheek in kleine batches door te lopen, op elk moment te pauzeren.
  4. Duidelijke meldingen worden meteen gelabeld; sterke signalen komen in de beoordelen wachtrij terecht. Volg de link Beoordelen wachtrij openen en bevestig of negeer elk item, afzonderlijk of in bulk. Een camerafoto met Content Credentials verschijnt hier bewust; negeer die één keer en die blijft genegeerd. Media waar je zelf al over hebt beslist, wordt als overgeslagen gemeld in de scansamenvatting en wordt nooit genegeerd.
  5. Open TransparAI, Dashboard voor de gereedheidsscore: beantwoord de zes vragen van de zelfbeoordeling, vink de checklist voor artikel 4 aan, bekijk het scherm AI-systemen en bepaal over welke systemen bezoekers worden geïnformeerd.
  6. Pas de badge aan onder Instellingen, Zichtbare badge, en als je thema afbeeldingen zonder bijlage-ID uitvoert (ACF-URL-velden, sliders) of CSS-achtergronden gebruikt, schakel je daar de extra optie in.
  7. Single image sitting awkwardly? Open its attachment details and pick a Badge position there: another corner, a caption line below the image, or no visible badge for that one image.

Everything else runs on its own: labeled files get the IPTC digital source type written into the file (verify with exiftool -XMP-iptcExt:DigitalSourceType image.jpg), and the hourly sweep restores metadata that optimizers strip.

FAQ

Kan de plugin elke AI-afbeelding detecteren?

No, and no plugin can. Detection relies on metadata that generators embed. Images whose metadata was stripped (social media re-uploads, screenshots, clipboard pastes) carry no signals. Invisible pixel watermarks such as Google SynthID can only be verified by the vendor’s own service; TransparAI does not pretend otherwise. Detected metadata is an indication, not cryptographic proof. That is exactly why the review queue exists.

Welke AI afbeelding generators worden herkend?

Alles wat een standaardmarkering in het bestand achterlaat. In de praktijk zijn dat ChatGPT en DALL-E, GPT-Image, Google Gemini inclusief Nano Banana-output, Adobe Firefly en Photoshop Generative Fill, Bing Image Creator, Midjourney, Stable Diffusion (AUTOMATIC1111, ComfyUI, InvokeAI, SwarmUI, Fooocus), NovelAI, Flux van Black Forest Labs, Leonardo.Ai, Ideogram, Recraft en Seedream, plus elke tool die een C2PA-manifest of het IPTC digital source type schrijft, en dat is de richting waarin de hele branche beweegt. Nieuwe handtekeningen kunnen met een filter worden toegevoegd, zonder codefork. TransparAI is een onafhankelijke plugin en is niet verbonden aan een van deze leveranciers, noch aan de makers van de plugins in zijn lijst met AI-systemen.

Moet ik elke AI-afbeelding op mijn site markeren?

Usually not, and the plugin does not pretend otherwise. As a site operator you are a deployer under the EU AI Act. Article 50(4) asks deployers to disclose deepfakes: AI-generated or AI-manipulated images that look like real people, places, objects or events and could pass for genuine, which includes realistic product shots and stock-style photos. An obvious illustration, a cartoon or a clearly artistic image is not a deepfake, and content published before 2 August 2026 is not covered retroactively. The machine-readable marking that Article 50(2) requires is the duty of the provider of the generator; the plugin writes it into your files so it is not lost on your site, and the review queue shows three questions that help you decide about the visible label. None of this is legal advice.

Welke termijnen gelden er?

Artikel 50 is van toepassing sinds 2 augustus 2026. De Commissie publiceerde de definitieve gedragscode over transparantie van door AI gegenereerde content samen met de EU iconen op 10 juni 2026 en de richtlijnen over artikel 50 op 20 juli 2026. De Digital Omnibus, die van kracht is sinds 27 juli 2026, geeft aanbieders van generatoren die al tot 2 december 2026 op de markt waren de tijd om de machineleesbare markering toe te voegen; voor de zichtbare openbaarmaking door exploitanten geldt geen dergelijke overgangsperiode.

Does the plugin use the official EU icons?

Yes, as a badge style. The icons are the ones the European Commission published on 10 June 2026 (Fully AI-generated, Partially AI-modified and the basic AI icon, each in black and white), bundled unchanged. The Commission allows anyone to use them free of charge and without attribution. Using the icons is optional, it does not make your site a signatory of the Code of Practice, and neither the icons nor the plugin certify compliance.

Verifieert de plugin content referenties?

Yes, on your own server and without any request to an outside service. For every file with a C2PA manifest the plugin checks the signature of the manifest (ES256, ES384, ES512, PS256, PS384, PS512 and Ed25519), the hashes of every assertion it references, whether its data hash still covers the file bytes, whether the signing certificate may sign Content Credentials and whether its chain ends at an authority on the C2PA trust list, which ships with the plugin. An RFC 3161 time stamp is checked too and fixes the moment of signing. The result reads “valid, on the C2PA trust list”, “valid, signer not listed” or “invalid” with the reason, shown with the signer, the claim generator and the time stamp. A manifest that fails goes to the review queue instead of labeling automatically. Certificate revocation (OCSP) is not checked, and you can add your own trust anchors through a filter.

Why do my thumbnails lose the Content Credentials?

WordPress re-encodes every size variant it generates, and that drops the C2PA manifest of the original; the same happens in image optimizers. The attachment panel and wp transparai verify-meta name how many files of an attachment lack the manifest. The IPTC digital source type this plugin writes is not affected: it goes into every size and is restored after optimizers strip it.

Maakt de plugin mijn site conform met de EU AI Act?

It gives you the technical building blocks Article 50 asks for (a visible disclosure and a machine-readable marking) and documents your decisions, but whether and how the EU AI Act or any other law applies to your site, and whether your specific setup satisfies it, is a legal question only you (or your lawyer) can answer. The readiness score is a self-check, not a verdict. See the Disclaimer section.

Wat betekent de gereedheidsscore?

It is the share of checks that are done, each check being something the plugin can verify in its own state: AI-written posts carry a level (or you declared that none exist), labeled media exist and nothing waits in the review queue, the chatbot question is answered, the AI systems are inventoried with a visibility decision, and the self-assessment and Article 4 checklist are complete. 100 means every technical building block is in place and documented. It does not mean your site is compliant; the Disclaimer applies.

Hoe werkt de zelfbeoordeling?

Zes ja-of-nee-vragen over hoe je site AI gebruikt: chatbot, AI-geschreven tekst, AI-afbeeldingen, personalisatie, vertaling en synthetische media. De antwoorden geven de verplichtingen weer die waarschijnlijk van toepassing zijn, met het artikel van de EU AI Act en de pluginpagina die elke verplichting afhandelt. Antwoorden worden op je site opgeslagen met de naam van de persoon die ze heeft bewaard, zijn op elk moment te bewerken en verschijnen in het nalevingsrapport.

Wat is de checklist voor AI-geletterdheid van artikel 4?

Artikel 4 vraagt aanbieders en inzetters om maatregelen, voor zover ze kunnen, voor een voldoende niveau van AI geletterdheid van de mensen die AI systemen namens hen bedienen of gebruiken; er wordt geen trainingsformat of certificaat voorgeschreven. De vijf items zijn de maatregelen die meestal als bewijs dienen: personeel weet welke AI-tools in gebruik zijn, een intern beleid is vastgelegd, mensen die met AI tools werken hebben begeleiding gehad, een beoordelingsdatum is ingesteld en er is rekening gehouden met de gebruikscontext en de mensen die erdoor worden geraakt. Vink aan wat van toepassing is; de checklist telt mee voor de gereedheidsscore en wordt afgedrukt in het nalevingsrapport met de naam en datum van de laatste keer opslaan.

How are AI systems detected without external requests?

Een lijst met bekende AI plugins wordt meegeleverd in TransparAI en wordt vergeleken met je geïnstalleerde plugins op je server, op dezelfde manier als de chatbot detectie werkt. De lijst wordt geüpdatet met de plugin, er wordt niets opgehaald en er wordt niets over je site ergens naartoe verzonden. Actieve plugins die de lijst niet kent, worden voorgesteld wanneer hun eigen naam of beschrijving AI noemt, en elk ander systeem kan handmatig worden opgegeven. Ontwikkelaars kunnen de lijst uitbreiden met de transparai_systems_registry filter.

Kan ik een nalevingsrapport exporteren?

Ja. De afdruk weergave omvat de gereedheidsscore, de beoordelingsantwoorden, de artikel 4-checklist, de gedetecteerde en opgegeven AI-systemen, de status van elke openbaarmakingsmelding, de als AI gemarkeerde content, de media auditlijst en de recente activiteit, samen met een documenthash van de feiten, zodat twee rapporten van een ongewijzigde site dezelfde hash hebben. GET /wp-json/transparai/v1/report geeft hetzelfde record terug als JSON, de CSV-export toont de media auditrijen en de JSON-download slaat het volledige record op als bestand.

Is dit juridisch advies?

No. TransparAI is a technical tool, not legal advice, and using it creates no guarantee of compliance with any regulation. See the Disclaimer section.

Wijzigt de plugin mijn afbeeldingsbestanden?

Only when a file is labeled and the metadata option is enabled. The plugin then writes a small XMP block into the JPEG, PNG, WebP or AVIF file and its size variants. The image pixels are untouched. Files are replaced atomically and validated first. Unlabeling removes exactly the metadata this plugin wrote; foreign metadata is never touched.

Waar kan ik zien wat er in een bestand is geschreven?

Open the attachment details and click “Show file metadata”. It lists every file of that attachment with its state (declaration present, missing, or a format that cannot carry one), the digital source type currently declared, the detection evidence in full, the recorded history and the raw XMP packet of the main file. Nothing is written while you look; it is a read of the files as they are on disk right now.

Overleeft de markering mijn CDN?

Niet altijd, en dat is de moeite van het controleren waard. Beeldoptimalisatie aan de edge, waaronder Cloudflare Polish en Jetpack Photon, codeert afbeeldingen opnieuw tijdens het leveren en laat daarbij elk metadatablok vallen. Het bestand op je server blijft perfect, terwijl bezoekers en zoekmachines een kale afbeelding ontvangen, en niets in WordPress laat dat zien. Schakel de leveringscontrole in de instellingen in en druk dan op “Levering controleren” bij een gelabelde afbeelding: de plugin haalt die afbeelding op via je eigen openbare URL en vertelt je of de verklaring is aangekomen. Zo niet, dan zit de oplossing in je CDN-configuratie (metadata behouden, of gelabelde afbeeldingen uitsluiten van hercodering), niet in deze plugin.

Beïnvloedt AI-labeling mijn SEO en GEO?

It gives search engines exactly the signals they document. Google reads the IPTC digital source type that TransparAI writes into the image files and can show an “AI-generated” label in Image Search; the Schema.org JSON-LD in the page carries the same declaration for search engines and AI crawlers that never open the file. Everything is rendered server-side, adds no request and shifts no layout, so there is no Core Web Vitals cost. Whether and how a search engine treats labeled images in ranking is its decision, not something a plugin can promise; what the labeling avoids is the opposite risk, an undisclosed AI image that a platform or a competitor points out later. For GEO, generative engine optimization, the same structured data tells AI search and answer engines where your images and texts come from, which is part of what they weigh when they cite a source.

Detecteert de plugin mijn chatbot?

It recognizes more than 40 chat and chatbot vendors by their plugin directory, their script hosts, their JavaScript globals and their widget markup, entirely locally. The finding shows on the settings page with a hint whether a bot or people usually answer there. You decide whether the notice appears; the plugin never switches it on from a finding alone, because a live chat with a person behind it is not an AI system.

Kan ik ook AI-geschreven tekst labelen?

Ja. Elk bericht en elke pagina heeft een AI-niveau in de zijbalk van de editor (geen AI gebruikt, AI-ondersteund, AI-gegenereerd, AI-gegenereerd en beoordeeld), ook beschikbaar in Snel bewerken en Bulk bewerken van de berichtenlijst. AI-niveaus tonen een configureerbare vermelding vóór of na de content, of aan beide kanten; het blok “AI-vermelding” en de shortcode [transparai_notice] plaatsen die in plaats daarvan handmatig, en uitsluitend zo wanneer de positie op “alleen waar een blok of shortcode is geplaatst” staat. Beoordeelde teksten leggen de beoordelaar, de datum en een vingerafdruk van de content vast, zodat een latere bewerking zichtbaar is als “gewijzigd sinds beoordeling”. Optioneel gaat de vermelding ook in samenvattingen en RSS-feeditems. Er is ook een optionele sitebrede vermelding onderaan pagina’s die gelabelde media bevatten.

Kan ik aanpassen hoe de AI-vermelding eruitziet?

Yes. Under Settings, AI-written text you choose between a block on its own line, an inline note inside the text, a dismissible banner, a small badge and a modal (a button that opens a dialog), and whether it appears ahead of the content, after it, on both sides or only where a block or shortcode is placed. Two further options add a small AI badge to the post title in lists and archives and an [AI] prefix to feed item titles. Dismissing a banner hides it for that page view only; nothing is stored in the visitor’s browser.

Welke blokken voegt de plugin toe?

Vijf, allemaal op de server gerenderd, zodat een tekstwijziging in de instellingen alle geplaatste blokken tegelijk bereikt, en allemaal stil als er niets is opgegeven. “AI-vermelding” plaatst de vermelding van het huidige bericht in een van de vijf stijlen, ook meerdere keren per bericht of in een blokthema-template, waar het de automatische vermelding vervangt. “AI-afbeeldingslabel” toont het label van één bestand uit de mediabibliotheek, AI-gegenereerd met de naam van de generator of Door mensen gemaakt, voor galerijen, bijschriften en builder-afbeeldingen die de automatische badge niet bereikt. “AI-systemenvermelding” is de melding van één zin die de zichtbare AI-systemen noemt, “AI-systemenlijst” dezelfde systemen als lijst met categorieën voor een transparantieverklaring. “Chatbot-AI-vermelding” vertelt bezoekers dat een AI antwoordt in de chat. Elk blok heeft een shortcode-tegenhanger in [transparai_notice].

Waarom is een echte camerafoto in de beoordelingswachtrij geplaatst?

Modern cameras embed C2PA Content Credentials into real photos. A C2PA manifest alone therefore never auto-labels. It lands in the review queue unless the manifest declares an AI source. Dismiss it with one click; dismissed files are not queued again.

Welke paginabouwers en editors worden ondersteund?

The visible badge covers the block editor (every image-bearing block incl. cover, media-text, galleries, inline images in text, video and audio), the classic editor, featured images (post thumbnails), template images, text widgets, Elementor free and Pro (image, galleries, carousels, slides, image box, hotspot, flip box, call to action, posts, Theme Builder), WPBakery Page Builder (single images, galleries, carousels, row and column backgrounds, parallax, grids), Bricks Builder (every element that prints an image tag) and Divi (image, gallery, blurb, slider and fullwidth header modules through the content filter; section, row, column, slide and module background images through the Extras option below). Inside the builders’ own editing screens badges are deliberately not injected, the Divi Visual Builder and Backend Builder included. Markup a theme renders itself can be passed through apply_filters( 'transparai_label_media', $html ). For images a theme prints without an attachment ID (ACF URL or array fields) and for CSS backgrounds enable the option under Extras: a small script matches those images against your labeled files. The machine-readable XMP labeling is independent of any builder and always works.

Kan de badge bij mijn ontwerp passen?

Ja. Onder Instellingen, Zichtbare badge kies je naast de vier weergaven een achtergrondkleur, een tekstkleur en een dekking. Beide kleurvelden zijn standaard leeg, en zolang ze leeg zijn ziet de badge er precies zo uit als altijd; een update verandert dus niets op een site die tevreden is met het neutrale uiterlijk. De tekstkleur tekent ook de rand die de omlijnde weergave en de badge „Door mensen gemaakt“ gebruiken; omlijnd heeft geen eigen vulling, dus daar is een achtergrondkleur niet te zien. Wie de kleuren liever in zijn eigen stylesheet zet, gebruikt de drie CSS-variabelen --trai-badge-bg, --trai-badge-fg en --trai-badge-opacity, die hetzelfde doen en tot één container beperkt kunnen worden.

Maken mijn eigen kleuren de badge moeilijk leesbaar?

The settings tell you before your visitors find out. A traffic light next to the colour fields rates the contrast between the badge text and its fill while you pick, against the WCAG threshold of 4.5 to 1 that applies at the badge’s text size, and it spells the verdict out in words rather than leaving the colour to say it. Because a badge fill is see-through (the dark style is 70 per cent by default) and lands on photos nobody can predict, the rating assumes the worst case: the badge is measured on a white photo and on a black one, and the poorer of the two results is the one you see. A disclosure only works if people can read it, and a light badge colour on white text is the quickest way to lose that.

Mijn thema legt overlays over afbeeldingen; verdwijnt de badge daaronder?

Usually not, and never silently. Badges sit above typical theme layers (hover effects, zoom icons, sale badges), and a small script additionally checks the real paint order: a badge that is still covered is raised, moved to a free corner or, as the last resort, shown as a caption line below the image (this guard can be turned off under Visible badge, Extras). For manual control, give any container one of the utility classes trai-badge-top-left, trai-badge-top-right, trai-badge-bottom-left, trai-badge-bottom-right, trai-badge-below or trai-badge-hidden, or pick a position for a single image in its attachment details (“Badge position”). Both ways switch the guard off for those badges, and trai-badge-manual does the same without changing the position, for the rare case where the guard misjudges your layout. Hiding the visible badge of one image never touches the machine-readable file metadata or the structured data in the page; that part of the disclosure stays intact.

Stuurt de plugin gegevens naar externe servers?

No. There are no external requests of any kind. All detection happens by reading file bytes locally on your server, and the AI systems list is a file inside the plugin.

Verwerkt de plugin persoonsgegevens?

It records who did what inside your own WordPress: the per-file history and the site log store the user ID and display name of whoever labeled, confirmed, declared or dismissed something, the assessment and the checklist store the name and date of the last save, and a post marked as reviewed stores the reviewer’s name, which is shown publicly only when you enable it. Nothing leaves the server, no cookies are set, and everything is removed on uninstall with data removal enabled. See the Privacy section.

Wat gebeurt er als ik de plugin verwijder?

Standaard blijven je labels in de database staan (opnieuw installeren zet ze terug) en blijft metadata die al geschreven is in de bestanden staan. Als je liever een volledige opschoning wilt, schakel dan “Alle plugin data verwijderen” in bij de instellingen voordat je deïnstalleert. Bestanden eerst van labels ontdoen als je ook wilt dat de metadata in de bestanden wordt verwijderd.

Kan ik media programmatisch labelen?

Ja. De metasleutel _transparai_ai is geregistreerd voor de REST API, WP-CLI-commando’s dekken bulkwerk, en andere plugins kunnen do_action( 'transparai_mark_ai', $attachment_id, 'Generator name' ) aanroepen.

Waar kan ik hulp krijgen?

Plaats een bericht in het supportforum hier op wordpress.org, of schrijf naar TransparAI@cms-admins.de. De plugin is gebouwd en wordt onderhouden door Patrick Schlesinger (cms-admins.de).

Beoordelingen

Er zijn geen beoordelingen voor deze plugin.

Bijdragers & ontwikkelaars

“TransparAI: EU AI Act Compliance, AI Disclosure & AI Image Detection” is open source software. De volgende personen hebben bijgedragen aan deze plugin.

Bijdragers

“TransparAI: EU AI Act Compliance, AI Disclosure & AI Image Detection” is vertaald in 5 localen. Dank voor de vertalers voor hun bijdragen.

Vertaal “TransparAI: EU AI Act Compliance, AI Disclosure & AI Image Detection” in je eigen taal.

Interesse in ontwikkeling?

Bekijk de code, haal de SVN repository op, of abonneer je op het ontwikkellog via RSS.

Changelog

1.1.10

  • Content Credentials verification checks every certificate on the chain: each issuer, the trust anchor included, must be an authority allowed to sign certificates and valid at the time of signing. A signing certificate may not issue other certificates or carry time stamping or catch-all usages, and the time stamp authority must be certified for time stamps.
  • Content Credentials in plain text files (.txt) are read and verified like those in images.
  • The audit export is also available as a JSON file with the document hash, next to the CSV.
  • Optional native browser tooltip with the full label on icon-only image overlays (contributed by Kai Spriestersbach).

1.1.9

  • Content Credentials are verified the way a C2PA validator does it, on your own server: the manifest signature (ES256/384/512, PS256/384/512, Ed25519), the assertion hashes, the data hash, the certificate chain against the bundled C2PA trust list and RFC 3161 time stamps. A manifest that fails goes to the review queue; the verdict, the signer and the time stamp are shown with the file.
  • The setup assistant replaces the settings card: three screens for what your site uses, how AI images are labeled (live preview, detection policy, file options) and the library scan. Every screen saves on its own; “Not now” hides it until you open it again.
  • Kleine afbeeldingen met badgegrootte “groot” of “klein” toonden het volledige label naast het korte en de badge werd breder dan de afbeelding; de minivariant wint nu.

1.1.8

  • Achtergronden van Elementor-secties, -containers en -widgets (klassieke achtergrondafbeelding, desktop, tablet of mobiel, overlay inbegrepen) krijgen hun badge op de server. Paginacaches behouden hem, geen JavaScript nodig; de instelling “CSS-achtergronden” schakelt het in zoals voorheen.
  • The badge positioning rules are repeated in a small inline style block, so optimizers that defer, merge or prune the plugin stylesheet no longer push the badge out of the image. Filter transparai_critical_css removes the block.
  • De detectie leest WAV-bestanden (Content Credentials in de C2PA-chunk, IPTC digital source type in de XMP-chunk) en FLAC-bestanden met een voorafgaande ID3-tag, geeft MP3-manifeststores door aan de claimgeneratorregel en accepteert ID3v2.4-frames waarvan iTunes de groottes als gewone gehele getallen schrijft.
  • Bijsnijden en roteren in de blok-editor slaan een nieuwe bijlage op; die neemt nu de labelstatus van het origineel over en krijgt de verklaring meteen in het bestand geschreven.
  • Bestanden die door ShortPixel, Imagify, Smush of EWWW opnieuw zijn gecodeerd, worden direct na het afronden van de optimizer gecontroleerd in plaats van bij de volgende uurlijkse ronde.
  • Media library list: mark, confirm, dismiss, re-check or remove the “not AI” declaration of a single file straight from the AI column; a Gutenberg save no longer fails with rest_cannot_update when the editor sends the content review stamp back. Both contributed by Kai Spriestersbach.

1.1.7

  • Opgelost: thema’s die een hero- of kaartafbeelding de container laten vullen (afmetingen in procenten, object-fit: cover) toonden de afbeelding te klein, met een lege strook ernaast, zodra de afbeelding was gelabeld. Waar de badge-wrapper de grootte van zo’n afbeelding zou veranderen, stapt hij nu uit de lay-out en ziet de afbeelding er precies zo uit als zonder de plugin.
  • Fixed: a badge in a corner that the site’s own content covers, such as a call-to-action box laid over a hero image, was lifted on top of that content. It now moves to a free corner first and is only raised when every corner is covered. Panels drawn with pseudo elements and images that ignore the mouse count too.
  • De overlapcontrole wordt opnieuw uitgevoerd nadat inschuifanimaties (AOS, entree-effecten) zijn afgelopen, zodat ze de definitieve lay-out beoordeelt.

1.1.6

  • Content Credentials worden volledig uitgelezen: de plugin doorloopt het C2PA-manifest, controleert of de datahash nog de bytes van het bestand dekt, en toont de ondertekenaar, de claimgenerator en het tijdstip van de actie in het bijlagepaneel, de medialijst, de REST API en WP-CLI, met de vermelding “volgens het manifest, niet geverifieerd”. Een manifest dat niet bij het bestand past (gekopieerd, of de afbeelding is na het ondertekenen bewerkt), gaat naar de beoordelingswachtrij in plaats van automatisch een markering te krijgen. De controle geeft hetzelfde resultaat voordat en nadat de plugin zijn eigen declaratie in een bestand schrijft.
  • Het bijlagepaneel toont hoeveel formaatvarianten de Content Credentials van het origineel kwijt zijn, en geeft aan welke bijlagen bestanden hebben die sinds de laatste detectiescan zijn gewijzigd.
  • New badge style with the official EU icons the European Commission published on 10 June 2026: Fully AI-generated or Partially AI-modified by label type, or the basic AI icon, in black or white. The icons are bundled unchanged; the colour fields do not apply to them, the opacity does.
  • De AI-kolom in de medialijst is sorteerbaar, zonder ongemarkeerde bestanden te verbergen.
  • Een voorgestelde alinea voor de privacyverklaring verschijnt in de privacyhandleiding van WordPress.
  • Multisite: netwerkactivering en nieuw aangemaakte sites plannen de herstelronde in; bij het verwijderen van de plugin worden ook netwerken met meer dan 100 sites opgeschoond.
  • De beoordelingswachtrij toont een wegklikbare notitie met de drie vragen die bepalen of een gedetecteerde afbeelding een zichtbare markering nodig heeft.
  • De readme beantwoordt nu welke afbeeldingen überhaupt een markering nodig hebben en welke termijnen gelden, en noemt alle 16 meegeleverde talen.

1.1.5

  • Ondersteuning voor Divi. De modules afbeelding, galerij, blurb, slider en fullwidth header kregen de badge al via het contentfilter; nu krijgen ook achtergrondafbeeldingen van secties, rijen, kolommen, slides en modules hem, via het optionele script onder Extra’s. Divi bewaart die achtergronden in een gegenereerd stylesheet, daarom hadden ze een eigen aanpak nodig.
  • Geen badges in de Divi Visual Builder, de Backend Builder of een modulevoorbeeld. Dezelfde regel gold al voor de editors van Elementor en WPBakery.
  • Afbeeldingen die met Divi AI zijn gegenereerd, worden bij de bron gemarkeerd, net als die van AI Engine, AI Power, Elementor AI en WordPress AI.
  • Fixed: on a Divi page the badge could change the spacing of a module, because it was added as the last element of its container and Divi removes the trailing margin of the last element. It is added as the first element now, which is invisible either way since the badge is positioned.
  • Opgelost: een achtergrond afbeelding kon twee keer van een badge worden voorzien wanneer een sectie, een rij en een kolom genest waren en de buitenste en binnenste hetzelfde bestand toonden. Dit beïnvloedde elke pagina bouwer met die nesting, niet alleen Divi.

1.1.4

  • De zichtbare badge neemt naast de vier bestaande weergaven een eigen achtergrondkleur, tekstkleur en dekking aan. Beide kleurvelden beginnen leeg, en zolang ze leeg zijn ziet de badge er precies zo uit als voorheen; op een site die het neutrale uiterlijk houdt verandert er dus niets.
  • Een contrast waardering naast de kleurvelden beoordeelt je keuze ten opzichte van de WCAG drempel van 4.5 to 1 terwijl je kiest en zegt in woorden of de badge leesbaar blijft, zodat een openbaarmaking nooit in zijn eigen kleur verdwijnt.

1.1.3

  • The first-run setup card no longer repeats the badge and file settings that the tabs below it already own. Its second and third step open the matching section instead, so every option exists once on the screen and only one form writes it.

1.1.2

  • Tien extra talen worden met de plugin meegeleverd: Pools, Portugees, Zweeds, Deens, Fins, Tsjechisch, Roemeens, Grieks, Hongaars en een formele Duitse variant, naast het bestaande Duits, Frans, Spaans, Italiaans en Nederlands.
  • De pluginnaam en de readme zijn in al die talen vertaald, zodat de plugindirectory ze in de eigen taal van de lezer toont.

1.1.1

  • Nalevingsmodule: hoofdmenu “TransparAI” met Dashboard, Zelfbeoordeling, AI-systemen, AI-content, AI-afbeeldingen en Instellingen; gereedheidsscore met stoplicht over vijf controles; zelfbeoordeling met zes vragen en de checklist voor AI-geletterdheid van artikel 4 op hetzelfde scherm; tijdlijn van de EU AI Act; twee WordPress-dashboardwidgets (gereedheid en cijfers); wp transparai score, content, assessment, systems en report.
  • Register van AI systemen: een gebundelde lijst van 130 wordpress.org plugins wordt op je server vergeleken met de geïnstalleerde plugins, chatbots en handmatige verklaringen inbegrepen; zichtbaarheid per systeem voor een bericht voor bezoekers als footer regel, badge of negeerbare banner. Niets wordt opgehaald.
  • Vijf server-gerenderde blokken: AI-vermelding, AI-afbeeldingslabel, AI-systemenvermelding, AI-systemenlijst en Chatbot-AI-vermelding, elk met een eigen block.json; shortcodetype chatbot; nieuwe instelling “alleen waar een blok of shortcode is geplaatst” voor de tekstvermelding en de systemenvermelding.
  • Text note styles block, inline, banner, badge and modal, position “ahead of and after the content”, optional title badge and [AI] feed title prefix; Bricks Builder image badges; filter transparai_label_media for markup a theme renders itself.
  • Rapport, printweergave en GET /report bevatten de nalevingssamenvatting en het sitelogboek; de documenthash dekt alleen de feiten.
  • Settings page under the new menu with tabs; footer notices print as one paragraph; page notice and structured data no longer depend on the visible badge; icon-only and mini badges keep their short label; new defaults for alt text, feed note, chatbot output and systems notice (stored settings are not changed).

1.0.3

  • AI-geschreven tekst: een vermeldingsniveau per bericht (geen AI, AI-ondersteund, AI-gegenereerd, AI-gegenereerd en beoordeeld) in de zijbalk van de blok-editor, de klassieke metabox, Snel bewerken en Bulk bewerken, met een sorteerbare lijstkolom en filter. Beoordeelde teksten leggen beoordelaar, datum en een contentvingerafdruk vast die latere bewerkingen markeert. Nieuw blok “AI-vermelding” en shortcode [transparai_notice]; de vermelding kan in samenvattingen en RSS-feeds worden opgenomen (dc:description).
  • Camerafoto’s en menselijk werk: media kunnen worden opgegeven als digitalCapture of digitalCreation, in de details, in bulk of via wp transparai human; geschreven in bestanden die geen ander digitaal brontype bevatten, getoond in de structured data, optionele badge “Human made”.
  • WooCommerce: de badge volgt variatiewissels, wordt opnieuw aangemaakt in de zoom, de PhotoSwipe-lightbox en de core-lightbox voor afbeeldingen, en blijft buiten WooCommerce-e-mails; HPOS-compatibiliteit aangegeven.
  • REST API transparai/v1 (mediarijen, details per bestand, acties, hercontrole, rapport), alleen geauthenticeerd.
  • Audit trail: vijftig gebeurtenissen per bestand met vorige status, trigger en naam van de editor; site log; CSV export met geschiedenis, BOM en formulebeveiliging; print weergave met document hash, basis voor richtlijnen en beperkingen; gepagineerde exports.
  • First-run setup with three undoable steps; chatbot disclosure with local detection of more than 40 vendors and the notice as first bot message, next to the widget or in the footer.
  • Gestructureerde data: Article-node voor AI-geschreven berichten, stabiele id’s, digitalSourceType als Schema.org-enumeratie en IPTC-URI.

1.0.2

  • Opgelost: de bibliotheekscan stopte op sommige sites na de eerste batch; grote PNG-bestanden met metadata na de beelddata werden als schoon gemeld; afbeeldingen van Bing Image Creator, Microsoft Designer en Copilot werden alleen in de wachtrij gezet in plaats van gelabeld.
  • De bestandsinspectie geeft aan of de bijlage überhaupt is gelabeld.

1.0.1

  • Opgelost: de uurlijkse integriteitscontrole werd niet ingepland op sites die na activering in een multisite-netwerk zijn aangemaakt.
  • Geschiedenis per bestand, CSV-auditexport, bestandsinspectie met het ruwe XMP-pakket, optionele leveringscontrole voor CDN’s die metadata verwijderen, vertalingen voor Duits, Frans, Spaans, Italiaans en Nederlands.

1.0.0

  • Initial release: C2PA, XMP/IPTC, PNG-chunk, EXIF, MP4 and MP3 detection with a camera rule and a review queue; visible badge with overlay guard, per-image override and CSS utility classes; IPTC digital source type written as XMP into JPEG, PNG, WebP and AVIF with auto-repair; Schema.org JSON-LD; page-cache purging; WP-CLI; integrations for AI Engine, AI Power, Elementor AI and WordPress AI; no external requests.