Skip to main content

deai-image

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.

معلومات المصدر

المستودع
swaylq/deai-image
آخر نشاط في المصدر
٢٢ مايو ٢٠٢٦ في ٠٤:٥٢
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٧
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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 ```bash # Basic processing (medium strength) python scripts/deai.py input.png # Specify output file python scripts/deai.py input.png -o output.jpg # Adjust processing strength python scripts/deai.py input.png --strength heavy # Only strip metadata (fastest) python scripts/deai.py input.png --no-metadata # Batch process directory python scripts/deai.py input_dir/ --batch # Pure Bash version (no Python needed) bash scripts/deai.sh input.png output.jpg ``` --- ## How It Works AI-generated images contain multiple detection layers: ### Detection Vectors 1. **Metadata**: EXIF tags revealing generation tool, C2PA watermarks 2. **Frequency Domain**: DCT coefficient patterns unique to diffusion models 3. **Pixel Patterns**: Over-smoothness, unnatural noise distribution 4. **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 ```bash # Default medium strength python scripts/deai.py ai_portrait.png # Light processing for high-quality images python scripts/deai.py artwork.png --strength light -o clean_artwork.jpg # Heavy processing for stubborn detection python scripts/deai.py midjourney_out.png --strength heavy ``` ### Batch Processing ```bash # Process entire directory python scripts/deai.py ./ai_images/ --batch -o ./cleaned/ # Batch with specific strength python scripts/deai.py ./gallery/*.png --batch --strength heavy ``` ### Metadata-Only Mode ```bash # Only strip metadata (instant, no quality loss) python scripts/deai.py image.jpg --no-metadata ``` ### Using Bash Version ```bash # No Python/Pillow needed, pure ImageMagick + ExifTool bash scripts/deai.sh input.png output.jpg # Specify strength 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 bash scripts/check_deps.sh ``` This will verify all dependencies and provide installation commands if missing. ### Manual Installation **Debian/Ubuntu:** ```bash sudo apt update sudo apt install -y imagemagick libimage-exiftool-perl python3 python3-pip pip3 install Pillow numpy ``` **macOS:** ```bash brew install imagemagick exiftool python3 pip3 install Pillow numpy ``` **Fedora/RHEL:** ```bash 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 1. **Process Image:** ```bash python scripts/deai.py ai_image.png -o clean.jpg --strength medium ``` 2. **Test on Multiple Detectors:** - [Hive Moderation](https://hivemoderation.com/ai-generated-content-detection) - [Illuminarty](https://illuminarty.ai/) - [AI or Not](https://aiornot.com/) 3. **If Still Detected:** - Increase strength: `--strength heavy` - Try multiple passes - Manual touch-ups (add slight noise in photo editor) 4. **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: ```python # Noise strength (line ~80) noise = np.random.normal(0, 3, img_array.shape) # Increase 3 → 5 for more grain # Contrast adjustment (line ~95) enhancer.enhance(1.05) # Increase 1.05 → 1.08 for stronger effect # JPEG quality (line ~120) img.save(temp_path, "JPEG", quality=80) # Decrease 80 → 70 for more compression ``` ### Combining with External Tools ```bash # Step 1: De-fingerprint python scripts/deai.py ai_gen.png -o step1.jpg # Step 2: Add subtle texture overlay (GIMP/Photoshop) # (Manual step) # Step 3: Re-strip metadata 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" ```bash # Install ExifTool sudo apt install libimage-exiftool-perl # Debian/Ubuntu brew install exiftool # macOS ``` ### "ImportError: No module named PIL" ```bash pip3 install Pillow numpy ``` ### "ImageMagick policy.xml blocks operation" ```bash # Edit /etc/ImageMagick-7/policy.xml # Change: <policy domain="coder" rights="none" pattern="PNG" /> # To: <policy domain="coder" rights="read|write" pattern="PNG" /> ``` ### Processing is slow on large images ```bash # Pre-resize before processing magick large.png -resize 2048x2048\> resized.png python scripts/deai.py resized.png ``` ### Output looks too grainy/noisy ```bash # Use light strength python scripts/deai.py input.png --strength light ``` --- ## Development ### Running Tests ```bash # Test dependency check bash scripts/check_deps.sh # Test single image (verbose) python scripts/deai.py test_images/sample.png -v # Test batch mode 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:** - [Synthid-Bypass](https://github.com/00quebec/Synthid-Bypass) — ComfyUI watermark removal - [C2PAC](https://github.com/robertoamoreno/C2PAC) — C2PA metadata tools **Detection Tools:** - [Hive Moderation](https://hivemoderation.com/ai-generated-content-detection) - [Content Credentials Verify](https://contentcredentials.org/verify) - [Google SynthID](https://deepmind.google/models/synthid/) --- **Version:** 1.0.0 **License:** MIT (for educational/research use) **Maintainer:** swaylq **Last Updated:** 2026-02-23
عرض على GitHub