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
cargo install aicheckRequires Rust 1.86+. Or build from source:
cargo install --path .
aic check photo.jpgphoto.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.
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 ]
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.
| 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 |
| Type | Formats |
|---|---|
| Image | JPEG, PNG, WebP, AVIF, HEIF, TIFF, GIF, BMP |
| Video | MP4, MOV, AVI, WebM |
| Audio | MP3, M4A, WAV |
| Document |
Analyze files for AI-generation signals.
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 analysisDump all provenance metadata (C2PA manifests, XMP properties, EXIF fields, MP4 atoms, ID3 tags, WAV metadata, watermark analysis).
aic info photo.jpg| 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 |
| Code | Meaning |
|---|---|
0 |
AI signals detected |
1 |
No AI signals |
2 |
Error |
- 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.
