Detect potential AI-generated and digitally manipulated images using multimodal AI analysis.
Upload โ Analyze โ Investigate โ Understand
VeriLens is a modern AI-powered image authenticity analysis application built to investigate whether an image appears to be authentic, AI-generated, digitally modified, or uncertain.
With the rapid growth of generative AI, realistic synthetic images have become increasingly difficult to distinguish from photographs and traditionally edited media. VeriLens provides an accessible interface for experimenting with AI-assisted image inspection.
The application uses Google Gemini's multimodal vision capabilities to examine uploaded images and generate a structured analysis containing:
- ๐ Authenticity classification
- ๐ Confidence percentage
- ๐ง AI-generated assessment
- ๐ผ๏ธ Digital manipulation assessment
- ๐ Detailed reasoning
- ๐ฉ Visual indicators
โ ๏ธ Uncertainty assessment
Rather than simply displaying an AI prediction, VeriLens attempts to provide explainable visual evidence behind its conclusion.
VeriLens is an AI-assisted analysis tool and should not be considered a replacement for professional digital-forensics examination.
AI-generated images are becoming increasingly realistic.
Traditional visual inspection can fail to identify subtle:
- Lighting inconsistencies
- Anatomical abnormalities
- Texture irregularities
- Repeated patterns
- Unrealistic shadows
- Rendering artifacts
- Pixel inconsistencies
- Digital manipulation
VeriLens provides a simple workflow for submitting images to a multimodal AI model and receiving an interpretable analysis.
Help users look beyond what an image appears to be.
VeriLens uses Google's Gemini multimodal AI capabilities to inspect images for visual characteristics associated with:
- AI-generated content
- Digital manipulation
- Image editing
- Synthetic textures
- Unnatural structures
- Lighting inconsistencies
- Anatomical anomalies
- Repetitive patterns
- Rendering artifacts
- Natural camera characteristics
The model receives the image itself rather than relying exclusively on filename or metadata.
Each image receives one of four primary classifications.
| Verdict | Meaning |
|---|---|
| ๐ข Original | Visual characteristics appear broadly consistent with an authentic image. |
| ๐ฃ AI Generated | Visual characteristics suggest the image may have been generated using AI. |
| ๐ Modified | The image appears to contain signs of digital manipulation or editing. |
| โช Uncertain | Available evidence is insufficient for a reliable classification. |
The Uncertain category is important because not every image can be confidently classified from visual information alone.
Each analysis includes a numerical confidence score.
Example:
Confidence
โโโโโโโโโโโโโโโโโโโโ 87%
87% Confidence
The score provides an intuitive representation of how strongly the AI analysis supports the selected verdict.
VeriLens does not stop at:
AI Generated
Instead, it provides reasoning describing the visual characteristics that influenced the result.
For example:
Verdict: AI Generated
Confidence: 91%
Reasoning:
The image contains unusually smooth skin textures,
inconsistent fine details, and lighting transitions
that may indicate generative image synthesis.
Indicators:
โข Unnatural texture patterns
โข Inconsistent lighting
โข Over-smoothed details
โข Repetitive structures
This makes the application more useful for education, experimentation, and investigation.
The AI can identify specific visual characteristics that contributed to its conclusion.
Possible indicators include:
- Inconsistent lighting
- Unnatural shadows
- Anatomical inconsistencies
- Unusual textures
- Repeated patterns
- Strange object boundaries
- Pixel-level irregularities
- Synthetic-looking details
- Unrealistic reflections
- Image-composition inconsistencies
Indicators are presented directly within the analysis result.
VeriLens supports analyzing multiple images within a single session.
Users can:
- Select multiple images
- Drag and drop images
- Preview uploaded images
- Remove individual images
- Clear the entire queue
- Analyze all queued images
Supported formats include:
JPEG
PNG
WEBP
Instead of analyzing images one by one, users can queue multiple images and select:
Analyze All
Each image maintains its own processing state.
โโโโโโโโโโโโโโโโโ
โ Image Queue โ
โโโโโโโโโฌโโโโโโโโ
โ
โโโ Image 01 โ Analyzing โ Complete
โ
โโโ Image 02 โ Analyzing โ Complete
โ
โโโ Image 03 โ Waiting
โ
โโโ Image 04 โ Error
This makes the application practical for testing multiple images during a single session.
VeriLens was designed with a modern dark interface focused on visual clarity and technical aesthetics.
- ๐ Dark UI
- ๐ต Blue/indigo visual accents
- ๐ฑ Responsive layout
- ๐ฑ๏ธ Drag-and-drop interaction
- ๐ผ๏ธ Image previews
- ๐ Confidence visualization
- ๐ Loading and scanning states
- ๐ฉ Analysis indicators
- โ๏ธ Settings modal
- โจ Smooth UI interactions
- ๐ Responsive cards and layouts
The interface is designed to keep the analysis itself as the primary focus.
Add screenshots of your deployed application here.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ VeriLens โ
โ AI Image Authenticity Detector โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โ Drag & Drop Image Here โ โ
โ โ โ โ
โ โ or Browse Files โ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ Analyze All โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
VeriLens follows a lightweight client-side architecture centered around the Gemini API.
โโโโโโโโโโโโโโโโโโโโโโโ
โ User โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ React Frontend โ
โ โ
โ Upload / Preview โ
โ Queue Management โ
โ Results UI โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Image Processing โ
โ โ
โ File โ Base64 โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Google Gemini API โ
โ โ
โ Gemini 2.5 Flash โ
โ Multimodal Vision โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Structured JSON โ
โ โ
โ Verdict โ
โ Confidence โ
โ Reasoning โ
โ Indicators โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Analysis Card โ
โ โ
โ Result + Evidence โ
โโโโโโโโโโโโโโโโโโโโโโโ
The complete workflow can be summarized as:
1. Upload Image
โ
2. Validate File
โ
3. Generate Preview
โ
4. Add to Analysis Queue
โ
5. Convert Image to Base64
โ
6. Send Image to Gemini
โ
7. Perform Multimodal Analysis
โ
8. Receive Structured Response
โ
9. Parse Verdict
โ
10. Display Confidence
โ
11. Display Reasoning
โ
12. Display Visual Indicators
VeriLens uses structured output from Gemini rather than treating the response as ordinary text.
The expected response follows a structure similar to:
{
"verdict": "ORIGINAL",
"confidence": 87,
"reasoning": "The image contains characteristics consistent with a natural photograph.",
"indicators": [
"Consistent lighting",
"Natural texture variation",
"No obvious manipulation artifacts"
]
}ORIGINAL
AI_GENERATED
MODIFIED
UNCERTAIN
This structured approach allows the React interface to reliably map the AI response to the appropriate UI components.
Image-Detection/
โ
โโโ components/
โ โ
โ โโโ AnalysisCard.tsx
โ โ โโโ Displays analysis results
โ โ โโโ Confidence score
โ โ โโโ Verdict
โ โ โโโ Reasoning
โ โ โโโ Indicators
โ โ
โ โโโ SettingsModal.tsx
โ โ โโโ Gemini API configuration
โ โ
โ โโโ UploadZone.tsx
โ โโโ File selection
โ โโโ Drag & drop
โ โโโ Image validation
โ
โโโ services/
โ โ
โ โโโ geminiService.ts
โ โโโ Gemini API integration
โ
โโโ App.tsx
โ โโโ Main application
โ
โโโ index.tsx
โ โโโ React entry point
โ
โโโ index.html
โ โโโ Application HTML shell
โ
โโโ types.ts
โ โโโ TypeScript interfaces
โ
โโโ metadata.json
โ โโโ Application metadata
โ
โโโ package.json
โ โโโ Dependencies & scripts
โ
โโโ tsconfig.json
โ โโโ TypeScript configuration
โ
โโโ vite.config.ts
โ โโโ Vite configuration
โ
โโโ LICENSE
โ โโโ MIT License
โ
โโโ .gitignore
The central application component.
Responsibilities include:
- Image queue management
- Upload handling
- Image removal
- Batch analysis
- Loading states
- Error handling
- API-key configuration
- Rendering analysis results
Responsible for the image-upload experience.
Features include:
- File browser integration
- Drag-and-drop
- Image validation
- File type checking
- Upload interaction
- Visual upload states
Displays the complete analysis for an individual image.
The card can present:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ IMAGE PREVIEW โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Verdict โ
โ AI Generated โ
โ โ
โ Confidence โ
โ โโโโโโโโโโโโโโโโโโ 87% โ
โ โ
โ Reasoning โ
โ ... โ
โ โ
โ Detected Indicators โ
โ โข Indicator 1 โ
โ โข Indicator 2 โ
โ โข Indicator 3 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Provides configuration for the Gemini API key.
The settings interface allows users to configure the API credentials required to perform analysis.
The AI integration layer.
Responsibilities include:
- Initializing Gemini
- Preparing image data
- Sending multimodal requests
- Defining response structure
- Parsing AI results
- Returning analysis data to the application
| Technology | Purpose |
|---|---|
| React | User interface |
| TypeScript | Type safety |
| Vite | Development & build tooling |
| Tailwind CSS | Styling |
| Lucide React | Icons |
| Technology | Purpose |
|---|---|
| Google Gemini | Multimodal AI |
| Gemini 2.5 Flash | Image understanding |
| Structured JSON | Reliable AI response handling |
| Technology | Purpose |
|---|---|
| File API | Image handling |
| FileReader | Image data processing |
| Local Storage | Local configuration |
| Object URLs | Image previews |
Before running the project, make sure you have:
- Node.js installed
- npm installed
- A Google Gemini API key
- A modern web browser
git clone https://github.com/AbdullahSoftDev/Image-Detection.gitcd Image-Detectionnpm installnpm run devVite will start the local development server and display the available URL in your terminal.
Launch the application and open the Settings interface.
Enter your Gemini API key.
The application uses this key when submitting images for AI analysis.
VeriLens requires a Google Gemini API key.
For development and educational usage, the application provides a client-side configuration mechanism.
However, exposing API credentials directly inside a browser application has security implications.
For a production deployment, consider:
Browser
โ
โผ
Secure Backend
โ
โโโ Authentication
โโโ Rate Limiting
โโโ Request Validation
โโโ API Key Protection
โ
โผ
Google Gemini
This prevents a long-lived Gemini API credential from being directly exposed to users.
Do not place real API credentials inside:
GitHub
Public repositories
Screenshots
README files
Frontend source code
Drag an image into the upload area or use the file browser.
The selected image appears in the queue with its preview.
Upload additional images if you want to perform batch analysis.
Click:
Analyze All
Each image displays its current processing state.
The completed analysis contains:
Verdict
โ
Confidence
โ
Reasoning
โ
Detected Indicators
Individual images can be removed from the queue, or the complete queue can be cleared.
VeriLens is designed to work with common browser-supported image formats.
.jpg
.jpeg
.png
.webp
The upload interface validates that selected files are images before adding them to the queue.
A completed analysis may look conceptually like:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ANALYSIS RESULT โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ โ
โ VERDICT โ
โ ๐ฃ AI GENERATED โ
โ โ
โ CONFIDENCE โ
โ โโโโโโโโโโโโโโโโโโโโ 89% โ
โ โ
โ REASONING โ
โ The image contains visual patterns โ
โ that may indicate generative synthesis. โ
โ โ
โ DETECTED INDICATORS โ
โ โข Unusual texture patterns โ
โ โข Inconsistent fine details โ
โ โข Synthetic-looking structures โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
VeriLens demonstrates several modern software-development concepts in one project.
- Component-based architecture
- React state management
- TypeScript interfaces
- Responsive UI
- File handling
- Modal interfaces
- Loading states
- Error states
- Multimodal AI
- Image-to-AI workflows
- Prompt engineering
- Structured model responses
- AI result interpretation
- Vite
- npm dependency management
- Browser APIs
- Client-side storage
- Responsive design
VeriLens can be used for:
Demonstrating how multimodal AI can be integrated into a modern web application.
Testing how AI models interpret visual authenticity.
Performing an initial AI-assisted inspection of suspicious images.
Exploring characteristics commonly associated with synthetic imagery.
Demonstrating practical experience with:
- React
- TypeScript
- AI APIs
- Multimodal models
- Modern UI development
VeriLens should not be considered a professional forensic verification system.
No AI-based image classifier can guarantee authenticity solely from visual inspection.
Results may be affected by:
- Image compression
- Image resizing
- Re-encoding
- Screenshots
- Low resolution
- Heavy editing
- New generative models
- Unusual photography conditions
- Ambiguous visual evidence
- Model limitations
An image classified as Original may still be manipulated.
An image classified as AI Generated may still be authentic.
Therefore:
Always treat VeriLens results as AI-assisted indicators rather than definitive forensic conclusions.
VeriLens can be expanded into a more comprehensive digital image-forensics platform.
- EXIF metadata inspection
- JPEG quantization analysis
- Error Level Analysis
- Pixel-level anomaly detection
- Noise-pattern analysis
- Clone detection
- Copy-move detection
- Image hashing
- Perceptual hashing
- Multiple AI detection models
- Model comparison
- Confidence calibration
- Specialized deepfake detection
- Face manipulation detection
- AI-generated text detection inside images
- Export results as PDF
- Generate forensic-style reports
- Analysis history
- Downloadable reports
- Shareable analysis links
- User authentication
- Personal dashboards
- Saved analysis
- Usage statistics
- User preferences
- Secure backend API
- Server-side Gemini integration
- Rate limiting
- Request logging
- Secure API-key management
- Cloud storage
- Scalable processing queue
A more advanced production version could evolve into:
โโโโโโโโโโโโโโโโโ
โ User โ
โโโโโโโโโฌโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโ
โ React Frontend โ
โโโโโโโโโโโฌโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโ
โ Backend API โ
โโโโโโโโโโโโโโโโโโโโโค
โ Authentication โ
โ Rate Limiting โ
โ Validation โ
โ Job Management โ
โโโโโโโโโโโฌโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ
โ Gemini โ โ Forensics โ โ Metadata โ
โ AI Model โ โ Engine โ โ Engine โ
โโโโโโโฌโโโโโโ โโโโโโโโฌโโโโโโ โโโโโโโโฌโโโโโโ
โ โ โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ
โผ
โโโโโโโโโโโโโโโโโโโโโ
โ Analysis Engine โ
โโโโโโโโโโโฌโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโ
โ Final Report โ
โโโโโโโโโโโโโโโโโโโโโ
| Category | Details |
|---|---|
| Project | VeriLens |
| Type | AI Image Authenticity Analyzer |
| Frontend | React |
| Language | TypeScript |
| Build Tool | Vite |
| Styling | Tailwind CSS |
| AI | Google Gemini |
| Vision Model | Gemini 2.5 Flash |
| Input | Image files |
| Formats | JPEG, PNG, WEBP |
| Analysis | AI-generated / Modified / Original / Uncertain |
| Output | Verdict + Confidence + Reasoning + Indicators |
| UI | Responsive Dark Interface |
| License | MIT |
This project demonstrates practical implementation of:
React Component Architecture
โ
TypeScript Type Safety
โ
File Upload & Validation
โ
Image Preview Generation
โ
Base64 Image Processing
โ
Multimodal AI Integration
โ
Structured JSON Responses
โ
Asynchronous Processing
โ
Loading & Error States
โ
Responsive UI Rendering
GitHub Repository
github.com/AbdullahSoftDev/Image-Detection
Computer Science Student & Software Developer
Building modern web applications, AI-powered systems, and practical software solutions.
Contributions, ideas, bug reports, and feature suggestions are welcome.
# Fork the repository
# Clone your fork
git clone https://github.com/YOUR_USERNAME/Image-Detection.git
# Create a feature branch
git checkout -b feature/your-feature
# Make your changes
# Commit
git commit -m "Add: your feature"
# Push
git push origin feature/your-feature
# Open a Pull RequestThis project is released under the MIT License.
See the LICENSE file for complete details.
