| # AI-Contain-Checker |
|
|
| A modular AI content detection system with support for **image classification**, **image edit detection**, **Nepali text classification**, and **general text classification**. Built for performance and extensibility, it is ideal for detecting AI-generated content in both visual and textual forms. |
|
|
|
|
| ## π Features |
|
|
| ### πΌοΈ Image Classifier |
|
|
| * **Purpose**: Classifies whether an image is AI-generated or a real-life photo. |
| * **Model**: Fine-tuned **InceptionV3** CNN. |
| * **Dataset**: Custom curated dataset with **\~79,950 images** for binary classification. |
| * **Location**: [`features/image_classifier`](features/image_classifier) |
| * **Docs**: [`docs/features/image_classifier.md`](docs/features/image_classifier.md) |
|
|
| ### ποΈ Image Edit Detector |
|
|
| * **Purpose**: Detects image tampering or post-processing. |
| * **Techniques Used**: |
|
|
| * **Error Level Analysis (ELA)**: Visualizes compression artifacts. |
| * **Fast Fourier Transform (FFT)**: Detects unnatural frequency patterns. |
| * **Location**: [`features/image_edit_detector`](features/image_edit_detector) |
| * **Docs**: |
|
|
| * [ELA](docs/detector/ELA.md) |
| * [FFT](docs/detector/fft.md ) |
| * [Metadata Analysis](docs/detector/meta.md) |
| * [Backend Notes](docs/detector/note-for-backend.md) |
|
|
| ### π Nepali Text Classifier |
|
|
| * **Purpose**: Determines if Nepali text content is AI-generated or written by a human. |
| * **Model**: Based on `XLMRClassifier` fine-tuned on Nepali language data. |
| * **Dataset**: Scraped dataset of **\~18,000** Nepali texts. |
| * **Location**: [`features/nepali_text_classifier`](features/nepali_text_classifier) |
| * **Docs**: [`docs/features/nepali_text_classifier.md`](docs/features/nepali_text_classifier.md) |
|
|
| ### π English Text Classifier |
|
|
| * **Purpose**: Detects if English text is AI-generated or human-written. |
| * **Pipeline**: |
|
|
| * Uses **GPT2 tokenizer** for input preprocessing. |
| * Custom binary classifier to differentiate between AI and human-written content. |
| * **Location**: [`features/text_classifier`](features/text_classifier) |
| * **Docs**: [`docs/features/text_classifier.md`](docs/features/text_classifier.md) |
|
|
| --- |
|
|
| ## ποΈ Project Structure |
|
|
| ```bash |
| AI-Checker/ |
| β |
| βββ app.py # Main FastAPI entry point |
| βββ config.py # Configuration settings |
| βββ Dockerfile # Docker build script |
| βββ Procfile # Deployment file for Heroku or similar |
| βββ requirements.txt # Python dependencies |
| βββ README.md # You are here π |
| β |
| βββ features/ # Core detection modules |
| β βββ image_classifier/ |
| β βββ image_edit_detector/ |
| β βββ nepali_text_classifier/ |
| β βββ text_classifier/ |
| β |
| βββ docs/ # Internal and API documentation |
| β βββ api_endpoints.md |
| β βββ deployment.md |
| β βββ detector/ |
| β β βββ ELA.md |
| β β βββ fft.md |
| β β βββ meta.md |
| β β βββ note-for-backend.md |
| β βββ functions.md |
| β βββ nestjs_integration.md |
| β βββ security.md |
| β βββ setup.md |
| β βββ structure.md |
| β |
| βββ IMG_Models/ # Saved image classifier model(s) |
| β βββ latest-my_cnn_model.h5 |
| β |
| βββ notebooks/ # Experimental and debug notebooks |
| βββ static/ # Static assets if needed |
| βββ test.md # Test notes |
| ```` |
|
|
| --- |
|
|
| ## π Documentation Links |
|
|
| * [API Endpoints](docs/api_endpoints.md) |
| * [Deployment Guide](docs/deployment.md) |
| * [Detector Documentation](docs/detector/) |
|
|
| * [Error Level Analysis (ELA)](docs/detector/ELA.md) |
| * [Fast Fourier Transform (FFT)](docs/detector/fft.md) |
| * [Metadata Analysis](docs/detector/meta.md) |
| * [Backend Notes](docs/detector/note-for-backend.md) |
| * [Functions Overview](docs/functions.md) |
| * [NestJS Integration Guide](docs/nestjs_integration.md) |
| * [Security Details](docs/security.md) |
| * [Setup Instructions](docs/setup.md) |
| * [Project Structure](docs/structure.md) |
|
|
| --- |
|
|
| ## π Usage |
|
|
| 1. **Install dependencies** |
|
|
| ```bash |
| pip install -r requirements.txt |
| ``` |
|
|
| 2. **Run the API** |
|
|
| ```bash |
| uvicorn app:app --reload |
| ``` |
|
|
| 3. **Build Docker (optional)** |
|
|
| ```bash |
| docker build -t ai-contain-checker . |
| docker run -p 8000:8000 ai-contain-checker |
| ``` |
|
|
| --- |
|
|
| ## π Security & Integration |
|
|
| * **Token Authentication** and **IP Whitelisting** supported. |
| * NestJS integration guide: [`docs/nestjs_integration.md`](docs/nestjs_integration.md) |
| * Rate limiting handled using `slowapi`. |
|
|
| --- |
|
|
| ## π‘οΈ Future Plans |
|
|
| * Add **video classifier** module. |
| * Expand dataset for **multilingual** AI content detection. |
| * Add **fine-tuning UI** for models. |
|
|
| --- |
|
|
| ## π License |
|
|
| See full license terms here: [`LICENSE.md`](license.md) |
|
|