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 |
- 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.png
using default settings
python interpolate.py
- 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:
benchmark
ckpt
model
config.py
dataset.py
Trainer.py
- If it's set up properly, the following command should write a new file
images/image1.png
python interpolate.py
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
realesrgan
directory to yourEMA-VFI-WebUI
directory
- The Real-ESRGAN 4x+ model (65MB) will automatically download on first use
A few features rely on FFmpeg being available on the system path
The application can be started in any of these ways:
webui.bat
python webui.py
- Command line arguments
--config_path path
path to alternate configuration file, defaultconfig.yaml
--verbose
enables verbose output to the console, default False
- Command line arguments
The core feature have command-line equivalents
- Use
multi_inference
instead of single inference with Frame Search for time-based frame searches - Consolidate the applications; make the interpolation engine switchable in the application
- add Audio tools
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