Strip AI metadata from images and optionally inject camera EXIF or Canva metadata
Project description
███╗ ███╗███████╗████████╗ █████╗ ███████╗ ██████╗██████╗ ██╗ ██╗██████╗
████╗ ████║██╔════╝╚══██╔══╝██╔══██╗██╔════╝██╔════╝██╔══██╗██║ ██║██╔══██╗
██╔████╔██║█████╗ ██║ ███████║███████╗██║ ██████╔╝██║ ██║██████╔╝
██║╚██╔╝██║██╔══╝ ██║ ██╔══██║╚════██║██║ ██╔══██╗██║ ██║██╔══██╗
██║ ╚═╝ ██║███████╗ ██║ ██║ ██║███████║╚██████╗██║ ██║╚██████╔╝██████╔╝
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝
Strip AI metadata from images — ChatGPT, DALL-E, Midjourney, Stable Diffusion, ComfyUI, Adobe Firefly, and more. Optionally inject realistic camera EXIF or design-app metadata.
📦 Installation
pip install metascrub
After installation, the mtsb command is available globally from any terminal.
To update:
pip install --upgrade metascrub
🚀 Quick Start
# Check if an image is AI-generated
mtsb status image.png
# Strip all AI metadata
mtsb clean image.png
# Strip + inject realistic camera EXIF
mtsb clean image.png --organic
# Strip + inject design-app metadata
mtsb clean image.png --design
📋 Commands
| Command | Description |
|---|---|
scan |
Scan folder interactively — pick images to process |
info |
Show ALL metadata for an image (full details) |
status |
Quick check: is this image AI-generated? |
clean |
Strip AI metadata and save to output folder |
💻 Usage
# Interactive scan — shows numbered table, pick an image, then choose action
mtsb scan
# Show ALL metadata (50+ fields: AI, C2PA manifest, EXIF, PNG chunks, etc.)
mtsb info image.png
# Quick check — AI or not?
mtsb status image.png
# Strip AI metadata — always saves to output/ folder
mtsb clean image.png
# Clean with custom output name
mtsb clean image.png -n my_clean_image
# Clean + inject realistic camera EXIF
mtsb clean image.png --organic
# Clean + inject design-app metadata (Photoshop/Procreate style)
mtsb clean image.png --design
⌨️ Interactive Scan Flow
> mtsb scan
# │ File │ AI? │ Tool
───┼──────────────────────┼──────┼─────────────
1 │ ChatGPT ...png │ YES │ ChatGPT (OpenAI)
2 │ DSC00065.jpg │ NO │ —
3 │ ai_art.png │ YES │ Midjourney
Select # (or 'a' all, 'q' quit): 1
── image.png ──
[1] Info — show ALL metadata
[2] Clean — strip AI metadata → output/ folder
[3] Data Manipulate
[A] Auto Organic — inject realistic camera EXIF
[C] Custom Edit — type all fields (make, model, GPS, etc.)
[D] Add Design App — Photoshop/Procreate/Canva style
[4] Back to scan results
[5] Exit
Navigation tips:
- Type
borcat any filename prompt to cancel and return to the previous menu - Press
Ctrl+Cat any prompt to cancel and go back - Press
qat the scan selection to exit entirely
✨ Features
🔍 Deep C2PA Manifest Parsing
Images from ChatGPT, DALL-E, Adobe Firefly, and other C2PA-compliant tools embed a signed manifest. mtsb info extracts and displays:
- Software agent (e.g.
gpt-image→ "ChatGPT (OpenAI)") - Claim generator (e.g.
OpenAI Media Service API) - Actions (created, converted, watermarked)
- Timestamps, certificates, signatures, and more
🎯 Accurate AI Tool Detection
| Tool | Detected As |
|---|---|
| ChatGPT / DALL-E | ChatGPT (OpenAI) |
| Midjourney | Midjourney |
| Stable Diffusion (A1111) | Stable Diffusion (A1111) |
| ComfyUI | ComfyUI |
| Adobe Firefly | Adobe Firefly |
| Canva | Not AI — treated as human editing app |
🛠️ Data Manipulation
- Auto Organic — Random realistic camera profile (Canon, Nikon, Sony, Fujifilm, etc.) with matching shooting settings
- Custom Edit — Manually type every EXIF field: make, model, lens, ISO, aperture, shutter speed, GPS, description, artist, copyright
- Design App — Inject metadata mimicking Photoshop, Procreate, Clip Studio Paint, Krita, GIMP, Canva, etc.
🖼️ Supported Formats
| Format | Details |
|---|---|
| PNG | C2PA, text chunks, and EXIF |
| JPEG / JPG | Full EXIF + XMP metadata |
| WebP | Metadata support |
📄 License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file metascrub-0.2.1.tar.gz.
File metadata
- Download URL: metascrub-0.2.1.tar.gz
- Upload date:
- Size: 35.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9f22b3e028668929b896204ffaccb8ec997690c28be210c11c288f5f52bdf5b
|
|
| MD5 |
89185bbb5d59c7f084eceef91f6b8507
|
|
| BLAKE2b-256 |
adad0eb587ea68e4c865befe0947f094bbec1363b67764d33381839faf15b411
|
File details
Details for the file metascrub-0.2.1-py3-none-any.whl.
File metadata
- Download URL: metascrub-0.2.1-py3-none-any.whl
- Upload date:
- Size: 33.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
868ff0c7644345fbdc7efa4b4f11c3993aff17d071c5659299a551008096a7ae
|
|
| MD5 |
237b562750ef60d45e7354b89466b68e
|
|
| BLAKE2b-256 |
f912b6781b74a78b0a9f8cfe3a7e543e43cd7cc1ac5dc13dfd759d8672b3b380
|