| name | deai-image |
| description | Detect and remove AI fingerprints from AI-generated images. Strip metadata, add film grain, recompress, and bypass AI image detectors. Works with Midjourney, DALL-E, Stable Diffusion, Flux output. |
| allowed-tools | ["Read","Write","Edit","exec"] |
AI Image De-Fingerprinting Skill
Comprehensive CLI for removing AI detection patterns from AI-generated images. Transforms detectable AI images into human-camera-like photographs using multiple processing techniques.
Supported Models: Midjourney, DALL-E 3, Stable Diffusion, Flux, Firefly, Leonardo, and more.
Quick Start
python scripts/deai.py input.png
python scripts/deai.py input.png -o output.jpg
python scripts/deai.py input.png --strength heavy
python scripts/deai.py input.png --no-metadata
python scripts/deai.py input_dir/ --batch
bash scripts/deai.sh input.png output.jpg
How It Works
AI-generated images contain multiple detection layers:
Detection Vectors
- Metadata: EXIF tags revealing generation tool, C2PA watermarks
- Frequency Domain: DCT coefficient patterns unique to diffusion models
- Pixel Patterns: Over-smoothness, unnatural noise distribution
- Visual Features: Perfect lighting, repetitive textures
Processing Pipeline
Our de-fingerprinting pipeline applies 7 transformation stages:
Input → Metadata Strip → Grain Addition → Color Adjustment →
Blur/Sharpen → Resize Cycle → JPEG Recompress → Final Metadata Clean → Output
Stage Details
| Stage | Purpose | Technique |
|---|
| Metadata Strip | Remove EXIF/C2PA/JUMBF tags | ExifTool |
| Grain Addition | Add camera sensor noise | Poisson/Gaussian noise overlay |
| Color Adjustment | Break color distribution patterns | Contrast/saturation/brightness tweak |
| Blur/Sharpen | Disrupt edge detection patterns | Gaussian blur + unsharp mask |
| Resize Cycle | Introduce resampling artifacts | Downscale → upscale with Lanczos |
| JPEG Recompress | Add compression artifacts | Quality 75 → 95 cycle |
| Final Clean | Ensure no metadata leakage | ExifTool re-run |
Processing Strength
Choose strength based on detection risk vs quality tradeoff:
| Strength | Description | Success Rate | Quality Loss |
|---|
light | Minimal processing, preserve quality | 35-45% | Very low |
medium | Balanced (default) | 50-65% | Low |
heavy | Aggressive processing | 65-80% | Medium |
Success rate = percentage of images passing common AI detectors (Hive, Illuminarty, AI or Not)
Usage Examples
Single Image Processing
python scripts/deai.py ai_portrait.png
python scripts/deai.py artwork.png --strength light -o clean_artwork.jpg
python scripts/deai.py midjourney_out.png --strength heavy
Batch Processing
python scripts/deai.py ./ai_images/ --batch -o ./cleaned/
python scripts/deai.py ./gallery/*.png --batch --strength heavy
Metadata-Only Mode
python scripts/deai.py image.jpg --no-metadata
Using Bash Version
bash scripts/deai.sh input.png output.jpg
bash scripts/deai.sh input.png output.jpg heavy
Dependencies
Required
- ImageMagick (7.0+) — Image processing engine
- ExifTool — Metadata manipulation
- Python 3.7+ (for deai.py)
- Pillow (Python imaging library)
- NumPy (for deai.py)
Check Installation
bash scripts/check_deps.sh
This will verify all dependencies and provide installation commands if missing.
Manual Installation
Debian/Ubuntu:
sudo apt update
sudo apt install -y imagemagick libimage-exiftool-perl python3 python3-pip
pip3 install Pillow numpy
macOS:
brew install imagemagick exiftool python3
pip3 install Pillow numpy
Fedora/RHEL:
sudo dnf install -y ImageMagick perl-Image-ExifTool python3-pip
pip3 install Pillow numpy
Command Reference
deai.py (Python Version)
python scripts/deai.py <input> [options]
Arguments:
input Input image file or directory (batch mode)
Options:
-o, --output FILE Output file path (default: input_deai.jpg)
--strength LEVEL Processing strength: light|medium|heavy (default: medium)
--no-metadata Only strip metadata, skip image processing
--batch Process entire directory
-q, --quiet Suppress progress output
-v, --verbose Show detailed processing steps
Examples:
python scripts/deai.py image.png
python scripts/deai.py image.png -o clean.jpg --strength heavy
python scripts/deai.py folder/ --batch
deai.sh (Bash Version)
bash scripts/deai.sh <input> <output> [strength]
Arguments:
input Input image file
output Output file path
strength light|medium|heavy (default: medium)
Examples:
bash scripts/deai.sh input.png output.jpg
bash scripts/deai.sh input.png output.jpg heavy
Understanding Detection
Common AI Detectors
| Detector | Method | Bypass Rate |
|---|
| Hive Moderation | Deep learning model | 50-70% (medium) |
| Illuminarty | Computer vision analysis | 60-75% (medium) |
| AI or Not | Binary classification | 55-70% (medium) |
| SynthID | Pixel-level watermark | 35-50% (heavy) |
| C2PA Verify | Metadata check | 100% (metadata strip) |
What This Skill Cannot Do
❌ Not a Silver Bullet:
- Cannot guarantee 100% bypass of all detectors
- Advanced detectors (SynthID) require more aggressive processing
- New detection methods may emerge
❌ Limitations:
- Processing reduces image quality (tradeoff necessary)
- Some detectors use multiple layers (metadata + pixel + frequency)
- Extremely aggressive processing may introduce visible artifacts
✅ What It DOES Do:
- Significantly reduces detection probability (40-80%)
- Removes metadata watermarks (100% effective)
- Maintains reasonable visual quality
- Batch processes entire collections
Verification Workflow
-
Process Image:
python scripts/deai.py ai_image.png -o clean.jpg --strength medium
-
Test on Multiple Detectors:
-
If Still Detected:
- Increase strength:
--strength heavy
- Try multiple passes
- Manual touch-ups (add slight noise in photo editor)
-
Quality Check:
- Compare original vs processed
- Ensure no visible artifacts
- Verify colors/details preserved
Advanced Usage
Custom Processing Pipeline
Edit scripts/deai.py to adjust parameters:
noise = np.random.normal(0, 3, img_array.shape)
enhancer.enhance(1.05)
img.save(temp_path, "JPEG", quality=80)
Combining with External Tools
python scripts/deai.py ai_gen.png -o step1.jpg
exiftool -all= step1_edited.jpg
Best Practices
For Social Media
- Use
medium strength (good balance)
- Output as JPEG (universal compatibility)
- Test on platform's upload flow before posting
For Professional Use
- Start with
light (preserve quality)
- Manual review each output
- Keep originals in secure storage
- Document processing steps
For Research/Testing
- Use
heavy for stress testing
- Compare multiple detectors
- Document success/failure patterns
Legal & Ethical Notice
⚠️ Use Responsibly:
This tool is intended for:
- ✅ Personal creative projects
- ✅ Academic research on AI detection
- ✅ Security testing (authorized)
- ✅ Understanding detection mechanisms
DO NOT use for:
- ❌ Fraud or deception
- ❌ Impersonating human creators
- ❌ Bypassing platform policies without authorization
- ❌ Creating misleading content
Legal Risks:
- Some jurisdictions (e.g., COPIED Act 2024) may restrict watermark removal
- Platform terms of service often prohibit AI content masking
- Commercial use may have additional legal requirements
You are responsible for compliance with applicable laws and terms of service.
Troubleshooting
"Command not found: exiftool"
sudo apt install libimage-exiftool-perl
brew install exiftool
"ImportError: No module named PIL"
pip3 install Pillow numpy
"ImageMagick policy.xml blocks operation"
Processing is slow on large images
magick large.png -resize 2048x2048\> resized.png
python scripts/deai.py resized.png
Output looks too grainy/noisy
python scripts/deai.py input.png --strength light
Development
Running Tests
bash scripts/check_deps.sh
python scripts/deai.py test_images/sample.png -v
mkdir test_output
python scripts/deai.py test_images/ --batch -o test_output/
Contributing
Improvements welcome! Focus areas:
- New detection bypass techniques
- Quality preservation algorithms
- Support for more image formats (HEIC, AVIF)
- Integration with detection APIs
References
Detection Research:
- Hu, Y., et al. (2024). "Stable signature is unstable: Removing image watermark from diffusion models." arXiv:2405.07145
- IEEE Spectrum: UnMarker tool analysis
Open Source Projects:
Detection Tools:
Version: 1.0.0
License: MIT (for educational/research use)
Maintainer: voidborne-d
Last Updated: 2026-02-23