Skip to main content

Strip AI metadata from images and optionally inject camera EXIF or Canva metadata

Project description

PyPI version Python versions License GitHub

███╗   ███╗███████╗████████╗ █████╗ ███████╗ ██████╗██████╗ ██╗   ██╗██████╗
████╗ ████║██╔════╝╚══██╔══╝██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔══██╗
██╔████╔██║█████╗     ██║   ███████║███████╗██║     ██████╔╝██║   ██║██████╔╝
██║╚██╔╝██║██╔══╝     ██║   ██╔══██║╚════██║██║     ██╔══██╗██║   ██║██╔══██╗
██║ ╚═╝ ██║███████╗   ██║   ██║  ██║███████║╚██████╗██║  ██║╚██████╔╝██████╔╝
╚═╝     ╚═╝╚══════╝   ╚═╝   ╚═╝  ╚═╝╚══════╝ ╚═════╝╚═╝  ╚═╝ ╚═════╝ ╚═════╝

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 b or c at any filename prompt to cancel and return to the previous menu
  • Press Ctrl+C at any prompt to cancel and go back
  • Press q at 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

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

metascrub-0.2.1.tar.gz (35.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

metascrub-0.2.1-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

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

Hashes for metascrub-0.2.1.tar.gz
Algorithm Hash digest
SHA256 c9f22b3e028668929b896204ffaccb8ec997690c28be210c11c288f5f52bdf5b
MD5 89185bbb5d59c7f084eceef91f6b8507
BLAKE2b-256 adad0eb587ea68e4c865befe0947f094bbec1363b67764d33381839faf15b411

See more details on using hashes here.

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

Hashes for metascrub-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 868ff0c7644345fbdc7efa4b4f11c3993aff17d071c5659299a551008096a7ae
MD5 237b562750ef60d45e7354b89466b68e
BLAKE2b-256 f912b6781b74a78b0a9f8cfe3a7e543e43cd7cc1ac5dc13dfd759d8672b3b380

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page