Blog
c2pa-scanner: KI-generierte Bilder auf der eigenen Website aufspüren
Der EU AI Act (Verordnung (EU) 2024/1689) bringt ab dem 2. August 2026 Transparenzpflichten: Artikel 50 verlangt, dass KI-generierte Inhalte als solche gekennzeichnet werden. Wer eine Website mit hunderten oder tausenden Bildern betreibt, steht damit vor einer praktischen Frage: Welche meiner Bilder sind überhaupt KI-generiert?
Genau dafür habe ich c2pa-scanner gebaut: ein Python-Tool mit grafischer Terminal-Oberfläche (Textual), das eine komplette Website über ihre Sitemap crawlt und bei jedem Bild prüft, ob es aus einem KI-Generator stammt.
Wie es funktioniert
Die Erkennung arbeitet mehrschichtig und ist bewusst auf wenige Fehlalarme getrimmt:
- C2PA-Manifest (Primärsignal): Die offizielle
c2pa-Library liest das signierte Manifest, das z.B. Adobe Firefly automatisch einbettet. DerdigitalSourceTypeentscheidet:trainedAlgorithmicMedia= KI-generiert,compositeWithTrainedAlgorithmicMedia= KI-bearbeitet. - XMP/EXIF
digitalSourceType(Sekundärsignal): Derselbe IPTC-Marker wird auch aus XMP gelesen, wenn kein gültiges C2PA vorhanden ist — das fängt Bilder ab, die beim Skalieren ihre Signatur verloren, das XMP aber behalten haben. - Generierendes Tool (Fallback): Fehlt jeder
digitalSourceType, wird derSoftware-/CreatorTool-Tag gegen eine kuratierte Liste eindeutiger KI-Generatoren geprüft (Midjourney, DALL-E, Stable Diffusion, Adobe Firefly, …). Mehrdeutige Editoren wie Photoshop oder GIMP stehen bewusst nicht auf der Liste.
Der Crawler holt alle Seiten aus der Sitemap und extrahiert Bild-URLs per Regex über das rohe HTML — so werden auch Bilder in Web-Component-Attributen und Shadow DOM gefunden, nicht nur klassische <img src>. Ohne direkte Sitemap-URL wird sie automatisch entdeckt (robots.txt, dann übliche Pfade).
# TUI starten (Default ohne Kommando)
c2pa-scanner
c2pa-scanner tui https://www.example.com/sitemap.xml
# Sitemap crawlen und jedes Bild pruefen
c2pa-scanner scan https://www.example.com/sitemap.xml
# Signiertes C2PA-Testbild erzeugen (positive Testfixture)
c2pa-scanner make-testimage ./test-ai.jpg
Ehrlichkeit bei den Grenzen
Der Scan der Herkunftsdaten ist ein Indikator, kein Beweis. Bilder ganz ohne Herkunftsvermerk (kein C2PA, kein XMP/EXIF) lassen sich nicht als KI erkennen — Metadaten können entfernt werden, Screenshots und viele Plattformen strippen sie beim Upload. Ein Treffer ist ein solides Indiz für KI; sein Fehlen ist kein Beleg dagegen. Und: Jedes Resize/Crop bricht die C2PA-Signatur, gescannt werden sollte also möglichst das Original.
Alternativen wie unsichtbare Wasserzeichen (SynthID), ML-Klassifikatoren oder forensische Analysen habe ich bewusst nicht eingebaut — die Gründe stehen ausführlich im README. Das Leitprinzip: lieber wenige solide Signale (eingebettete Herkunftsdaten) als viele unsichere.
Wofür es gedacht ist — und wofür nicht
Das Tool prüft die eigenen Bilder und Seiten, um sie AI-Act-konform zu kennzeichnen. Es ist ausdrücklich nicht dafür gedacht, fremde Websites abzugrasen und Abmahnungen zu produzieren. Es ist keine Rechtsberatung und kein Nachweis eines Verstoßes.
Für eine vollständigere Sitemap als die offizielle lohnt sich übrigens das Schwester-Tool sitemap-tracker — dessen XML-Output lässt sich direkt als lokale Datei laden.
Links: GitHub-Repo · Projektseite · Artikel 50 im Wortlaut