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.0.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.0-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

File details

Details for the file metascrub-0.2.0.tar.gz.

File metadata

  • Download URL: metascrub-0.2.0.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.0.tar.gz
Algorithm Hash digest
SHA256 42e0da513a813235134a64079fa7b5901b74f65d295bfbd528e348509f87cf8e
MD5 15dca93c9a1ef0883b9039fc2cec1741
BLAKE2b-256 20438198c95f0ca1b16a922272a8837b59cc5e791e5bf4f441ceabba9f5f236f

See more details on using hashes here.

File details

Details for the file metascrub-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: metascrub-0.2.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c9f0cdff6a56c45c6a3a66485546a8f79e90cbe8c426509df849a1ececbc2c42
MD5 4cc04a5ef697b4c03e44b038a557c419
BLAKE2b-256 7bdc874df66022f6771c79dec8de823239783f76e1c1d629a5fe0d4b8bcaa81a

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