c2pa-scanner
Prüft Website-Sitemaps auf KI-generierte Bilder anhand der C2PA- und EXIF/XMP-Herkunft — eine Hilfe für die KI-Kennzeichnung nach EU AI Act Art. 50, direkt im Terminal.
Mehrstufig und bewusst auf wenige Falsch-Positive ausgelegt.
Primärsignal: die offizielle c2pa-Lib liest das signierte Manifest; die digitalSourceType-Assertion entscheidet das Verdict (trainedAlgorithmicMedia = KI-generiert, compositeWithTrainedAlgorithmicMedia = KI-bearbeitet).
Denselben IPTC-Marker liest das Tool auch aus dem XMP, wenn kein gültiges C2PA vorhanden ist — so werden Bilder erkannt, die ihre Signatur beim Verkleinern verloren, das XMP aber behalten haben.
Fehlt jeder digitalSourceType, wird der Software- / CreatorTool-Tag gegen eine kuratierte Liste eindeutiger Generativ-KI-Tools geprüft (Midjourney, DALL-E, Stable Diffusion, Firefly …). Mehrdeutige Editoren wie Photoshop oder GIMP zählen bewusst NICHT.
Aus einer Sitemap werden alle Seiten geladen und die Bild-URLs per Regex über das rohe HTML extrahiert — das findet auch Bilder in Web-Component-Attributen und declarative Shadow-DOM, nicht nur klassische <img src>.
Fehlt eine direkte Sitemap-URL, wird sie automatisch gesucht (robots.txt, dann übliche Standardpfade). Vollständigere Sitemaps liefert das Schwester-Tool Sitemap-Tracker.
Zuschaltbar: jede Seite wird zusätzlich in einem headless Chromium (Playwright) gerendert, um auch erst per JavaScript ins (Shadow-)DOM geladene Bilder zu finden — als Ergänzung zur Regex-Extraktion (Union).
Rechts neben der Trefferliste eine Bildvorschau (Kitty-Grafik/Sixel mit Half-Block-Fallback), plus klickbarer Link zur Fundseite und ein Dialog mit dem rohen C2PA-Manifest.
Optional: unter dem Bild ein Screenshot der gerenderten Fundseite, zum Bild gescrollt - so prüfst Du ohne Absprung, ob das KI-Label auf/am Bild dargestellt wird. Eigener Playwright-Sidecar mit Cache und Cookie-Consent-Handling.
Rechtsklick-Kontextmenü auf der Tabelle: Export als JSON, JIRA-Tabelle oder Klartext — in die Zwischenablage oder als Datei. Filter auf „Nur KI-Bilder“.
Erzeugt ein echtes, C2PA-signiertes Testbild (KI-generiert oder KI-bearbeitet) als Positiv-Testfall — zum Prüfen der eigenen Pipeline.
Grenzen: Bilder ganz ohne Herkunftssignal (kein C2PA, kein XMP/EXIF) sind nicht als KI erkennbar. Metadaten lassen sich entfernen (Screenshot, erneutes Speichern, viele Plattformen strippen sie beim Upload). Ein Treffer ist ein belastbares Indiz für KI; das Fehlen ist kein Beweis dagegen — das Tool sieht nur, was die signierende Software eingetragen hat.
Vollständigkeitshalber: die Alternativen, die es gibt, aber bewusst NICHT eingebaut sind.
Google SynthID, Meta, Amazon Titan: robust gegen Bearbeitung, aber jedes Verfahren braucht den Detektor seines Anbieters — kein offener, universeller Reader. SynthID ist nur über Googles Portal prüfbar. Grund: nicht integrierbar.
„Ist das KI?“ (Hive, Sensity, Illuminarty): generatorübergreifend und nach Kompression/Verkleinern unzuverlässig, veralten schnell, adversarial fragil. Grund: für eine Kennzeichnungs-Entscheidung nicht verteidigbar.
Frequenzspektrum, Rausch-Residuen, Diffusions-Fingerprints: Forschungsgrad, kein fertiges Werkzeug, gleiche Zuverlässigkeits-Vorbehalte wie ML-Klassifikatoren. Grund: Aufwand/Nutzen passt nicht.
Gegen eine Registry bekannter KI-Bilder: funktioniert nur, wenn das Bild dort registriert ist — keine allgemeine Lösung. Grund: zu geringe Abdeckung.
Die Leitlinie: lieber wenige, belastbare Signale (Provenienz) als viele unsichere — passend zum Zweck, eine rechtssichere KI-Kennzeichnung nach EU AI Act Art. 50 zu unterstützen.
Die Technologien hinter dem Projekt.
Ohne Befehl startet die grafische TUI.
| Befehl | Beschreibung | Default |
|---|---|---|
c2pa-scanner | Grafische TUI starten | — |
tui [sitemap] | TUI mit optionaler Start-Sitemap | — |
scan <sitemap> | Sitemap crawlen und Bilder prüfen (URL, .xml oder Domain) | — |
scan --render | Seiten mit Playwright rendern (JS-/Shadow-DOM-Bilder) | aus |
make-testimage <out> | Signiertes C2PA-Testbild erzeugen | — |
make-testimage --edited | KI-bearbeitet statt KI-generiert | aus |
Fertige Binaries pro Plattform oder aus dem Quellcode.
Rechtsgrundlage: EU AI Act (VO 2024/1689), Artikel 50 — gültig ab 2. August 2026. Zum Gesetzestext.