Imgenhance / README.md
Death fuck
Restore
ce83c64
---
title: AI Image Processing
emoji: 🖼️
colorFrom: blue
colorTo: purple
sdk: docker
pinned: false
license: mit
---
# AI Image Processing API
A comprehensive image processing API with multiple AI-powered features including super-resolution, background removal, noise reduction, and document scanning.
## Features
- **Image Enhancement**: Upscale images 2x or 4x using Real-ESRGAN
- **Background Removal**: Remove backgrounds using BiRefNet AI model via rembg
- **Noise Reduction**: Reduce image noise using OpenCV Non-Local Means Denoising
- **Document Scanning**: Auto-crop, align, and enhance document photos with AI
- **RESTful API**: Full API with automatic OpenAPI/Swagger documentation
- **Web Interface**: Simple drag-and-drop interface for testing
## API Endpoints
### Image Enhancement
#### `POST /enhance`
Upscale and enhance image quality using Real-ESRGAN.
**Parameters:**
- `file`: Image file (PNG, JPG, JPEG, WebP, BMP)
- `scale`: Upscale factor (2 or 4, default: 4)
### Background Removal
#### `POST /remove-background`
Remove background from an image using BiRefNet AI model.
**Parameters:**
- `file`: Image file
- `bgcolor`: Background color - 'transparent', 'white', 'black', or hex color like '#FF0000'
### Noise Reduction
#### `POST /denoise`
Reduce image noise using Non-Local Means Denoising.
**Parameters:**
- `file`: Image file
- `strength`: Denoising strength (1-30, default: 10)
### Document Scanning
#### `POST /docscan`
Scan and enhance document images with AI-powered processing.
**Features:**
- Auto-detection of document edges
- Auto-crop and perspective correction
- Alignment and straightening
- CLAHE contrast enhancement
- Bilateral noise reduction (preserves edges)
- Unsharp mask sharpening
- Optional HD upscaling with Real-ESRGAN
**Parameters:**
- `file`: Document image (PNG, JPG, JPEG, WebP, BMP)
- `enhance_hd`: Enable AI HD enhancement (default: true)
- `scale`: Upscale factor 1-4 (default: 2)
### Other Endpoints
- `GET /docs` - Interactive Swagger UI documentation
- `GET /redoc` - ReDoc documentation
- `GET /model-info` - Get information about loaded AI models
- `GET /health` - Health check endpoint
## Models Used
| Feature | Model | Description |
|---------|-------|-------------|
| Super Resolution | Real-ESRGAN x4plus | State-of-the-art image upscaling |
| Background Removal | BiRefNet-general | High-accuracy segmentation via rembg |
| Noise Reduction | OpenCV NLM | Non-Local Means Denoising |
| Document Scanning | OpenCV + Real-ESRGAN | Edge detection, perspective correction, HD enhancement |
## Local Development
```bash
# Install dependencies
pip install -r requirements.txt
# Run the server
python app.py
```
The server will start at `http://localhost:7860`
## Deployment to Hugging Face Spaces
1. Create a new Space on Hugging Face
2. Select "Docker" as the SDK
3. Upload all files from this repository
4. The Space will automatically build and start the container
## API Usage Examples
### Python - Image Enhancement
```python
import requests
with open("image.jpg", "rb") as f:
response = requests.post(
"https://your-space.hf.space/enhance",
files={"file": f},
params={"scale": 4}
)
with open("enhanced.png", "wb") as f:
f.write(response.content)
```
### Python - Background Removal
```python
import requests
with open("photo.jpg", "rb") as f:
response = requests.post(
"https://your-space.hf.space/remove-background",
files={"file": f},
params={"bgcolor": "transparent"}
)
with open("no_background.png", "wb") as f:
f.write(response.content)
```
### Python - Noise Reduction
```python
import requests
with open("noisy.jpg", "rb") as f:
response = requests.post(
"https://your-space.hf.space/denoise",
files={"file": f},
params={"strength": 15}
)
with open("denoised.png", "wb") as f:
f.write(response.content)
```
### Python - Document Scanning
```python
import requests
with open("document_photo.jpg", "rb") as f:
response = requests.post(
"https://your-space.hf.space/docscan",
files={"file": f},
params={"enhance_hd": True, "scale": 2}
)
with open("scanned_document.png", "wb") as f:
f.write(response.content)
```
### cURL Examples
```bash
# Enhance image
curl -X POST "https://your-space.hf.space/enhance?scale=4" \
-F "file=@image.jpg" -o enhanced.png
# Remove background
curl -X POST "https://your-space.hf.space/remove-background?bgcolor=transparent" \
-F "file=@photo.jpg" -o nobg.png
# Denoise image
curl -X POST "https://your-space.hf.space/denoise?strength=10" \
-F "file=@noisy.jpg" -o denoised.png
# Scan document
curl -X POST "https://your-space.hf.space/docscan?enhance_hd=true&scale=2" \
-F "file=@document.jpg" -o scanned.png
```
## License
MIT License