Reality Check is a robust AI-generated image detection prototype. It addresses the problem of identifying whether an image is authentic or AI-generated, even after common real-world reposting changes such as JPEG compression, blur, resizing, image noise, colour adjustment, and cropping. Users can upload an image and the system returns the likelihood of whether the image is AI-generated.

The project does not rely only on clean-image accuracy. It evaluates false positives, false negatives, robustness under transformations, and generalization to unseen data. This helps identify when the detector may incorrectly flag authentic images or miss realistic AI-generated images.

Development Tools

  • Visual Studio Code for development and project management
  • Git and GitHub for version control and collaboration
  • Python virtual environments for dependency management
  • Terminal/command-line tools for training, evaluation, packaging, and local deployment

Models and APIs Used

  • EfficientNet-B0 pretrained image-classification backbone
  • Binary classifier head with dropout and a sigmoid output for real-versus-AI prediction
  • FastAPI local inference API for image upload and prediction
  • Hugging Face Datasets / Hugging Face Hub tools for accessing and preparing SID Set data

Libraries and Frameworks Used

  • PyTorch and Torchvision for model building, training, and inference
  • timm for vision-model support
  • FastAPI and Uvicorn for the local web server
  • Pillow and OpenCV for image loading and preprocessing
  • Albumentations for robustness transformations and augmentation
  • NumPy and Pandas for data processing
  • Scikit-learn for evaluation metrics including ROC AUC, accuracy, precision, recall, and F1-score
  • Matplotlib for evaluation visualizations
  • PyYAML for experiment configuration

Datasets and Assets Used

  • SID Set: authentic, fully synthetic, and tampered image data. The project uses authentic and fully synthetic images for binary classification.
  • CIFAKE: CIFAR-10-based real and Stable Diffusion-generated images, used for training and evaluation.
  • WildFake: used as an external evaluation dataset to test generalization to unseen generators and image distributions.
  • Model checkpoints, prediction JSON files, evaluation reports, and error-analysis examples are generated locally and kept outside Git due to their size.

Built With

Share this project:

Updates