PyTorch implementation of a Real-ESRGAN model trained on custom dataset. This model shows better results on faces compared to the original version. It is also easier to integrate this model into your projects.
This is not an official implementation. We partially use code from the original repository
Real-ESRGAN is an upgraded ESRGAN trained with pure synthetic data is capable of enhancing details while removing annoying artifacts for common real-world images.
You can try it in google colab
- Paper (Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data)
- Original implementation
- Huggingface 🤗
sudo apt-get update && sudo apt-get install ffmpeg -ypip install py-real-esrgan moviepyBasic usage:
- Image
import torch
from PIL import Image
import numpy as np
from RealESRGAN import RealESRGAN
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = RealESRGAN(device, scale=4)
model.load_weights('weights/RealESRGAN_x4.pth', download=True)
path_to_image = 'inputs/lr_image.png'
image = Image.open(path_to_image).convert('RGB')
sr_image = model.predict(image)
sr_image.save('results/sr_image.png')- Video
python video_exmple.py- Video
video_upscaler_with_skip.pyLow quality image:
Real-ESRGAN result:
Low quality image:
Real-ESRGAN result:
Low quality image:
Real-ESRGAN result:





