Saka is a high-performance video enhancement platform that leverages state-of-the-art AI models to upscale and improve video quality. Built with scalability and performance in mind, it offers both API and CLI interfaces for seamless integration into existing workflows.
Category | Features |
---|---|
Enhancement Capabilities |
• 2x/4x Video Upscaling • Anime-Optimized Processing • Artifact Removal • Face Enhancement |
Performance |
• GPU Auto-Scaling • Dynamic Batch Processing • Asynchronous Operations • Multi-GPU Support |
Infrastructure |
• S3-Compatible Storage • Real-time Monitoring • Docker Support • Quality Metrics (SSIM) |
flowchart TD
A[Client] -->|HTTP Request| B[serve_enhancer.py]
B -->|Load Model| C[Real-ESRGAN]
B -->|Config| D[configs/]
C -->|Process| E[GPU Processing]
E -->|Enhanced Video| F[storage.py]
F -->|Store| G[S3/Local Storage]
B -->|Metrics| H[Prometheus]
H -->|Monitor| I[Grafana]
subgraph Saka Microservice
B
C
D
E
F
end
subgraph Monitoring
H
I
end
subgraph Storage
G
end
- NVIDIA GPU with CUDA 11.8+
- Docker 20.10+ (for containerized deployment)
- Python 3.10+
- 16GB+ RAM recommended
-
Clone the Repository
git clone --recursive https://github.com/vikramxD/saka.git cd saka
-
Set Up Python Environment
python -m venv venv source venv/bin/activate # On Windows: .\venv\Scripts\activate pip install -r requirements.txt
-
Configure Environment
cp .env.example .env # Edit .env with your configuration
-
Build and Run with Docker Compose
docker-compose up -d
-
Check Service Status
docker-compose ps
from saka.client import VideoEnhancerClient
# Initialize client
client = VideoEnhancerClient()
# Enhance video
result = client.enhance_video(
input_path="input.mp4",
upscale_factor=2,
calculate_ssim=True
)
print(f"Enhanced video available at: {result['output_url']}")
# Basic enhancement
saka enhance video.mp4 --output enhanced.mp4
# Advanced options
saka enhance video.mp4 --scale 4 --quality high --model anime
class Settings(BaseSettings):
realesrgan: UpscalerSettings = UpscalerSettings()
api: APISettings = APISettings()
s3: S3Settings = S3Settings()
Variable | Description | Default |
---|---|---|
SAKA_MODEL_PATH |
Path to model weights | ./models |
SAKA_GPU_IDS |
GPUs to use (comma-separated) | 0 |
SAKA_BATCH_SIZE |
Processing batch size | 4 |
SAKA_API_PORT |
API server port | 8000 |
Access the Grafana dashboard at http://localhost:3000
with default credentials:
- Username:
admin
- Password:
admin
- GPU Utilization
- Processing Latency
- Memory Usage
- Batch Processing Efficiency
- SSIM Quality Scores
./scripts/setup_monitoring.sh
saka/
── api/ # API implementation
── ─ client.py # Client library
── ─ serve.py # API server
── ─ storage.py # Storage handlers
── configs/ # Configuration
── ─ settings.py # Core settings
── ─ models.py # Model configs
── models/ # Model implementations
── scripts/ # Utility scripts
── tests/ # Test suite
── docker/ # Docker configurations
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤ by VikramxD