--- license: apache-2.0 pipeline_tag: image-classification tags: - art - legal --- # Nonescape AI-generated image classifier This model predicts whether an input image was created by an artificial‑image generator (e.g. Stable Diffusion, Midjourney, GAN, deepfake pipeline) or captured with a conventional camera. It ships with Python and JavaScript/TypeScript SDKs and open‑weights in both Safetensors and ONNX formats. ## Model Details ### Model Description Nonescape is a binary image‑classification model trained to distinguish synthetic (AI‑generated) from authentic (photographic/hand‑crafted) imagery. - **Developed by:** Aedilic Inc. - **Model type:** Image Classifier - **License:** Apache 2.0 ### Model Sources - **Repository:** https://github.com/aediliclabs/nonescape - **Demo:** https://www.nonescape.com ## Uses | Use‑case | Description | End Users | | ------------------------- | ------------------------------------------------------------------- | -------------------------------------- | | **Content moderation** | Flag AI artwork uploads on social platforms or stock‑media sites | Trust & Safety teams | | **Media forensics** | Assist journalists and OSINT researchers verifying image provenance | Investigative reporters, fact‑checkers | | **Legal evidence triage** | Early filtering of manipulated exhibits | Attorneys, e‑discovery vendors | ## How to Get Started with the Model [Python library](https://github.com/aediliclabs/nonescape/tree/master/python) ```python from nonescape import NonescapeClassifier # Load model classifier = NonescapeClassifier("nonescape-v0.safetensors") # Single image result = classifier.predict("image.jpg") print(f"AI Generated: {result.is_synthetic}, Confidence: {result.confidence}") # Multiple images results = classifier.predict(["img1.jpg", "img2.jpg"]) ``` [Javascript/NodeJS library](https://github.com/aediliclabs/nonescape/tree/master/javascript) ```javascript import { LocalClassifier } from '@aedilic/nonescape'; const classifier = new LocalClassifier({ onProgress: (progress) => console.log(`Loading: ${Math.round(progress.current / progress.total * 100)}%`) }); await classifier.initialize(); // Single image const result = await classifier.predict(imageFile); console.log(`AI Generated: ${result.isSynthetic}, Confidence: ${result.confidence}`); // Multiple images const results = await classifier.predict([image1, image2, image3]); classifier.dispose(); ``` ### Recommendations - Use a high threshold (e.g. `0.9`) for tasks like filtering images, that require a low false-positive rate - Use the default threshold of `0.5` for tasks like content moderation, that require a low false-negative rate but can live with some false positives ## Training Details The model was trained on 1M+ images scraped from across the internet. ## Evaluation The model was evaluated on the [Adversarial AI-Art dataset](https://arxiv.org/pdf/2404.14581) to make it comparable with other SOTA models. It achieves the best overall accuracy, outperforming open-source and commercial models. ![accuracy benchmark](https://www.nonescape.com/nonescape-accuracy.jpg) The GitHub repository contains all code to replicate the model evaluation.