EMA-VFI-WebUI - AI-Based Movie Restoration
April 21, 2024 ยท View on GitHub
EMA-VFI-WebUI - AI-Based Movie Restoration
๐ฌ Windows 11 example install steps 4/20/2024
๐ฅ See more samples in the Samples Showcase
| Example - Interpolated Frames |
|---|
![]() |
| Example - GIF to MP4 (frame size X4, frame rate X8) | Example - Original GIF |
|---|---|
| https://user-images.githubusercontent.com/825994/224548062-4cad649c-5cdb-4f66-936d-e2296eb0fbc8.mp4 | ![]() |
| Example - Resyntheszed Video (YouTube) |
|---|
| https://youtube.com/shorts/lKtY2CHqA98?feature=share |
| Upper: 8MM footage with heavy dirt and noise |
| Lower: Same footage after using Resynthesize Video |
| ๐ฌ EMA-VFI-WebUI Features | ย |
|---|---|
| โ Frame Interpolation | Restore Missing Frames, Reveal Hidden Motion |
| ๐ Frame Search | Synthesize Between Frames At Precise Times |
| ๐ Video Inflation | Create Super Slow-Motion |
| ๐ Resynthesize Video | Create a Complete Set of Replacement Frames |
| ๐ช Frame Restoration | Restore Adjacent Missing / Damaged Frames |
| ๐ฌ Video Blender | Project-Based Movie Restoration |
| ๐ File Conversion | Convert between PNG Sequences and Videos |
| ๐ข Resequence Files | Renumber for Import into Video Editing Software |
| ๐๏ธ Change FPS | Convert any FPS to any other FPS |
| ๐ GIF to MP4 | Convert Animated GIF to MP4 in one click |
| ๐ Upscale Frames | Use Real-ESRGAN to Enlarge and Clean Frames |
Set Up For Use
- Get EMA-VFI working on your local system
- See their repo at https://github.com/MCG-NJU/EMA-VFI
- I run locally with:
- Anaconda 23.1.0
- Python 3.10.9
- Torch 1.13.1
- Cuda 11.7
- NVIDIA RTX 3090
- Windows 11
- Clone this repo in a separate directory and copy all directories/files on top of your working EMA-VFI installation
- This code makes no changes to their original code (but borrows some) and causes no conflicts with it
- It shouldn't introduce any additional requirements over what EMA-VFI, Gradio-App and Real-ESRGAN need
- If it's set up properly, the following command should write a new file
images/image1.pngusing default settings
python interpolate.py
Alternate Set Up / Development
- Get EMA-VFI working on your local system
- See their repo at https://github.com/MCG-NJU/EMA-VFI
- I run locally with:
- Anaconda 23.1.0
- Python 3.10.9
- Torch 1.13.1
- Cuda 11.7
- NVIDIA RTX 3090
- Windows 11
- Clone this repo to a directory in which you intend to use the app and/or develop on it
- Copy the following directories and files from your working EMA-VFI installation to this directory:
benchmarkckptmodelconfig.pydataset.pyTrainer.py
- If it's set up properly, the following command should write a new file
images/image1.png
python interpolate.py
Real-ESRGAN Add-On Set Up
The GIF to MP4 feature uses Real-ESRGAN to clean and upscale frames
- Get Real-ESRGAN working on your local system
- See their repo at https://github.com/xinntao/Real-ESRGAN
- Clone their repo to its own directory and follow their instructions for local setup
- Copy the
realesrgandirectory to yourEMA-VFI-WebUIdirectory
- The Real-ESRGAN 4x+ model (65MB) will automatically download on first use
FFmpeg Set Up
A few features rely on FFmpeg being available on the system path
Starting Web UI Application
The application can be started in any of these ways:
webui.batpython webui.py- Command line arguments
--config_path pathpath to alternate configuration file, defaultconfig.yaml--verboseenables verbose output to the console, default False
- Command line arguments
Using Web UI
All Features
Command Line Tools
The core feature have command-line equivalents
App Configuration
Samples Showcase
Acknowledgements
Thanks! to the EMA-VFI folks for their amazing AI frame interpolation tool
Thans! to the Real-ESRGAN folks for their wonderful frame restoration/upscaling tool
Thanks! to the stable-diffusion-webui folks for their great UI, amazing tool, and for inspiring me to learn Gradio
Thanks to Gradio for their easy-to-use Web UI building tool and great docs

