diff --git a/Cargo.toml b/Cargo.toml index 2f163b7..a03c1c8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "aicheck" version = "0.1.0" edition = "2021" description = "Detect AI-generated content via provenance signals (C2PA, XMP/IPTC, EXIF)" -license = "MIT" +license = "AGPL-3.0-or-later" repository = "https://github.com/MatrixA/aicheck" homepage = "https://github.com/MatrixA/aicheck" keywords = ["ai-detection", "c2pa", "watermark", "metadata", "forensics"] diff --git a/LICENSE b/LICENSE index 436aeee..987afea 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,17 @@ -MIT License +GNU AFFERO GENERAL PUBLIC LICENSE +Version 3, 19 November 2007 Copyright (c) 2025 MatrixA -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . diff --git a/README.de.md b/README.de.md new file mode 100644 index 0000000..2ab205a --- /dev/null +++ b/README.de.md @@ -0,0 +1,178 @@ +> [English](README.md) | [简体中文](README.zh-CN.md) | **Deutsch** | [日本語](README.ja.md) | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | [Español](README.es.md) + +
+ +# AICheck + +**KI-generierte Inhalte erkennen. Offline. Keine API-Keys. Keine Einrichtung.** + +[![CI](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml/badge.svg)](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml) +[![Crates.io](https://img.shields.io/crates/v/aicheck)](https://crates.io/crates/aicheck) +[![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](LICENSE) +[![Rust](https://img.shields.io/badge/rust-1.86%2B-orange.svg)](https://www.rust-lang.org/) + +
+ +*Dieses virale Bild — KI oder echt?* +*Welches Modell hat dieses Video generiert?* +*Kann man den Metadaten dieses Fotos vertrauen?* + +AICheck beantwortet diese Fragen durch Analyse von Datei-Metadaten und unsichtbaren Wasserzeichen. Keine API-Keys, kein Netzwerk, keine Einrichtung. + +**10 Erkennungsmethoden** · **51 KI-Tools** · **16 Dateiformate** · **3 Konfidenzstufen** · **Null Netzwerkanfragen** + +--- + +## ⚡ Schnellstart + +```bash +cargo install aicheck +``` + +> Erfordert Rust 1.86+. Oder aus dem Quellcode bauen: `cargo install --path .` + +```bash +aic check photo.jpg +``` + +``` +photo.jpg + HIGH C2PA: digitalSourceType = trainedAlgorithmicMedia (fully AI-generated) + HIGH C2PA: claim_generator matches AI tool: DALL-E 3/OpenAI [dall-e] + MEDIUM XMP: AISystemUsed = DALL-E 3 [dall-e] + Verdict: AI-generated (confidence: HIGH) + +real_photo.jpg + No AI-generation signals detected. +``` + +--- + +## 🔍 Funktionsweise + +``` + Deine Datei + | + +------+------+------+------+------+------+------+ + | | | | | | | | + v v v v v v v v + [C2PA] [XMP] [EXIF] [PNG] [MP4] [ID3] [WAV] [DATEI] + HIGH MEDIUM LOW LOW MEDIUM MEDIUM MEDIUM LOW + | | | | | | | | + +--+---+--+---+--+---+--+---+--+---+--+---+--+---+ + | | + v v + Metadaten-Signale gefunden? Keine Signale? + | | + v v + [ Ergebnis ] [ Unsichtbares Wasserzeichen / Audio-Spektral ] + DWT-DCT- oder FFT-Analyse + Konfidenz: LOW + | + v + [ Ergebnis ] +``` + +### Erkennungsmethoden + +**C2PA-Manifeste (HIGH Konfidenz)** — Kryptografisch signierte Herkunftsnachweise. Wenn ein C2PA-Manifest sagt „hergestellt von DALL-E", ist das das autoritativste Signal, das Metadaten liefern können. Liest `digitalSourceType` und `claim_generator`. Funktioniert mit Bildern, Videos und Audio (z.B. ElevenLabs). + +**XMP/IPTC-Metadaten (MEDIUM Konfidenz)** — Standard-Foto-Metadaten: `DigitalSourceType`, `AISystemUsed`, `AIPromptInformation`, `CreatorTool`. Zuverlässig, aber nicht signiert — kann gefälscht oder entfernt werden. + +**MP4-Container-Metadaten (MEDIUM Konfidenz)** — Analysiert iTunes-Stil-Atome (`©too`, `©swr`), AIGC-Labels (chinesischer Standard mit JSON `ProduceID`) und H.264-SEI-Wasserzeichenmarker (z.B. Kling). Erfasst KI-Signale, die in Videocontainern eingebettet sind und von anderen Methoden übersehen werden. + +**ID3-Audio-Metadaten (MEDIUM Konfidenz)** — Liest ID3v2-Tags aus MP3-Dateien: Kommentarframes (COMM), URL-Frames (WOAS/WOAF/WXXX) und Textframes (TENC/TPUB/TXXX). Erkennt KI-Audioplattformen wie Suno (über eingebettete URLs und „made with suno"-Kommentare). + +**WAV-Container-Metadaten (MEDIUM/LOW Konfidenz)** — Analysiert RIFF-LIST/INFO-Blöcke (ISFT, ICMT, IART) auf Verweise zu KI-Tools. Kennzeichnet außerdem TTS-typische Audioeigenschaften: Mono-Kanal + nicht-standardmäßige Abtastraten (16kHz, 22050Hz, 24000Hz). + +**EXIF-Heuristiken (LOW Konfidenz)** — Wenn das `Software`-Tag mit einem bekannten KI-Tool übereinstimmt UND typische Kamerafelder (Make, Model, GPS, Brennweite) fehlen, ist es wahrscheinlich KI-generiert. Erkennt auch hash-artige Artist-Tags. + +**PNG-Textblöcke (LOW Konfidenz)** — Durchsucht `tEXt`- und `iTXt`-Blöcke nach KI-Tool-Verweisen in den Schlüsselwörtern Software, Comment, Description, Source, Author, parameters und prompt. + +**Dateinamenmuster (LOW Konfidenz)** — Gleicht Dateinamen mit bekannten Benennungskonventionen von KI-Tools ab (z.B. ElevenLabs-Zeitstempelformat `ElevenLabs_YYYY-MM-DDTHH_MM_SS_*`, Suno/SoundRaw-Präfixe, Midjourney/DALL-E in Dateinamen). + +**Audio-Spektralanalyse (LOW Konfidenz)** — FFT-basierte Analyse von WAV-Audio: erkennt harte Frequenzabschneide (Energie konzentriert unterhalb von Nyquist) und abnormale spektrale Flachheit, typisch für TTS/KI-Synthese. Läuft als Fallback oder mit `--deep`. + +**Unsichtbare Wasserzeichen (LOW Konfidenz)** — Pixelbasierte DWT-DCT-Analyse, die Kanalrauschen-Asymmetrie, kanalübergreifende Bit-Übereinstimmung und Wavelet-Energiemuster erkennt. Läuft automatisch als Fallback, wenn keine Metadaten-Signale gefunden werden, oder auf Anforderung mit `--deep`. + +--- + +## 🎯 Erkannte Inhalte + +### KI-Tools + +| Kategorie | Tools | +|-----------|-------| +| Bildgenerierung | DALL-E, Midjourney, Stable Diffusion, Adobe Firefly, Imagen, Flux, Ideogram, Leonardo.ai, NovelAI | +| Videogenerierung | Sora, Google Veo, Runway, Pika, Kling, Vidu | +| Audio-/Musikgenerierung | Suno, Udio, ElevenLabs, SoundRaw, AIVA, Boomy, Mubert, Beatoven, Soundful | +| Multimodal | GPT-4o, GPT-4, ChatGPT, OpenAI, GPT Image | +| Plattformen | Bing Image Creator, Copilot Designer, Microsoft Designer, Canva AI, DreamStudio, NightCafe, Craiyon, DeepAI, Meta AI, Stability AI | +| Oberflächen | ComfyUI, Automatic1111 (A1111), InvokeAI, Fooocus | +| Forschung | Glide, Parti, Muse, Seedream, Recraft | + +### Dateiformate + +| Typ | Formate | +|-----|---------| +| Bild | JPEG, PNG, WebP, AVIF, HEIF, TIFF, GIF, BMP | +| Video | MP4, MOV, AVI, WebM | +| Audio | MP3, M4A, WAV | +| Dokument | PDF | + +--- + +## 💻 Befehle + +### `aic check [PFADE]` + +Dateien auf KI-Generierungssignale analysieren. + +```bash +aic check photo.jpg # einzelne Datei +aic check images/ -r # Verzeichnis, rekursiv +aic check photo.jpg --json # JSON-Ausgabe +aic check photo.jpg -q # leise — nur Exit-Code +aic check photo.jpg --min-confidence medium # nach Konfidenz filtern +aic check photo.jpg --deep # Pixelbasierte Wasserzeichenanalyse erzwingen +``` + +### `aic info ` + +Alle Herkunfts-Metadaten ausgeben (C2PA-Manifeste, XMP-Eigenschaften, EXIF-Felder, MP4-Atome, ID3-Tags, WAV-Metadaten, Wasserzeichenanalyse). + +```bash +aic info photo.jpg +``` + +### Globale Optionen + +| Option | Wirkung | +|--------|---------| +| `--json` | Ausgabe als JSON | +| `-q, --quiet` | Ausgabe unterdrücken, nur Exit-Code setzen | +| `--deep` | Unsichtbare Wasserzeichen- und Audio-Spektralanalyse für alle Dateien erzwingen | +| `--no-color` | Farbige Ausgabe deaktivieren | + +### Exit-Codes + +| Code | Bedeutung | +|------|-----------| +| `0` | KI-Signale erkannt | +| `1` | Keine KI-Signale | +| `2` | Fehler | + +--- + +## ⚠️ Einschränkungen + +- **Entfernte Metadaten = unsichtbar.** Wenn jemand die Metadaten entfernt, gibt es nichts zu erkennen. Soziale Plattformen tun dies beim Upload — analysiere immer die Originaldatei. +- **Die meisten KI-Bilder haben kein Wasserzeichen.** Nur ~19% der KI-Bilder tragen erkennbare Herkunftsmarker (Daten von 2025). +- **Proprietäre Wasserzeichen sind unerreichbar.** SynthID, Stable Signature und VideoSeal benötigen Schlüssel, die wir nicht haben. +- **Pixelbasierte Analyse hat Grenzen.** Der eingebaute DWT-DCT-Wasserzeichendetektor erkennt häufige Muster, ist aber kein vollständiger forensischer Klassifikator. Für tiefgehende statistische Erkennung verwende spezialisierte forensische Tools. + +--- + +## 📄 Lizenz + +[AGPL-3.0](LICENSE) diff --git a/README.es.md b/README.es.md new file mode 100644 index 0000000..6fa7c43 --- /dev/null +++ b/README.es.md @@ -0,0 +1,178 @@ +> [English](README.md) | [简体中文](README.zh-CN.md) | [Deutsch](README.de.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | **Español** + +
+ +# AICheck + +**Detecta contenido generado por IA. Sin conexión. Sin API keys. Sin configuración.** + +[![CI](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml/badge.svg)](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml) +[![Crates.io](https://img.shields.io/crates/v/aicheck)](https://crates.io/crates/aicheck) +[![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](LICENSE) +[![Rust](https://img.shields.io/badge/rust-1.86%2B-orange.svg)](https://www.rust-lang.org/) + +
+ +*Esa imagen viral — ¿IA o real?* +*¿Qué modelo generó este video?* +*¿Puedes confiar en los metadatos de esta foto?* + +AICheck responde estas preguntas analizando los metadatos de archivos y marcas de agua invisibles. Sin API keys, sin red, sin configuración. + +**10 métodos de detección** · **51 herramientas de IA** · **16 formatos de archivo** · **3 niveles de confianza** · **Cero peticiones de red** + +--- + +## ⚡ Inicio Rápido + +```bash +cargo install aicheck +``` + +> Requiere Rust 1.86+. O compilar desde el código fuente: `cargo install --path .` + +```bash +aic check photo.jpg +``` + +``` +photo.jpg + HIGH C2PA: digitalSourceType = trainedAlgorithmicMedia (fully AI-generated) + HIGH C2PA: claim_generator matches AI tool: DALL-E 3/OpenAI [dall-e] + MEDIUM XMP: AISystemUsed = DALL-E 3 [dall-e] + Verdict: AI-generated (confidence: HIGH) + +real_photo.jpg + No AI-generation signals detected. +``` + +--- + +## 🔍 Cómo Funciona + +``` + tu archivo + | + +------+------+------+------+------+------+------+ + | | | | | | | | + v v v v v v v v + [C2PA] [XMP] [EXIF] [PNG] [MP4] [ID3] [WAV] [NOMBRE] + HIGH MEDIUM LOW LOW MEDIUM MEDIUM MEDIUM LOW + | | | | | | | | + +--+---+--+---+--+---+--+---+--+---+--+---+--+---+ + | | + v v + ¿señales de metadatos? ¿sin señales? + | | + v v + [ Veredicto ] [ Marca de agua invisible / Análisis espectral ] + Análisis DWT-DCT o FFT + confianza: LOW + | + v + [ Veredicto ] +``` + +### Métodos de Detección + +**Manifiestos C2PA (confianza HIGH)** — Procedencia con firma criptográfica. Si un manifiesto C2PA dice "hecho por DALL-E", esa es la señal más autoritativa que los metadatos pueden proporcionar. Lee `digitalSourceType` y `claim_generator`. Funciona con imágenes, videos y audio (ej. ElevenLabs). + +**Metadatos XMP/IPTC (confianza MEDIUM)** — Metadatos fotográficos estándar: `DigitalSourceType`, `AISystemUsed`, `AIPromptInformation`, `CreatorTool`. Fiables pero sin firma — pueden ser falsificados o eliminados. + +**Metadatos de contenedor MP4 (confianza MEDIUM)** — Analiza átomos estilo iTunes (`©too`, `©swr`), etiquetas AIGC (estándar chino con JSON `ProduceID`) y marcadores de marca de agua SEI H.264 (ej. Kling). Captura señales de IA integradas en contenedores de video que otros métodos no detectan. + +**Metadatos de audio ID3 (confianza MEDIUM)** — Lee etiquetas ID3v2 de archivos MP3: marcos de comentario (COMM), marcos de URL (WOAS/WOAF/WXXX) y marcos de texto (TENC/TPUB/TXXX). Detecta plataformas de audio IA como Suno (mediante URLs incrustadas y comentarios "made with suno"). + +**Metadatos de contenedor WAV (confianza MEDIUM/LOW)** — Analiza bloques RIFF LIST/INFO (ISFT, ICMT, IART) en busca de referencias a herramientas de IA. También marca características de audio típicas de TTS: canal mono + frecuencias de muestreo no estándar (16kHz, 22050Hz, 24000Hz). + +**Heurísticas EXIF (confianza LOW)** — Si la etiqueta `Software` coincide con una herramienta de IA conocida Y faltan campos típicos de cámara (Make, Model, GPS, distancia focal), probablemente es generado por IA. También detecta etiquetas Artist con formato hash. + +**Bloques de texto PNG (confianza LOW)** — Escanea bloques `tEXt` e `iTXt` en busca de referencias a herramientas de IA en las palabras clave Software, Comment, Description, Source, Author, parameters y prompt. + +**Patrones de nombre de archivo (confianza LOW)** — Compara nombres de archivo con convenciones de nomenclatura de herramientas de IA conocidas (ej. formato de marca temporal de ElevenLabs `ElevenLabs_YYYY-MM-DDTHH_MM_SS_*`, prefijos Suno/SoundRaw, Midjourney/DALL-E en nombres de archivo). + +**Análisis espectral de audio (confianza LOW)** — Análisis basado en FFT de audio WAV: detecta cortes de frecuencia abruptos (energía concentrada por debajo de Nyquist) y planitud espectral anormal típica de síntesis TTS/IA. Se ejecuta como respaldo o con `--deep`. + +**Marcas de agua invisibles (confianza LOW)** — Análisis DWT-DCT a nivel de píxel que detecta asimetría de ruido entre canales, concordancia de bits entre canales y patrones de energía wavelet. Se ejecuta automáticamente como respaldo cuando no se encuentran señales de metadatos, o bajo demanda con `--deep`. + +--- + +## 🎯 Qué Reconoce + +### Herramientas de IA + +| Categoría | Herramientas | +|-----------|-------------| +| Generación de imágenes | DALL-E, Midjourney, Stable Diffusion, Adobe Firefly, Imagen, Flux, Ideogram, Leonardo.ai, NovelAI | +| Generación de video | Sora, Google Veo, Runway, Pika, Kling, Vidu | +| Generación de audio/música | Suno, Udio, ElevenLabs, SoundRaw, AIVA, Boomy, Mubert, Beatoven, Soundful | +| Multimodal | GPT-4o, GPT-4, ChatGPT, OpenAI, GPT Image | +| Plataformas | Bing Image Creator, Copilot Designer, Microsoft Designer, Canva AI, DreamStudio, NightCafe, Craiyon, DeepAI, Meta AI, Stability AI | +| Interfaces | ComfyUI, Automatic1111 (A1111), InvokeAI, Fooocus | +| Investigación | Glide, Parti, Muse, Seedream, Recraft | + +### Formatos de Archivo + +| Tipo | Formatos | +|------|----------| +| Imagen | JPEG, PNG, WebP, AVIF, HEIF, TIFF, GIF, BMP | +| Video | MP4, MOV, AVI, WebM | +| Audio | MP3, M4A, WAV | +| Documento | PDF | + +--- + +## 💻 Comandos + +### `aic check [RUTAS]` + +Analiza archivos en busca de señales de generación por IA. + +```bash +aic check photo.jpg # archivo individual +aic check images/ -r # directorio, recursivo +aic check photo.jpg --json # salida JSON +aic check photo.jpg -q # silencioso — solo código de salida +aic check photo.jpg --min-confidence medium # filtrar por confianza +aic check photo.jpg --deep # forzar análisis de marca de agua a nivel de píxel +``` + +### `aic info ` + +Muestra todos los metadatos de procedencia (manifiestos C2PA, propiedades XMP, campos EXIF, átomos MP4, etiquetas ID3, metadatos WAV, análisis de marca de agua). + +```bash +aic info photo.jpg +``` + +### Opciones Globales + +| Opción | Efecto | +|--------|--------| +| `--json` | Salida en formato JSON | +| `-q, --quiet` | Suprimir salida, solo establecer código de salida | +| `--deep` | Forzar análisis de marca de agua invisible y espectral de audio en todos los archivos | +| `--no-color` | Desactivar salida con colores | + +### Códigos de Salida + +| Código | Significado | +|--------|-------------| +| `0` | Señales de IA detectadas | +| `1` | Sin señales de IA | +| `2` | Error | + +--- + +## ⚠️ Limitaciones + +- **Sin metadatos = invisible.** Si alguien elimina los metadatos, no hay nada que detectar. Las plataformas sociales hacen esto al subir archivos — analiza siempre el archivo original. +- **La mayoría de imágenes IA no tienen marca de agua.** Solo ~19% de las imágenes IA llevan marcadores de procedencia detectables (datos de 2025). +- **Las marcas de agua propietarias están fuera de alcance.** SynthID, Stable Signature y VideoSeal requieren claves que no tenemos. +- **El análisis a nivel de píxel tiene límites.** El detector de marca de agua DWT-DCT integrado captura patrones comunes pero no es un clasificador forense completo. Para detección estadística profunda, usa herramientas forenses dedicadas. + +--- + +## 📄 Licencia + +[AGPL-3.0](LICENSE) diff --git a/README.hi.md b/README.hi.md new file mode 100644 index 0000000..c397051 --- /dev/null +++ b/README.hi.md @@ -0,0 +1,178 @@ +> [English](README.md) | [简体中文](README.zh-CN.md) | [Deutsch](README.de.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | **हिन्दी** | [Español](README.es.md) + +
+ +# AICheck + +**AI-जनित सामग्री का पता लगाएं। ऑफ़लाइन। API कुंजी अनावश्यक। सेटअप अनावश्यक।** + +[![CI](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml/badge.svg)](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml) +[![Crates.io](https://img.shields.io/crates/v/aicheck)](https://crates.io/crates/aicheck) +[![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](LICENSE) +[![Rust](https://img.shields.io/badge/rust-1.86%2B-orange.svg)](https://www.rust-lang.org/) + +
+ +*वह वायरल इमेज — AI है या असली?* +*यह वीडियो किस मॉडल ने बनाया?* +*क्या इस फ़ोटो के मेटाडेटा पर भरोसा किया जा सकता है?* + +AICheck फ़ाइल मेटाडेटा और अदृश्य वॉटरमार्क का विश्लेषण करके इन सवालों का जवाब देता है। API कुंजी नहीं, नेटवर्क नहीं, सेटअप नहीं। + +**10 पहचान विधियाँ** · **51 AI उपकरण** · **16 फ़ाइल प्रारूप** · **3 विश्वसनीयता स्तर** · **शून्य नेटवर्क अनुरोध** + +--- + +## ⚡ त्वरित शुरुआत + +```bash +cargo install aicheck +``` + +> Rust 1.86+ आवश्यक। सोर्स से बिल्ड करें: `cargo install --path .` + +```bash +aic check photo.jpg +``` + +``` +photo.jpg + HIGH C2PA: digitalSourceType = trainedAlgorithmicMedia (fully AI-generated) + HIGH C2PA: claim_generator matches AI tool: DALL-E 3/OpenAI [dall-e] + MEDIUM XMP: AISystemUsed = DALL-E 3 [dall-e] + Verdict: AI-generated (confidence: HIGH) + +real_photo.jpg + No AI-generation signals detected. +``` + +--- + +## 🔍 यह कैसे काम करता है + +``` + आपकी फ़ाइल + | + +------+------+------+------+------+------+------+ + | | | | | | | | + v v v v v v v v + [C2PA] [XMP] [EXIF] [PNG] [MP4] [ID3] [WAV] [फ़ाइल नाम] + HIGH MEDIUM LOW LOW MEDIUM MEDIUM MEDIUM LOW + | | | | | | | | + +--+---+--+---+--+---+--+---+--+---+--+---+--+---+ + | | + v v + मेटाडेटा सिग्नल मिले? कोई सिग्नल नहीं? + | | + v v + [ निर्णय ] [ अदृश्य वॉटरमार्क / ऑडियो स्पेक्ट्रल विश्लेषण ] + DWT-DCT या FFT विश्लेषण + विश्वसनीयता: LOW + | + v + [ निर्णय ] +``` + +### पहचान विधियाँ + +**C2PA मैनिफ़ेस्ट (HIGH विश्वसनीयता)** — क्रिप्टोग्राफ़िक रूप से हस्ताक्षरित उत्पत्ति प्रमाण। यदि C2PA मैनिफ़ेस्ट कहता है "DALL-E द्वारा बनाया गया", तो यह मेटाडेटा द्वारा दिया जा सकने वाला सबसे प्रामाणिक संकेत है। `digitalSourceType` और `claim_generator` पढ़ता है। इमेज, वीडियो और ऑडियो (जैसे ElevenLabs) पर काम करता है। + +**XMP/IPTC मेटाडेटा (MEDIUM विश्वसनीयता)** — मानक फ़ोटो मेटाडेटा: `DigitalSourceType`, `AISystemUsed`, `AIPromptInformation`, `CreatorTool`। विश्वसनीय लेकिन बिना हस्ताक्षर — नकली बनाया या हटाया जा सकता है। + +**MP4 कंटेनर मेटाडेटा (MEDIUM विश्वसनीयता)** — iTunes-शैली के एटम (`©too`, `©swr`), AIGC लेबल (चीनी मानक, JSON `ProduceID` सहित), और H.264 SEI वॉटरमार्क मार्कर (जैसे Kling) का विश्लेषण करता है। वीडियो कंटेनरों में एम्बेडेड AI सिग्नल पकड़ता है जो अन्य विधियाँ चूक जाती हैं। + +**ID3 ऑडियो मेटाडेटा (MEDIUM विश्वसनीयता)** — MP3 फ़ाइलों से ID3v2 टैग पढ़ता है: कमेंट फ़्रेम (COMM), URL फ़्रेम (WOAS/WOAF/WXXX), और टेक्स्ट फ़्रेम (TENC/TPUB/TXXX)। Suno जैसे AI ऑडियो प्लेटफ़ॉर्म का पता लगाता है (एम्बेडेड URL और "made with suno" कमेंट के माध्यम से)। + +**WAV कंटेनर मेटाडेटा (MEDIUM/LOW विश्वसनीयता)** — AI उपकरण संदर्भों के लिए RIFF LIST/INFO चंक (ISFT, ICMT, IART) का विश्लेषण करता है। TTS-विशिष्ट ऑडियो विशेषताओं को भी चिह्नित करता है: मोनो चैनल + गैर-मानक सैंपल दर (16kHz, 22050Hz, 24000Hz)। + +**EXIF ह्यूरिस्टिक्स (LOW विश्वसनीयता)** — यदि `Software` टैग किसी ज्ञात AI उपकरण से मेल खाता है और विशिष्ट कैमरा फ़ील्ड (Make, Model, GPS, फ़ोकल लंबाई) अनुपस्थित हैं, तो यह संभवतः AI-जनित है। हैश-जैसे Artist टैग का भी पता लगाता है। + +**PNG टेक्स्ट चंक (LOW विश्वसनीयता)** — Software, Comment, Description, Source, Author, parameters, और prompt कीवर्ड में AI उपकरण संदर्भों के लिए `tEXt` और `iTXt` चंक को स्कैन करता है। + +**फ़ाइल नाम पैटर्न (LOW विश्वसनीयता)** — फ़ाइल नामों को ज्ञात AI उपकरण नामकरण परंपराओं से मिलाता है (जैसे ElevenLabs टाइमस्टैंप प्रारूप `ElevenLabs_YYYY-MM-DDTHH_MM_SS_*`, Suno/SoundRaw उपसर्ग, फ़ाइल नामों में Midjourney/DALL-E)। + +**ऑडियो स्पेक्ट्रल विश्लेषण (LOW विश्वसनीयता)** — WAV ऑडियो का FFT-आधारित विश्लेषण: हार्ड फ़्रीक्वेंसी कटऑफ़ (Nyquist से नीचे ऊर्जा केंद्रित) और TTS/AI संश्लेषण की विशिष्ट असामान्य स्पेक्ट्रल समतलता का पता लगाता है। फ़ॉलबैक के रूप में या `--deep` के साथ चलता है। + +**अदृश्य वॉटरमार्क (LOW विश्वसनीयता)** — पिक्सेल-स्तरीय DWT-DCT विश्लेषण जो चैनल नॉइज़ असमानता, क्रॉस-चैनल बिट सहमति, और वेवलेट ऊर्जा पैटर्न का पता लगाता है। जब कोई मेटाडेटा सिग्नल नहीं मिलता तो स्वचालित रूप से फ़ॉलबैक के रूप में चलता है, या `--deep` के साथ माँग पर चलता है। + +--- + +## 🎯 क्या पहचानता है + +### AI उपकरण + +| श्रेणी | उपकरण | +|--------|--------| +| इमेज जनरेशन | DALL-E, Midjourney, Stable Diffusion, Adobe Firefly, Imagen, Flux, Ideogram, Leonardo.ai, NovelAI | +| वीडियो जनरेशन | Sora, Google Veo, Runway, Pika, Kling, Vidu | +| ऑडियो/म्यूज़िक जनरेशन | Suno, Udio, ElevenLabs, SoundRaw, AIVA, Boomy, Mubert, Beatoven, Soundful | +| मल्टीमोडल | GPT-4o, GPT-4, ChatGPT, OpenAI, GPT Image | +| प्लेटफ़ॉर्म | Bing Image Creator, Copilot Designer, Microsoft Designer, Canva AI, DreamStudio, NightCafe, Craiyon, DeepAI, Meta AI, Stability AI | +| इंटरफ़ेस | ComfyUI, Automatic1111 (A1111), InvokeAI, Fooocus | +| रिसर्च | Glide, Parti, Muse, Seedream, Recraft | + +### फ़ाइल प्रारूप + +| प्रकार | प्रारूप | +|--------|---------| +| इमेज | JPEG, PNG, WebP, AVIF, HEIF, TIFF, GIF, BMP | +| वीडियो | MP4, MOV, AVI, WebM | +| ऑडियो | MP3, M4A, WAV | +| दस्तावेज़ | PDF | + +--- + +## 💻 कमांड + +### `aic check [पथ]` + +फ़ाइलों में AI-जनरेशन सिग्नल का विश्लेषण करें। + +```bash +aic check photo.jpg # एकल फ़ाइल +aic check images/ -r # डायरेक्टरी, रिकर्सिव +aic check photo.jpg --json # JSON आउटपुट +aic check photo.jpg -q # शांत — केवल एग्ज़िट कोड +aic check photo.jpg --min-confidence medium # विश्वसनीयता के अनुसार फ़िल्टर +aic check photo.jpg --deep # पिक्सेल-स्तरीय वॉटरमार्क विश्लेषण को बाध्य करें +``` + +### `aic info <फ़ाइल>` + +सभी उत्पत्ति मेटाडेटा दिखाएं (C2PA मैनिफ़ेस्ट, XMP प्रॉपर्टी, EXIF फ़ील्ड, MP4 एटम, ID3 टैग, WAV मेटाडेटा, वॉटरमार्क विश्लेषण)। + +```bash +aic info photo.jpg +``` + +### ग्लोबल विकल्प + +| विकल्प | प्रभाव | +|--------|--------| +| `--json` | JSON प्रारूप में आउटपुट | +| `-q, --quiet` | आउटपुट दबाएं, केवल एग्ज़िट कोड सेट करें | +| `--deep` | सभी फ़ाइलों पर अदृश्य वॉटरमार्क और ऑडियो स्पेक्ट्रल विश्लेषण बाध्य करें | +| `--no-color` | रंगीन आउटपुट अक्षम करें | + +### एग्ज़िट कोड + +| कोड | अर्थ | +|------|------| +| `0` | AI सिग्नल पाए गए | +| `1` | कोई AI सिग्नल नहीं | +| `2` | त्रुटि | + +--- + +## ⚠️ सीमाएं + +- **मेटाडेटा हटाया गया = अदृश्य।** यदि किसी ने मेटाडेटा हटा दिया है, तो पता लगाने के लिए कुछ नहीं है। सोशल प्लेटफ़ॉर्म अपलोड करते समय ऐसा करते हैं — हमेशा मूल फ़ाइल का विश्लेषण करें। +- **अधिकांश AI इमेज में वॉटरमार्क नहीं होता।** केवल ~19% AI इमेज में पता लगाने योग्य उत्पत्ति मार्कर होते हैं (2025 डेटा)। +- **मालिकाना वॉटरमार्क पहुँच से बाहर हैं।** SynthID, Stable Signature, और VideoSeal को ऐसी कुंजियों की आवश्यकता होती है जो हमारे पास नहीं हैं। +- **पिक्सेल-स्तरीय विश्लेषण की सीमाएं हैं।** बिल्ट-इन DWT-DCT वॉटरमार्क डिटेक्टर सामान्य पैटर्न पकड़ता है लेकिन पूर्ण फ़ोरेंसिक क्लासिफ़ायर नहीं है। गहन सांख्यिकीय पहचान के लिए समर्पित फ़ोरेंसिक उपकरणों का उपयोग करें। + +--- + +## 📄 लाइसेंस + +[AGPL-3.0](LICENSE) diff --git a/README.ja.md b/README.ja.md new file mode 100644 index 0000000..ccc418e --- /dev/null +++ b/README.ja.md @@ -0,0 +1,178 @@ +> [English](README.md) | [简体中文](README.zh-CN.md) | [Deutsch](README.de.md) | **日本語** | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | [Español](README.es.md) + +
+ +# AICheck + +**AI生成コンテンツを検出。オフライン。APIキー不要。セットアップ不要。** + +[![CI](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml/badge.svg)](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml) +[![Crates.io](https://img.shields.io/crates/v/aicheck)](https://crates.io/crates/aicheck) +[![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](LICENSE) +[![Rust](https://img.shields.io/badge/rust-1.86%2B-orange.svg)](https://www.rust-lang.org/) + +
+ +*あのバズった画像——AIか本物か?* +*この動画はどのモデルで生成された?* +*この写真のメタデータは信頼できる?* + +AICheckはファイルのメタデータと不可視ウォーターマークを分析してこれらの疑問に答えます。APIキー不要、ネットワーク不要、セットアップ不要。 + +**10種の検出方法** · **51種のAIツール** · **16種のファイル形式** · **3段階の信頼度** · **ネットワーク通信ゼロ** + +--- + +## ⚡ クイックスタート + +```bash +cargo install aicheck +``` + +> Rust 1.86+が必要です。ソースからビルド:`cargo install --path .` + +```bash +aic check photo.jpg +``` + +``` +photo.jpg + HIGH C2PA: digitalSourceType = trainedAlgorithmicMedia (fully AI-generated) + HIGH C2PA: claim_generator matches AI tool: DALL-E 3/OpenAI [dall-e] + MEDIUM XMP: AISystemUsed = DALL-E 3 [dall-e] + Verdict: AI-generated (confidence: HIGH) + +real_photo.jpg + No AI-generation signals detected. +``` + +--- + +## 🔍 仕組み + +``` + あなたのファイル + | + +------+------+------+------+------+------+------+ + | | | | | | | | + v v v v v v v v + [C2PA] [XMP] [EXIF] [PNG] [MP4] [ID3] [WAV] [ファイル名] + HIGH MEDIUM LOW LOW MEDIUM MEDIUM MEDIUM LOW + | | | | | | | | + +--+---+--+---+--+---+--+---+--+---+--+---+--+---+ + | | + v v + メタデータシグナル検出? シグナルなし? + | | + v v + [ 判定 ] [ 不可視ウォーターマーク / 音声スペクトル分析 ] + DWT-DCTまたはFFT分析 + 信頼度: LOW + | + v + [ 判定 ] +``` + +### 検出方法 + +**C2PAマニフェスト(HIGH信頼度)**— 暗号署名による来歴証明。C2PAマニフェストに「DALL-Eで作成」と記載されていれば、それはメタデータが提供できる最も権威ある証拠です。`digitalSourceType`と`claim_generator`を読み取ります。画像、動画、音声(例:ElevenLabs)に対応。 + +**XMP/IPTCメタデータ(MEDIUM信頼度)**— 標準的な写真メタデータ:`DigitalSourceType`、`AISystemUsed`、`AIPromptInformation`、`CreatorTool`。信頼性は高いが署名なし——偽造や削除が可能。 + +**MP4コンテナメタデータ(MEDIUM信頼度)**— iTunes形式のアトム(`©too`、`©swr`)、AIGCラベル(中国規格、JSON `ProduceID`付き)、H.264 SEIウォーターマークマーカー(例:Kling)を解析。他の方法では見逃されるビデオコンテナに埋め込まれたAIシグナルを検出。 + +**ID3音声メタデータ(MEDIUM信頼度)**— MP3ファイルのID3v2タグを読み取り:コメントフレーム(COMM)、URLフレーム(WOAS/WOAF/WXXX)、テキストフレーム(TENC/TPUB/TXXX)。SunoなどのAI音声プラットフォームを検出(埋め込みURLや「made with suno」コメント経由)。 + +**WAVコンテナメタデータ(MEDIUM/LOW信頼度)**— RIFF LIST/INFOチャンク(ISFT、ICMT、IART)を解析してAIツールへの参照を検出。TTS特有の音声特性も検出:モノラル + 非標準サンプルレート(16kHz、22050Hz、24000Hz)。 + +**EXIFヒューリスティクス(LOW信頼度)**— `Software`タグが既知のAIツールと一致し、かつ典型的なカメラフィールド(Make、Model、GPS、焦点距離)が欠落している場合、AI生成の可能性が高い。ハッシュ形式のArtistタグも検出。 + +**PNGテキストチャンク(LOW信頼度)**— `tEXt`および`iTXt`チャンクのSoftware、Comment、Description、Source、Author、parameters、promptキーワードからAIツールへの参照をスキャン。 + +**ファイル名パターン(LOW信頼度)**— ファイル名を既知のAIツールの命名規則と照合(例:ElevenLabsのタイムスタンプ形式 `ElevenLabs_YYYY-MM-DDTHH_MM_SS_*`、Suno/SoundRawプレフィックス、ファイル名中のMidjourney/DALL-E)。 + +**音声スペクトル分析(LOW信頼度)**— FFTベースのWAV音声分析:硬い周波数カットオフ(ナイキスト以下にエネルギーが集中)とTTS/AI合成に典型的な異常なスペクトル平坦度を検出。フォールバックとして、または`--deep`で実行。 + +**不可視ウォーターマーク(LOW信頼度)**— ピクセルレベルのDWT-DCT分析で、チャンネルノイズの非対称性、チャンネル間ビット一致、ウェーブレットエネルギーパターンを検出。メタデータシグナルが見つからない場合に自動的にフォールバックとして実行、または`--deep`でオンデマンド実行。 + +--- + +## 🎯 認識対象 + +### AIツール + +| カテゴリ | ツール | +|---------|--------| +| 画像生成 | DALL-E, Midjourney, Stable Diffusion, Adobe Firefly, Imagen, Flux, Ideogram, Leonardo.ai, NovelAI | +| 動画生成 | Sora, Google Veo, Runway, Pika, Kling, Vidu | +| 音声/音楽生成 | Suno, Udio, ElevenLabs, SoundRaw, AIVA, Boomy, Mubert, Beatoven, Soundful | +| マルチモーダル | GPT-4o, GPT-4, ChatGPT, OpenAI, GPT Image | +| プラットフォーム | Bing Image Creator, Copilot Designer, Microsoft Designer, Canva AI, DreamStudio, NightCafe, Craiyon, DeepAI, Meta AI, Stability AI | +| インターフェース | ComfyUI, Automatic1111 (A1111), InvokeAI, Fooocus | +| 研究 | Glide, Parti, Muse, Seedream, Recraft | + +### ファイル形式 + +| タイプ | 形式 | +|--------|------| +| 画像 | JPEG, PNG, WebP, AVIF, HEIF, TIFF, GIF, BMP | +| 動画 | MP4, MOV, AVI, WebM | +| 音声 | MP3, M4A, WAV | +| ドキュメント | PDF | + +--- + +## 💻 コマンド + +### `aic check [パス]` + +ファイルのAI生成シグナルを分析。 + +```bash +aic check photo.jpg # 単一ファイル +aic check images/ -r # ディレクトリ、再帰的 +aic check photo.jpg --json # JSON出力 +aic check photo.jpg -q # 静音——終了コードのみ +aic check photo.jpg --min-confidence medium # 信頼度でフィルタ +aic check photo.jpg --deep # ピクセルレベルのウォーターマーク分析を強制 +``` + +### `aic info <ファイル>` + +すべての来歴メタデータを出力(C2PAマニフェスト、XMPプロパティ、EXIFフィールド、MP4アトム、ID3タグ、WAVメタデータ、ウォーターマーク分析)。 + +```bash +aic info photo.jpg +``` + +### グローバルオプション + +| オプション | 効果 | +|-----------|------| +| `--json` | JSON形式で出力 | +| `-q, --quiet` | 出力を抑制、終了コードのみ設定 | +| `--deep` | すべてのファイルに不可視ウォーターマークと音声スペクトル分析を強制 | +| `--no-color` | 色付き出力を無効化 | + +### 終了コード + +| コード | 意味 | +|--------|------| +| `0` | AIシグナル検出 | +| `1` | AIシグナルなし | +| `2` | エラー | + +--- + +## ⚠️ 制限事項 + +- **メタデータ削除 = 検出不可。** メタデータが削除されると、検出するものがありません。SNSプラットフォームはアップロード時にこれを行います——必ず元のファイルを分析してください。 +- **ほとんどのAI画像にはウォーターマークがない。** 検出可能な来歴マーカーを持つAI画像はわずか約19%です(2025年データ)。 +- **プロプライエタリなウォーターマークは対象外。** SynthID、Stable Signature、VideoSealには入手できないキーが必要です。 +- **ピクセルレベル分析には限界がある。** 内蔵のDWT-DCTウォーターマーク検出器は一般的なパターンを捉えますが、完全なフォレンジック分類器ではありません。詳細な統計的検出には専用のフォレンジックツールを使用してください。 + +--- + +## 📄 ライセンス + +[AGPL-3.0](LICENSE) diff --git a/README.ko.md b/README.ko.md new file mode 100644 index 0000000..c583887 --- /dev/null +++ b/README.ko.md @@ -0,0 +1,178 @@ +> [English](README.md) | [简体中文](README.zh-CN.md) | [Deutsch](README.de.md) | [日本語](README.ja.md) | **한국어** | [हिन्दी](README.hi.md) | [Español](README.es.md) + +
+ +# AICheck + +**AI 생성 콘텐츠를 감지합니다. 오프라인. API 키 불필요. 설정 불필요.** + +[![CI](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml/badge.svg)](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml) +[![Crates.io](https://img.shields.io/crates/v/aicheck)](https://crates.io/crates/aicheck) +[![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](LICENSE) +[![Rust](https://img.shields.io/badge/rust-1.86%2B-orange.svg)](https://www.rust-lang.org/) + +
+ +*화제의 그 이미지 — AI인가 진짜인가?* +*이 영상은 어떤 모델로 생성되었나?* +*이 사진의 메타데이터를 신뢰할 수 있나?* + +AICheck는 파일 메타데이터와 보이지 않는 워터마크를 분석하여 이런 질문에 답합니다. API 키 불필요, 네트워크 불필요, 설정 불필요. + +**10가지 감지 방법** · **51개 AI 도구** · **16가지 파일 형식** · **3단계 신뢰도** · **네트워크 요청 제로** + +--- + +## ⚡ 빠른 시작 + +```bash +cargo install aicheck +``` + +> Rust 1.86+ 필요. 소스에서 빌드: `cargo install --path .` + +```bash +aic check photo.jpg +``` + +``` +photo.jpg + HIGH C2PA: digitalSourceType = trainedAlgorithmicMedia (fully AI-generated) + HIGH C2PA: claim_generator matches AI tool: DALL-E 3/OpenAI [dall-e] + MEDIUM XMP: AISystemUsed = DALL-E 3 [dall-e] + Verdict: AI-generated (confidence: HIGH) + +real_photo.jpg + No AI-generation signals detected. +``` + +--- + +## 🔍 작동 원리 + +``` + 파일 입력 + | + +------+------+------+------+------+------+------+ + | | | | | | | | + v v v v v v v v + [C2PA] [XMP] [EXIF] [PNG] [MP4] [ID3] [WAV] [파일명] + HIGH MEDIUM LOW LOW MEDIUM MEDIUM MEDIUM LOW + | | | | | | | | + +--+---+--+---+--+---+--+---+--+---+--+---+--+---+ + | | + v v + 메타데이터 신호 감지? 신호 없음? + | | + v v + [ 판정 ] [ 보이지 않는 워터마크 / 오디오 스펙트럼 분석 ] + DWT-DCT 또는 FFT 분석 + 신뢰도: LOW + | + v + [ 판정 ] +``` + +### 감지 방법 + +**C2PA 매니페스트 (HIGH 신뢰도)** — 암호화 서명된 출처 증명. C2PA 매니페스트에 "DALL-E로 제작"이라고 되어 있다면, 이것이 메타데이터가 제공할 수 있는 가장 권위 있는 신호입니다. `digitalSourceType`과 `claim_generator`를 읽습니다. 이미지, 영상, 오디오(예: ElevenLabs)에 대응. + +**XMP/IPTC 메타데이터 (MEDIUM 신뢰도)** — 표준 사진 메타데이터: `DigitalSourceType`, `AISystemUsed`, `AIPromptInformation`, `CreatorTool`. 신뢰할 수 있지만 서명되지 않음 — 위조하거나 제거할 수 있습니다. + +**MP4 컨테이너 메타데이터 (MEDIUM 신뢰도)** — iTunes 스타일 아톰(`©too`, `©swr`), AIGC 라벨(중국 표준, JSON `ProduceID` 포함), H.264 SEI 워터마크 마커(예: Kling)를 분석합니다. 다른 방법이 놓치는 비디오 컨테이너에 내장된 AI 신호를 감지합니다. + +**ID3 오디오 메타데이터 (MEDIUM 신뢰도)** — MP3 파일의 ID3v2 태그를 읽습니다: 코멘트 프레임(COMM), URL 프레임(WOAS/WOAF/WXXX), 텍스트 프레임(TENC/TPUB/TXXX). Suno 같은 AI 오디오 플랫폼을 감지합니다(내장 URL과 "made with suno" 코멘트를 통해). + +**WAV 컨테이너 메타데이터 (MEDIUM/LOW 신뢰도)** — RIFF LIST/INFO 청크(ISFT, ICMT, IART)에서 AI 도구 참조를 분석합니다. TTS 특유의 오디오 특성도 표시합니다: 모노 채널 + 비표준 샘플레이트(16kHz, 22050Hz, 24000Hz). + +**EXIF 휴리스틱 (LOW 신뢰도)** — `Software` 태그가 알려진 AI 도구와 일치하고 일반적인 카메라 필드(Make, Model, GPS, 초점 거리)가 없으면 AI 생성일 가능성이 높습니다. 해시 형태의 Artist 태그도 감지합니다. + +**PNG 텍스트 청크 (LOW 신뢰도)** — `tEXt`와 `iTXt` 청크에서 Software, Comment, Description, Source, Author, parameters, prompt 키워드의 AI 도구 참조를 스캔합니다. + +**파일명 패턴 (LOW 신뢰도)** — 파일명을 알려진 AI 도구의 명명 규칙과 대조합니다(예: ElevenLabs 타임스탬프 형식 `ElevenLabs_YYYY-MM-DDTHH_MM_SS_*`, Suno/SoundRaw 접두사, 파일명의 Midjourney/DALL-E). + +**오디오 스펙트럼 분석 (LOW 신뢰도)** — FFT 기반 WAV 오디오 분석: 하드 주파수 컷오프(나이퀴스트 이하에 에너지 집중)와 TTS/AI 합성에 전형적인 비정상적 스펙트럼 평탄도를 감지합니다. 폴백으로 또는 `--deep`으로 실행됩니다. + +**보이지 않는 워터마크 (LOW 신뢰도)** — 픽셀 수준의 DWT-DCT 분석으로 채널 노이즈 비대칭, 채널 간 비트 일치, 웨이블릿 에너지 패턴을 감지합니다. 메타데이터 신호가 발견되지 않으면 자동으로 폴백 실행되거나, `--deep`으로 요청 시 실행됩니다. + +--- + +## 🎯 인식 대상 + +### AI 도구 + +| 카테고리 | 도구 | +|---------|------| +| 이미지 생성 | DALL-E, Midjourney, Stable Diffusion, Adobe Firefly, Imagen, Flux, Ideogram, Leonardo.ai, NovelAI | +| 영상 생성 | Sora, Google Veo, Runway, Pika, Kling, Vidu | +| 오디오/음악 생성 | Suno, Udio, ElevenLabs, SoundRaw, AIVA, Boomy, Mubert, Beatoven, Soundful | +| 멀티모달 | GPT-4o, GPT-4, ChatGPT, OpenAI, GPT Image | +| 플랫폼 | Bing Image Creator, Copilot Designer, Microsoft Designer, Canva AI, DreamStudio, NightCafe, Craiyon, DeepAI, Meta AI, Stability AI | +| 인터페이스 | ComfyUI, Automatic1111 (A1111), InvokeAI, Fooocus | +| 연구 | Glide, Parti, Muse, Seedream, Recraft | + +### 파일 형식 + +| 유형 | 형식 | +|------|------| +| 이미지 | JPEG, PNG, WebP, AVIF, HEIF, TIFF, GIF, BMP | +| 영상 | MP4, MOV, AVI, WebM | +| 오디오 | MP3, M4A, WAV | +| 문서 | PDF | + +--- + +## 💻 명령어 + +### `aic check [경로]` + +파일의 AI 생성 신호를 분석합니다. + +```bash +aic check photo.jpg # 단일 파일 +aic check images/ -r # 디렉토리, 재귀적 +aic check photo.jpg --json # JSON 출력 +aic check photo.jpg -q # 조용히 — 종료 코드만 +aic check photo.jpg --min-confidence medium # 신뢰도로 필터 +aic check photo.jpg --deep # 픽셀 수준 워터마크 분석 강제 +``` + +### `aic info <파일>` + +모든 출처 메타데이터를 출력합니다(C2PA 매니페스트, XMP 속성, EXIF 필드, MP4 아톰, ID3 태그, WAV 메타데이터, 워터마크 분석). + +```bash +aic info photo.jpg +``` + +### 글로벌 옵션 + +| 옵션 | 효과 | +|------|------| +| `--json` | JSON 형식으로 출력 | +| `-q, --quiet` | 출력 억제, 종료 코드만 설정 | +| `--deep` | 모든 파일에 보이지 않는 워터마크 및 오디오 스펙트럼 분석 강제 | +| `--no-color` | 색상 출력 비활성화 | + +### 종료 코드 + +| 코드 | 의미 | +|------|------| +| `0` | AI 신호 감지됨 | +| `1` | AI 신호 없음 | +| `2` | 오류 | + +--- + +## ⚠️ 제한 사항 + +- **메타데이터 제거 = 감지 불가.** 누군가 메타데이터를 제거하면 감지할 것이 없습니다. 소셜 플랫폼은 업로드 시 이 작업을 수행합니다 — 항상 원본 파일을 분석하세요. +- **대부분의 AI 이미지에는 워터마크가 없습니다.** 감지 가능한 출처 마커가 있는 AI 이미지는 약 19%에 불과합니다(2025년 데이터). +- **독점 워터마크는 접근 불가.** SynthID, Stable Signature, VideoSeal에는 우리가 보유하지 않은 키가 필요합니다. +- **픽셀 수준 분석에는 한계가 있습니다.** 내장 DWT-DCT 워터마크 감지기는 일반적인 패턴을 포착하지만 완전한 포렌식 분류기는 아닙니다. 심층 통계적 감지에는 전용 포렌식 도구를 사용하세요. + +--- + +## 📄 라이선스 + +[AGPL-3.0](LICENSE) diff --git a/README.md b/README.md index dd9ffc5..3de98cc 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,18 @@ -> **English** | [简体中文](README.zh-CN.md) +> **English** | [简体中文](README.zh-CN.md) | [Deutsch](README.de.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | [Español](README.es.md) + +
# AICheck +**Detect AI-generated content. Offline. No API keys. No setup.** + +[![CI](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml/badge.svg)](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml) +[![Crates.io](https://img.shields.io/crates/v/aicheck)](https://crates.io/crates/aicheck) +[![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](LICENSE) +[![Rust](https://img.shields.io/badge/rust-1.86%2B-orange.svg)](https://www.rust-lang.org/) + +
+ *That viral image — AI or real?* *Which model generated this video?* *Can you trust this photo's metadata?* @@ -12,19 +23,13 @@ AICheck answers these questions by analyzing file metadata and invisible waterma --- -## Quick Start +## ⚡ Quick Start ```bash cargo install aicheck ``` -Or build from source: - -```bash -cargo install --path . -``` - -> Requires Rust 1.86+ +> Requires Rust 1.86+. Or build from source: `cargo install --path .` ```bash aic check photo.jpg @@ -43,7 +48,7 @@ real_photo.jpg --- -## How It Works +## 🔍 How It Works ``` your file @@ -92,7 +97,7 @@ real_photo.jpg --- -## What It Recognizes +## 🎯 What It Recognizes ### AI Tools @@ -117,7 +122,7 @@ real_photo.jpg --- -## Commands +## 💻 Commands ### `aic check [PATHS]` @@ -159,7 +164,7 @@ aic info photo.jpg --- -## What It Can't Do +## ⚠️ Limitations - **Stripped metadata = invisible.** If someone removes the metadata, there's nothing to detect. Social platforms do this on upload — always analyze the original file. - **Most AI images have no watermark.** Only ~19% of AI images carry detectable provenance markers (2025 data). @@ -168,6 +173,6 @@ aic info photo.jpg --- -## License +## 📄 License -MIT +[AGPL-3.0](LICENSE) diff --git a/README.zh-CN.md b/README.zh-CN.md index 9772b93..7f5c38c 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -1,8 +1,19 @@ -> [English](README.md) | **简体中文** +> [English](README.md) | **简体中文** | [Deutsch](README.de.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | [Español](README.es.md) + +
# AICheck -*那张疯传的图片——是AI还是真的?* +**检测 AI 生成的内容。离线运行。无需 API key。无需配置。** + +[![CI](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml/badge.svg)](https://github.com/MatrixA/aicheck/actions/workflows/ci.yml) +[![Crates.io](https://img.shields.io/crates/v/aicheck)](https://crates.io/crates/aicheck) +[![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](LICENSE) +[![Rust](https://img.shields.io/badge/rust-1.86%2B-orange.svg)](https://www.rust-lang.org/) + +
+ +*那张疯传的图片——是 AI 还是真的?* *这个视频是用哪个模型生成的?* *这张照片的元数据可信吗?* @@ -12,13 +23,13 @@ AICheck 通过分析文件元数据和隐形水印来回答这些问题。不需 --- -## 快速开始 +## ⚡ 快速开始 ```bash -cargo install --path . +cargo install aicheck ``` -> 需要 Rust 1.86+ +> 需要 Rust 1.86+。从源码构建:`cargo install --path .` ```bash aic check photo.jpg @@ -37,7 +48,7 @@ real_photo.jpg --- -## 工作原理 +## 🔍 工作原理 ``` 你的文件 @@ -86,7 +97,7 @@ real_photo.jpg --- -## 识别能力 +## 🎯 识别能力 ### AI 工具 @@ -111,7 +122,7 @@ real_photo.jpg --- -## 命令 +## 💻 命令 ### `aic check [PATHS]` @@ -153,7 +164,7 @@ aic info photo.jpg --- -## 做不到的事 +## ⚠️ 局限性 - **元数据被删了就没辙。** 如果有人把元数据剥掉了,那就没有可检测的内容。社交平台上传时会自动做这件事——请分析原始文件。 - **大多数 AI 图片没有水印。** 仅约 19% 的 AI 图片携带可检测的来源标记(2025 年数据)。 @@ -162,6 +173,6 @@ aic info photo.jpg --- -## 许可证 +## 📄 许可证 -MIT +[AGPL-3.0](LICENSE)