This project is not covered by Drupal’s security advisory policy.
Introduction
AI Content Disclosure enables the consistent tracking and labeling of AI-generated and AI-modified content in Drupal.
The module provides a reusable disclosure field for this purpose that can be applied to any fieldable entity - for example, nodes, media, paragraphs, or custom content entities.
Editors can choose whether a piece of content:
- was created without the use of relevant generative AI,
- was significantly modified using generative AI,
- or was generated entirely or in significant parts using generative AI.
There is intentionally no preselection. Existing content remains unchecked until it is actively classified.
Uniform AI Classification
The module uses three deliberately simple states:
- No generative AI
- AI-modified
- AI-generated
Legacy content remains unclassified internally and is not automatically treated as “created without AI.”
This prevents Drupal from making statements about older content that has never been reviewed.
Accessible Labeling in the Front End
Visible disclosure badges can be displayed for AI-generated and AI-modified content.
The module supports two display options:
- EU Official Badge
- Custom Accessible Disclosure
This allows site operators to either use the official EU badges or implement their own accessible display that matches their site’s design.
For the custom version, clear text such as: AI-generated or AI-modified can be used. Additional explanations can be provided via an accessible tooltip or popover.
Flexible Positioning
The badge can be positioned as follows:
- top left
- top right
- bottom left
- bottom right
The settings for regular content and images can be selected independently of one another.
Image Labeling
For images, the module deliberately distinguishes between the original file, public derivatives, and backend previews.
- Original file: remains unchanged.
- Public image derivatives: can be marked with a visible AI label.
- Backend preview: can only display a UI overlay.
This preserves the original uploaded image while allowing publicly used variants to be transparently labeled.
Selection of Specific Image Styles
Not every thumbnail or internal preview needs to be labeled. Administrators can therefore selectively choose which Drupal Image Styles should have the visible label embedded.
For example:
- large article image: enabled
- social media derivative: enabled
- Open Graph image: enabled
- Media Library thumbnail: disabled
- small thumbnail: disabled
By default, no existing Image Style is automatically modified.
Size-Dependent Image Labeling
The label is not first applied to the large original and then resized accordingly.
Instead, the final image derivative is generated first, and then the size of the label is calculated to match the final image dimensions.
This ensures that the label remains proportional and legible for both large images and smaller derivatives.
Structured Metadata
In addition to the visible label, the module also supports machine-readable information.
For AI-generated content, for example, Schema.org: TrainedAlgorithmicMediaDigitalSource can be used.
For AI-modified content: CompositeWithTrainedAlgorithmicMediaDigitalSource
This allows search engines, content management systems, and other automated systems to evaluate the stored classification.
Optional Provenance Integrations
The base module functions completely independently.
Additional Drupal projects can be optionally integrated.
For example:
C2PA Sign - for cryptographically verifiable content credentials and provenance.
Media Image Metadata: for evaluating IPTC, EXIF, and XMP metadata.
These integrations are intentionally not hard dependencies.
No Automatic AI Detection
AI Content Disclosure does not attempt to guess whether content was created by AI.
The module:
- does not use an external AI detector,
- does not send content to external AI services,
- does not require an LLM,
- does not require an API key,
- does not require a connection to OpenAI or any other provider.
The classification is a deliberate editorial determination.
EU AI Act
AI Content Disclosure was developed, among other things, in light of the transparency requirements of the EU Artificial Intelligence Act – Regulation (EU) 2024/1689.
The transparency obligations under Article 50 have been in effect since August 2, 2026. They pertain, among other things, to certain AI-generated or manipulated content, as well as requirements for its labeling and disclosure.
Article 50, Paragraph 2
Article 50, Paragraph 2 applies to providers of AI systems that generate synthetic audio, image, video, or text content.
Such systems must label their outputs in a machine-readable format and identify them as artificially generated or manipulated, to the extent that this is technically feasible.
AI Content Disclosure does not replace this obligation for AI system providers, but it can transparently and systematically map the subsequent publication of such content in Drupal.
Project information
- Project categories: Artificial Intelligence (AI)
- Ecosystem: AI (Artificial Intelligence)
- Created by zcht on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.
