From 8c9a603f2356bc5762384e5cf84865bc2e88a81c Mon Sep 17 00:00:00 2001 From: fernando_jacob Date: Sat, 21 Mar 2026 12:21:16 +0800 Subject: [PATCH] docs: make Chinese README the default --- README.md | 150 ++++++++++++++++++------------------ docs/README.de.md | 6 +- docs/README.en.md | 180 +++++++++++++++++++++++++++++++++++++++++++ docs/README.es.md | 6 +- docs/README.hi.md | 6 +- docs/README.ja.md | 6 +- docs/README.ko.md | 6 +- docs/README.zh-CN.md | 8 +- 8 files changed, 275 insertions(+), 93 deletions(-) create mode 100644 docs/README.en.md diff --git a/README.md b/README.md index 139d2f5..7eb3e4a 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -> **English** | [简体中文](docs/README.zh-CN.md) | [Deutsch](docs/README.de.md) | [日本語](docs/README.ja.md) | [한국어](docs/README.ko.md) | [हिन्दी](docs/README.hi.md) | [Español](docs/README.es.md) +> [English](docs/README.en.md) | **简体中文** | [Deutsch](docs/README.de.md) | [日本語](docs/README.ja.md) | [한국어](docs/README.ko.md) | [हिन्दी](docs/README.hi.md) | [Español](docs/README.es.md)
# AICheck -**Detect AI-generated content. Offline. No API keys. No setup.** +**检测 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) @@ -13,25 +13,25 @@
-*That viral image — AI or real?* -*Which model generated this video?* -*Can you trust this photo's metadata?* +*那张疯传的图片——是 AI 还是真的?* +*这个视频是用哪个模型生成的?* +*这张照片的元数据可信吗?* -AICheck answers these questions by analyzing file metadata and invisible watermarks. No API keys, no network, no setup. +AICheck 通过分析文件元数据和隐形水印来回答这些问题。不需要 API key,不需要联网,不需要配置。 -**10 detection methods** · **61 AI tools** · **16 file formats** · **3 confidence tiers** · **Zero network requests** +**10 种检测方法** · **61 种 AI 工具** · **16 种文件格式** · **3 级置信度** · **完全离线运行** -[![Demo Video](https://img.youtube.com/vi/1u-6TkHtWiA/maxresdefault.jpg)](https://youtu.be/1u-6TkHtWiA) +[![演示视频(Bilibili)](https://img.youtube.com/vi/1u-6TkHtWiA/maxresdefault.jpg)](https://www.bilibili.com/video/BV16Mc6zAE1s) --- -## ⚡ Quick Start +## ⚡ 快速开始 ```bash cargo install aicheck ``` -> Requires [Rust 1.86+](https://rust-lang.org/tools/install/). Or build from source: `cargo install --path .` +> 需要 [Rust 1.86+](https://rust-lang.org/tools/install/)。从源码构建:`cargo install --path .` ```bash aic check photo.jpg @@ -50,131 +50,131 @@ real_photo.jpg --- -## 🔍 How It Works +## 🔍 工作原理 ``` - your file + 你的文件 | +------+------+------+------+------+------+------+ | | | | | | | | v v v v v v v v - [C2PA] [XMP] [EXIF] [PNG] [MP4] [ID3] [WAV] [FILE] + [C2PA] [XMP] [EXIF] [PNG] [MP4] [ID3] [WAV] [文件名] HIGH MEDIUM LOW LOW MEDIUM MEDIUM MEDIUM LOW | | | | | | | | +--+---+--+---+--+---+--+---+--+---+--+---+--+---+ | | v v - metadata signals found? no signals? + 检测到元数据信号? 没有信号? | | v v - [ Verdict ] [ Invisible Watermark / Audio Spectral ] - DWT-DCT or FFT analysis - confidence: LOW + [ 判定 ] [ 隐形水印 / 音频频谱分析 ] + DWT-DCT 或 FFT 分析 + 置信度: LOW | v - [ Verdict ] + [ 判定 ] ``` -### Detection Methods +### 检测方法 -**C2PA Manifests (HIGH confidence)** — Cryptographically signed provenance. If a C2PA manifest says "made by DALL-E," that's the most authoritative signal metadata can provide. Reads `digitalSourceType` and `claim_generator`. Works on images, videos, and audio (e.g. ElevenLabs). +**C2PA 清单(HIGH 置信度)**— 经过加密签名的来源证明。如果 C2PA 清单写着「由 DALL-E 生成」,这就是元数据能提供的最权威证据。读取 `digitalSourceType` 和 `claim_generator` 字段。支持图片、视频和音频(如 ElevenLabs)。 -**XMP/IPTC Metadata (MEDIUM confidence)** — Standard photo metadata: `DigitalSourceType`, `AISystemUsed`, `AIPromptInformation`, `CreatorTool`. Reliable but unsigned — can be faked or stripped. +**XMP/IPTC 元数据(MEDIUM 置信度)**— 标准照片元数据:`DigitalSourceType`、`AISystemUsed`、`AIPromptInformation`、`CreatorTool`。可靠但没有签名——可以伪造或删除。 -**MP4 Container Metadata (MEDIUM confidence)** — Parses iTunes-style atoms (`©too`, `©swr`), AIGC labels (China standard with JSON `ProduceID`), and H.264 SEI watermark markers (Kling, Sora, Runway, Pika, Luma, Hailuo, Pixverse, Vidu, Genmo, Haiper). Also detects non-AI creation software (FFmpeg, Remotion, Premiere, etc.) for informational display. Catches AI signals baked into video containers that other methods miss. +**MP4 容器元数据(MEDIUM 置信度)**— 解析 iTunes 风格原子(`©too`、`©swr`)、AIGC 标签(中国标准,含 JSON `ProduceID`)和 H.264 SEI 水印标记(Kling、Sora、Runway、Pika、Luma、Hailuo、Pixverse、Vidu、Genmo、Haiper)。同时检测非 AI 创作软件(FFmpeg、Remotion、Premiere 等)作为信息展示。能捕获嵌入视频容器中的 AI 信号。 -**ID3 Audio Metadata (MEDIUM confidence)** — Reads ID3v2 tags from MP3 files: comment frames (COMM), URL frames (WOAS/WOAF/WXXX), and text frames (TENC/TPUB/TXXX). Detects AI audio platforms like Suno (via embedded URLs and "made with suno" comments). +**ID3 音频元数据(MEDIUM 置信度)**— 读取 MP3 文件的 ID3v2 标签:注释帧(COMM)、URL 帧(WOAS/WOAF/WXXX)和文本帧(TENC/TPUB/TXXX)。可检测 Suno 等 AI 音频平台(通过嵌入的 URL 和「made with suno」注释)。 -**WAV Container Metadata (MEDIUM/LOW confidence)** — Parses RIFF LIST/INFO chunks (ISFT, ICMT, IART) for AI tool references. Also flags TTS-typical audio characteristics: mono channel + non-standard sample rates (16kHz, 22050Hz, 24000Hz). +**WAV 容器元数据(MEDIUM/LOW 置信度)**— 解析 RIFF LIST/INFO 块(ISFT、ICMT、IART)中的 AI 工具引用。同时标记 TTS 典型音频特征:单声道 + 非标准采样率(16kHz、22050Hz、24000Hz)。 -**EXIF Heuristics (LOW confidence)** — If the `Software` tag matches a known AI tool AND typical camera fields (Make, Model, GPS, focal length) are absent, it's likely AI-generated. Also detects hash-like Artist tags. +**EXIF 启发式(LOW 置信度)**— 如果 `Software` 标签匹配已知 AI 工具,且缺少典型的相机字段(Make、Model、GPS、焦距),那大概率是 AI 生成的。也能检测哈希式的 Artist 标签。 -**PNG Text Chunks (LOW confidence)** — Scans `tEXt` and `iTXt` chunks for AI tool references in Software, Comment, Description, Source, Author, parameters, and prompt keywords. +**PNG 文本块(LOW 置信度)**— 扫描 `tEXt` 和 `iTXt` 块中 Software、Comment、Description、Source、Author、parameters、prompt 等关键字里的 AI 工具引用。 -**Filename Patterns (LOW confidence)** — Matches filenames against known AI tool naming conventions (e.g. ElevenLabs timestamp format `ElevenLabs_YYYY-MM-DDTHH_MM_SS_*`, Suno/SoundRaw prefixes, Midjourney/DALL-E in filenames). +**文件名模式(LOW 置信度)**— 将文件名与已知 AI 工具的命名规则匹配(如 ElevenLabs 的时间戳格式 `ElevenLabs_YYYY-MM-DDTHH_MM_SS_*`、Suno/SoundRaw 前缀、文件名中的 Midjourney/DALL-E)。 -**Audio Spectral Analysis (LOW confidence)** — FFT-based analysis of WAV audio: detects hard frequency cutoffs (energy concentrated below Nyquist) and abnormal spectral flatness typical of TTS/AI synthesis. Runs as a fallback or with `--deep`. +**音频频谱分析(LOW 置信度)**— 基于 FFT 的 WAV 音频分析:检测硬频率截断(能量集中在奈奎斯特频率以下)和异常的频谱平坦度,这些是 TTS/AI 合成的典型特征。作为后备方案自动运行,或通过 `--deep` 强制启用。 -**Invisible Watermarks (LOW confidence)** — Pixel-level DWT-DCT analysis that detects channel noise asymmetry, cross-channel bit agreement, and wavelet energy patterns. For videos, automatically extracts keyframes via `ffmpeg` and analyzes them individually. Runs automatically as a fallback when no metadata signals are found, or on demand with `--deep`. +**隐形水印(LOW 置信度)**— 像素级 DWT-DCT 分析,检测通道噪声不对称性、跨通道比特一致性和小波能量模式。对于视频文件,自动通过 `ffmpeg` 提取关键帧并逐帧分析。当未检测到元数据信号时自动运行,也可通过 `--deep` 强制启用。 --- -## 🎯 What It Recognizes +## 🎯 识别能力 -### AI Tools +### AI 工具 -| Category | Tools | -|----------|-------| -| Image generation | DALL-E, Midjourney, Stable Diffusion, Adobe Firefly, Imagen, Flux, Ideogram, Leonardo.ai, NovelAI, Grok, Jimeng (即梦) | -| Video generation | Sora, Google Veo, Runway, Pika, Kling, Vidu, Luma, Hailuo (海螺), Pixverse, Genmo, Haiper | -| Audio/Music generation | Suno, Udio, ElevenLabs, SoundRaw, AIVA, Boomy, Mubert, Beatoven, Soundful, Hume, Fish Audio | -| Multimodal | GPT-4o, GPT-4, ChatGPT, OpenAI, GPT Image, Gemini | -| Platforms | Bing Image Creator, Copilot Designer, Microsoft Designer, Canva AI, DreamStudio, NightCafe, Craiyon, DeepAI, Meta AI, Stability AI | -| Interfaces | ComfyUI, Automatic1111 (A1111), InvokeAI, Fooocus | -| Research | Glide, Parti, Muse, Seedream, Recraft | +| 类别 | 工具 | +|------|------| +| 图像生成 | DALL-E, Midjourney, Stable Diffusion, Adobe Firefly, Imagen, Flux, Ideogram, Leonardo.ai, NovelAI, Grok, Jimeng (即梦) | +| 视频生成 | Sora, Google Veo, Runway, Pika, Kling, Vidu, Luma, Hailuo (海螺), Pixverse, Genmo, Haiper | +| 音频/音乐生成 | Suno, Udio, ElevenLabs, SoundRaw, AIVA, Boomy, Mubert, Beatoven, Soundful, Hume, Fish Audio | +| 多模态 | GPT-4o, GPT-4, ChatGPT, OpenAI, GPT Image, Gemini | +| 平台 | 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 | -### File Formats +### 文件格式 -| Type | Formats | -|------|---------| -| Image | JPEG, PNG, WebP, AVIF, HEIF, TIFF, GIF, BMP | -| Video | MP4, MOV, AVI, WebM | -| Audio | MP3, M4A, WAV | -| Document | PDF | +| 类型 | 格式 | +|------|------| +| 图片 | JPEG, PNG, WebP, AVIF, HEIF, TIFF, GIF, BMP | +| 视频 | MP4, MOV, AVI, WebM | +| 音频 | MP3, M4A, WAV | +| 文档 | PDF | --- -## 💻 Commands +## 💻 命令 ### `aic check [PATHS]` -Analyze files for AI-generation signals. +分析文件中的 AI 生成信号。 ```bash -aic check photo.jpg # single file -aic check images/ -r # directory, recursive -aic check photo.jpg --json # JSON output -aic check photo.jpg -q # quiet — exit code only -aic check photo.jpg --min-confidence medium # filter by confidence -aic check photo.jpg --deep # force pixel-level watermark analysis +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 ` -Dump all provenance metadata (C2PA manifests, XMP properties, EXIF fields, MP4 atoms, ID3 tags, WAV metadata, watermark analysis). +输出所有溯源元数据(C2PA 清单、XMP 属性、EXIF 字段、MP4 原子、ID3 标签、WAV 元数据、水印分析)。 ```bash aic info photo.jpg ``` -### Global Flags +### 全局选项 -| Flag | Effect | -|------|--------| -| `--json` | Output as JSON | -| `-q, --quiet` | Suppress output, set exit code only | -| `--deep` | Force invisible watermark and audio spectral analysis on all files | -| `--no-color` | Disable colored output | +| 选项 | 说明 | +|------|------| +| `--json` | 以 JSON 格式输出 | +| `-q, --quiet` | 不输出内容,仅设置退出码 | +| `--deep` | 强制对所有文件进行隐形水印和音频频谱分析 | +| `--no-color` | 禁用彩色输出 | -### Exit Codes +### 退出码 -| Code | Meaning | -|------|---------| -| `0` | AI signals detected | -| `1` | No AI signals | -| `2` | Error | +| 退出码 | 含义 | +|--------|------| +| `0` | 检测到 AI 信号 | +| `1` | 未检测到 AI 信号 | +| `2` | 错误 | --- -## ⚠️ 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). -- **Proprietary watermarks are out of reach.** SynthID, Stable Signature, and VideoSeal require keys we don't have. -- **Pixel-level analysis has limits.** The built-in DWT-DCT watermark detector catches common patterns but is not a full forensic classifier. For deep statistical detection, use dedicated forensic tools. +- **元数据被删了就没辙。** 如果有人把元数据剥掉了,那就没有可检测的内容。社交平台上传时会自动做这件事——请分析原始文件。 +- **大多数 AI 图片没有水印。** 仅约 19% 的 AI 图片携带可检测的来源标记(2025 年数据)。 +- **专有水印无法识别。** SynthID、Stable Signature、VideoSeal 需要我们没有的密钥。 +- **像素级分析有局限。** 内置的 DWT-DCT 水印检测器能捕获常见模式,但不是完整的取证分类器。深度统计检测请使用专业取证工具。 --- -## 📄 License +## 📄 许可证 [AGPL-3.0](LICENSE) diff --git a/docs/README.de.md b/docs/README.de.md index 615d546..f6d4849 100644 --- a/docs/README.de.md +++ b/docs/README.de.md @@ -1,4 +1,4 @@ -> [English](../README.md) | [简体中文](README.zh-CN.md) | **Deutsch** | [日本語](README.ja.md) | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | [Español](README.es.md) +> [English](README.en.md) | [简体中文](../README.md) | **Deutsch** | [日本語](README.ja.md) | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | [Español](README.es.md)
@@ -8,7 +8,7 @@ [![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) +[![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/)
@@ -175,4 +175,4 @@ aic info photo.jpg ## 📄 Lizenz -[AGPL-3.0](LICENSE) +[AGPL-3.0](../LICENSE) diff --git a/docs/README.en.md b/docs/README.en.md new file mode 100644 index 0000000..35865ff --- /dev/null +++ b/docs/README.en.md @@ -0,0 +1,180 @@ +> **English** | [简体中文](../README.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?* + +AICheck answers these questions by analyzing file metadata and invisible watermarks. No API keys, no network, no setup. + +**10 detection methods** · **61 AI tools** · **16 file formats** · **3 confidence tiers** · **Zero network requests** + +[![Demo Video](https://img.youtube.com/vi/1u-6TkHtWiA/maxresdefault.jpg)](https://youtu.be/1u-6TkHtWiA) + +--- + +## ⚡ Quick Start + +```bash +cargo install aicheck +``` + +> Requires [Rust 1.86+](https://rust-lang.org/tools/install/). Or build from source: `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. +``` + +--- + +## 🔍 How It Works + +``` + your file + | + +------+------+------+------+------+------+------+ + | | | | | | | | + v v v v v v v v + [C2PA] [XMP] [EXIF] [PNG] [MP4] [ID3] [WAV] [FILE] + HIGH MEDIUM LOW LOW MEDIUM MEDIUM MEDIUM LOW + | | | | | | | | + +--+---+--+---+--+---+--+---+--+---+--+---+--+---+ + | | + v v + metadata signals found? no signals? + | | + v v + [ Verdict ] [ Invisible Watermark / Audio Spectral ] + DWT-DCT or FFT analysis + confidence: LOW + | + v + [ Verdict ] +``` + +### Detection Methods + +**C2PA Manifests (HIGH confidence)** — Cryptographically signed provenance. If a C2PA manifest says "made by DALL-E," that's the most authoritative signal metadata can provide. Reads `digitalSourceType` and `claim_generator`. Works on images, videos, and audio (e.g. ElevenLabs). + +**XMP/IPTC Metadata (MEDIUM confidence)** — Standard photo metadata: `DigitalSourceType`, `AISystemUsed`, `AIPromptInformation`, `CreatorTool`. Reliable but unsigned — can be faked or stripped. + +**MP4 Container Metadata (MEDIUM confidence)** — Parses iTunes-style atoms (`©too`, `©swr`), AIGC labels (China standard with JSON `ProduceID`), and H.264 SEI watermark markers (Kling, Sora, Runway, Pika, Luma, Hailuo, Pixverse, Vidu, Genmo, Haiper). Also detects non-AI creation software (FFmpeg, Remotion, Premiere, etc.) for informational display. Catches AI signals baked into video containers that other methods miss. + +**ID3 Audio Metadata (MEDIUM confidence)** — Reads ID3v2 tags from MP3 files: comment frames (COMM), URL frames (WOAS/WOAF/WXXX), and text frames (TENC/TPUB/TXXX). Detects AI audio platforms like Suno (via embedded URLs and "made with suno" comments). + +**WAV Container Metadata (MEDIUM/LOW confidence)** — Parses RIFF LIST/INFO chunks (ISFT, ICMT, IART) for AI tool references. Also flags TTS-typical audio characteristics: mono channel + non-standard sample rates (16kHz, 22050Hz, 24000Hz). + +**EXIF Heuristics (LOW confidence)** — If the `Software` tag matches a known AI tool AND typical camera fields (Make, Model, GPS, focal length) are absent, it's likely AI-generated. Also detects hash-like Artist tags. + +**PNG Text Chunks (LOW confidence)** — Scans `tEXt` and `iTXt` chunks for AI tool references in Software, Comment, Description, Source, Author, parameters, and prompt keywords. + +**Filename Patterns (LOW confidence)** — Matches filenames against known AI tool naming conventions (e.g. ElevenLabs timestamp format `ElevenLabs_YYYY-MM-DDTHH_MM_SS_*`, Suno/SoundRaw prefixes, Midjourney/DALL-E in filenames). + +**Audio Spectral Analysis (LOW confidence)** — FFT-based analysis of WAV audio: detects hard frequency cutoffs (energy concentrated below Nyquist) and abnormal spectral flatness typical of TTS/AI synthesis. Runs as a fallback or with `--deep`. + +**Invisible Watermarks (LOW confidence)** — Pixel-level DWT-DCT analysis that detects channel noise asymmetry, cross-channel bit agreement, and wavelet energy patterns. For videos, automatically extracts keyframes via `ffmpeg` and analyzes them individually. Runs automatically as a fallback when no metadata signals are found, or on demand with `--deep`. + +--- + +## 🎯 What It Recognizes + +### AI Tools + +| Category | Tools | +|----------|-------| +| Image generation | DALL-E, Midjourney, Stable Diffusion, Adobe Firefly, Imagen, Flux, Ideogram, Leonardo.ai, NovelAI, Grok, Jimeng (即梦) | +| Video generation | Sora, Google Veo, Runway, Pika, Kling, Vidu, Luma, Hailuo (海螺), Pixverse, Genmo, Haiper | +| Audio/Music generation | Suno, Udio, ElevenLabs, SoundRaw, AIVA, Boomy, Mubert, Beatoven, Soundful, Hume, Fish Audio | +| Multimodal | GPT-4o, GPT-4, ChatGPT, OpenAI, GPT Image, Gemini | +| Platforms | Bing Image Creator, Copilot Designer, Microsoft Designer, Canva AI, DreamStudio, NightCafe, Craiyon, DeepAI, Meta AI, Stability AI | +| Interfaces | ComfyUI, Automatic1111 (A1111), InvokeAI, Fooocus | +| Research | Glide, Parti, Muse, Seedream, Recraft | + +### File Formats + +| Type | Formats | +|------|---------| +| Image | JPEG, PNG, WebP, AVIF, HEIF, TIFF, GIF, BMP | +| Video | MP4, MOV, AVI, WebM | +| Audio | MP3, M4A, WAV | +| Document | PDF | + +--- + +## 💻 Commands + +### `aic check [PATHS]` + +Analyze files for AI-generation signals. + +```bash +aic check photo.jpg # single file +aic check images/ -r # directory, recursive +aic check photo.jpg --json # JSON output +aic check photo.jpg -q # quiet — exit code only +aic check photo.jpg --min-confidence medium # filter by confidence +aic check photo.jpg --deep # force pixel-level watermark analysis +``` + +### `aic info ` + +Dump all provenance metadata (C2PA manifests, XMP properties, EXIF fields, MP4 atoms, ID3 tags, WAV metadata, watermark analysis). + +```bash +aic info photo.jpg +``` + +### Global Flags + +| Flag | Effect | +|------|--------| +| `--json` | Output as JSON | +| `-q, --quiet` | Suppress output, set exit code only | +| `--deep` | Force invisible watermark and audio spectral analysis on all files | +| `--no-color` | Disable colored output | + +### Exit Codes + +| Code | Meaning | +|------|---------| +| `0` | AI signals detected | +| `1` | No AI signals | +| `2` | Error | + +--- + +## ⚠️ 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). +- **Proprietary watermarks are out of reach.** SynthID, Stable Signature, and VideoSeal require keys we don't have. +- **Pixel-level analysis has limits.** The built-in DWT-DCT watermark detector catches common patterns but is not a full forensic classifier. For deep statistical detection, use dedicated forensic tools. + +--- + +## 📄 License + +[AGPL-3.0](../LICENSE) diff --git a/docs/README.es.md b/docs/README.es.md index 8e4dbb9..79b1189 100644 --- a/docs/README.es.md +++ b/docs/README.es.md @@ -1,4 +1,4 @@ -> [English](../README.md) | [简体中文](README.zh-CN.md) | [Deutsch](README.de.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | **Español** +> [English](README.en.md) | [简体中文](../README.md) | [Deutsch](README.de.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | **Español**
@@ -8,7 +8,7 @@ [![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) +[![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/)
@@ -175,4 +175,4 @@ aic info photo.jpg ## 📄 Licencia -[AGPL-3.0](LICENSE) +[AGPL-3.0](../LICENSE) diff --git a/docs/README.hi.md b/docs/README.hi.md index 85d49b0..92c6782 100644 --- a/docs/README.hi.md +++ b/docs/README.hi.md @@ -1,4 +1,4 @@ -> [English](../README.md) | [简体中文](README.zh-CN.md) | [Deutsch](README.de.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | **हिन्दी** | [Español](README.es.md) +> [English](README.en.md) | [简体中文](../README.md) | [Deutsch](README.de.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | **हिन्दी** | [Español](README.es.md)
@@ -8,7 +8,7 @@ [![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) +[![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/)
@@ -175,4 +175,4 @@ aic info photo.jpg ## 📄 लाइसेंस -[AGPL-3.0](LICENSE) +[AGPL-3.0](../LICENSE) diff --git a/docs/README.ja.md b/docs/README.ja.md index a218157..8fbc36d 100644 --- a/docs/README.ja.md +++ b/docs/README.ja.md @@ -1,4 +1,4 @@ -> [English](../README.md) | [简体中文](README.zh-CN.md) | [Deutsch](README.de.md) | **日本語** | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | [Español](README.es.md) +> [English](README.en.md) | [简体中文](../README.md) | [Deutsch](README.de.md) | **日本語** | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | [Español](README.es.md)
@@ -8,7 +8,7 @@ [![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) +[![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/)
@@ -175,4 +175,4 @@ aic info photo.jpg ## 📄 ライセンス -[AGPL-3.0](LICENSE) +[AGPL-3.0](../LICENSE) diff --git a/docs/README.ko.md b/docs/README.ko.md index 10cc347..aceb465 100644 --- a/docs/README.ko.md +++ b/docs/README.ko.md @@ -1,4 +1,4 @@ -> [English](../README.md) | [简体中文](README.zh-CN.md) | [Deutsch](README.de.md) | [日本語](README.ja.md) | **한국어** | [हिन्दी](README.hi.md) | [Español](README.es.md) +> [English](README.en.md) | [简体中文](../README.md) | [Deutsch](README.de.md) | [日本語](README.ja.md) | **한국어** | [हिन्दी](README.hi.md) | [Español](README.es.md)
@@ -8,7 +8,7 @@ [![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) +[![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/)
@@ -175,4 +175,4 @@ aic info photo.jpg ## 📄 라이선스 -[AGPL-3.0](LICENSE) +[AGPL-3.0](../LICENSE) diff --git a/docs/README.zh-CN.md b/docs/README.zh-CN.md index 8721a75..54c5fb4 100644 --- a/docs/README.zh-CN.md +++ b/docs/README.zh-CN.md @@ -1,4 +1,4 @@ -> [English](../README.md) | **简体中文** | [Deutsch](README.de.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | [Español](README.es.md) +> [English](README.en.md) | **简体中文** | [Deutsch](README.de.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [हिन्दी](README.hi.md) | [Español](README.es.md)
@@ -8,7 +8,7 @@ [![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) +[![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/)
@@ -21,6 +21,8 @@ AICheck 通过分析文件元数据和隐形水印来回答这些问题。不需 **10 种检测方法** · **61 种 AI 工具** · **16 种文件格式** · **3 级置信度** · **完全离线运行** +[![演示视频(Bilibili)](https://img.youtube.com/vi/1u-6TkHtWiA/maxresdefault.jpg)](https://www.bilibili.com/video/BV16Mc6zAE1s) + --- ## ⚡ 快速开始 @@ -175,4 +177,4 @@ aic info photo.jpg ## 📄 许可证 -[AGPL-3.0](LICENSE) +[AGPL-3.0](../LICENSE)