TensorFlow implementation of the Fast Super-Resolution Convolutional Neural Network (FSRCNN). This implements two models: FSRCNN which is more accurate but slower and FSRCNN-s which is faster but less accurate. Based on this project.
Nothing that special about it. This is an optimized fork of HelpSeeker's FSRCNNX-distortion. See DISTORT.md for more info.
- TensorFlow 2 (much faster training)
- AdamW optimizer (thanks to TF2)
- Lower RAM requirements
- Ported improvements from igv's fork
- Dataset caching
- More realistic selectable compression types
- Optimized shader generation
- Large cleanups
Much faster with comparable visual quality to HelpSeeker's x2 16-0-4-1. Optimized x2 12-0-4-1 models run at 4K60 on modern AMD iGPU laptops.
- Python 3
- TensorFlow >= 2
- CUDA & cuDNN >= 6.0
- Pillow
- pillow_avif
- FFmpeg
- NumPy
- Natsort
You can specify epochs, learning rate, data directory, etc:
python main.py --distort --epoch 100 --batch_size 32 --learning_rate 1e-4 --checkpoint_dir my_checkpoint --train_dir Train --test_dir Test --test_image test_image.png
Dump weights:
python main.py --checkpoint_dir my_checkpoint --save-params my_cool_name
Make an MPV compatible shader:
python gen_v2.py params/weights_2_12_0_4_1.my_cool_name.txt
Check main.py for all the possible flags.
Original butterfly image:
Ewa_lanczos interpolated image:
Super-resolved image:
- Release weights and shaders


