A modular, production-grade, cloud-native video inpainting and enhancement platform featuring state-of-the-art AI models for object removal, background replacement, and video restoration.
We've implemented four revolutionary approaches representing the cutting-edge of video inpainting research:
FloED combines optical flow estimation with diffusion models to generate seamless, temporally consistent results. Our implementation features:

Key benefits of FloED:
ProPainter uses a transformer-based architecture with a dual-branch design for flow completion and content generation.

Key benefits of ProPainter:
The platform uses a modular, plugin-based architecture with these core components:
We provide an example script demonstrating text-guided segmentation using Grounding DINO with SAM:
# Download the required models
python download_grounding_dino_sam.py
# Run the example
cd examples
python text_guided_segmentation.py --input <image_path> --prompt "person" --visualize
See the examples directory for more detailed instructions and additional examples.
The easiest way to get started is using our Docker deployment:
# Clone the repository
git clone https://github.com/yourusername/video-inpainting-platform.git
cd video-inpainting-platform
# One-command deployment (Linux/macOS)
chmod +x deploy.sh
./deploy.sh full
# Windows users
deploy.bat full
This will:
See our comprehensive Docker Deployment Guide for detailed instructions.
For optimal performance and direct system access on Linux:
# Clone the repository
git clone https://github.com/yourusername/video-inpainting-platform.git
cd video-inpainting-platform
# Run the automated installer (supports Ubuntu, CentOS, Debian, Arch)
chmod +x install_linux.sh
./install_linux.sh
# Start the platform
./start_server.sh
Linux Requirements:
The installer will:
For detailed Linux installation instructions, troubleshooting, and advanced configuration, see LINUX_NATIVE_SETUP.md.
For cloud GPU deployment on RunPod:
# Deploy on RunPod (no sudo required)
cd /workspace
git clone https://github.com/yourusername/video-inpainting-platform.git
cd video-inpainting-platform
chmod +x install_runpod.sh
./install_runpod.sh
# Start the platform
./start_runpod.sh
RunPod Requirements:
RunPod Features:
Access via: https://<pod-id>-5000.proxy.runpod.net
For detailed RunPod setup instructions, see RUNPOD_SETUP.md.
git clone https://github.com/yourusername/video-inpainting-platform.git
cd video-inpainting-platform
pip install -r requirements.txt
# Download all models (recommended)
python download_all_models.py
# Or download specific models
python download_grounding_dino_sam.py # For text-guided segmentation
python download_floed_models.py # For FloED inpainting
python download_propainter_models.py # For ProPainter inpainting
# Docker deployment
./deploy.sh start # Linux/macOS
deploy.bat start # Windows
# Manual installation
cd web
python app.py
Then open your browser at http://localhost:5000
python run_inpainting.py --input <video_path> --remove "person" --inpaint "background"
We provide comprehensive Docker support for easy deployment:
# Linux/macOS
./deploy.sh [command]
# Windows
deploy.bat [command]
# Available commands:
# full - Complete setup (build + download + start)
# build - Build Docker image
# download - Download models
# start - Start platform
# stop - Stop platform
# status - Show status
# logs - Show logs
# shell - Interactive shell
# update - Update platform
# cleanup - Cleanup containers
The platform uses YAML configuration files for pipeline customization:
Key settings in resources/propainter_config_example.yaml:
# Model paths
model_path: 'models/propainter/propainter_m9.pth'
flow_model_path: 'models/raft/raft_things.pth'
# Memory optimization
max_sub_video_length: 80 # Reduce if facing OOM issues
fp16_mode: true # Use half-precision for memory efficiency
# Processing parameters
resize_ratio: 1.0 # Resize ratio for input frames
Key settings in resources/floed_config_example.yaml:
# Model paths
model_path: 'models/floed/model.ckpt'
flow_model_path: 'models/raft/raft_things.pth'
# Diffusion parameters
num_inference_steps: 50
guidance_scale: 7.5
See resources/floed_config_example.yaml and resources/propainter_config_example.yaml for complete examples.
For processing large videos with limited GPU memory:
fp16_mode: true)max_sub_video_length to process fewer frames at onceresize_ratio below 1.0 to downscale input resolutionneighbor_length and increase ref_strideExample:
# 1. Create custom inpainter
class MyCustomInpainter(VideoInpainter):
def __init__(self, model_loader):
super().__init__(model_loader)
# Your initialization code...
def inpaint_batch(self, frames, masks, prompt, ...):
# Your implementation...
# 2. Register with plugin registry
from core.plugin_registry import plugin_registry
plugin_registry.register('inpainting', 'my_custom', MyCustomInpainter)
# 3. Use in configuration
# pipeline.plugins.inpainting: "my_custom"
See PROJECT_ROADMAP.md for the full development roadmap.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
1 commits
Python
78.1%
HTML
10.3%
Shell
8.1%
Batchfile
1.4%
A modular, production-grade, cloud-native video inpainting and enhancement platform featuring state-of-the-art AI models for object removal, background replacement, and video restoration.
We've implemented four revolutionary approaches representing the cutting-edge of video inpainting research:
FloED combines optical flow estimation with diffusion models to generate seamless, temporally consistent results. Our implementation features:

Key benefits of FloED:
ProPainter uses a transformer-based architecture with a dual-branch design for flow completion and content generation.

Key benefits of ProPainter:
The platform uses a modular, plugin-based architecture with these core components:
We provide an example script demonstrating text-guided segmentation using Grounding DINO with SAM:
# Download the required models
python download_grounding_dino_sam.py
# Run the example
cd examples
python text_guided_segmentation.py --input <image_path> --prompt "person" --visualize
See the examples directory for more detailed instructions and additional examples.
The easiest way to get started is using our Docker deployment:
# Clone the repository
git clone https://github.com/yourusername/video-inpainting-platform.git
cd video-inpainting-platform
# One-command deployment (Linux/macOS)
chmod +x deploy.sh
./deploy.sh full
# Windows users
deploy.bat full
This will:
See our comprehensive Docker Deployment Guide for detailed instructions.
For optimal performance and direct system access on Linux:
# Clone the repository
git clone https://github.com/yourusername/video-inpainting-platform.git
cd video-inpainting-platform
# Run the automated installer (supports Ubuntu, CentOS, Debian, Arch)
chmod +x install_linux.sh
./install_linux.sh
# Start the platform
./start_server.sh
Linux Requirements:
The installer will:
For detailed Linux installation instructions, troubleshooting, and advanced configuration, see LINUX_NATIVE_SETUP.md.
For cloud GPU deployment on RunPod:
# Deploy on RunPod (no sudo required)
cd /workspace
git clone https://github.com/yourusername/video-inpainting-platform.git
cd video-inpainting-platform
chmod +x install_runpod.sh
./install_runpod.sh
# Start the platform
./start_runpod.sh
RunPod Requirements:
RunPod Features:
Access via: https://<pod-id>-5000.proxy.runpod.net
For detailed RunPod setup instructions, see RUNPOD_SETUP.md.
git clone https://github.com/yourusername/video-inpainting-platform.git
cd video-inpainting-platform
pip install -r requirements.txt
# Download all models (recommended)
python download_all_models.py
# Or download specific models
python download_grounding_dino_sam.py # For text-guided segmentation
python download_floed_models.py # For FloED inpainting
python download_propainter_models.py # For ProPainter inpainting
# Docker deployment
./deploy.sh start # Linux/macOS
deploy.bat start # Windows
# Manual installation
cd web
python app.py
Then open your browser at http://localhost:5000
python run_inpainting.py --input <video_path> --remove "person" --inpaint "background"
We provide comprehensive Docker support for easy deployment:
# Linux/macOS
./deploy.sh [command]
# Windows
deploy.bat [command]
# Available commands:
# full - Complete setup (build + download + start)
# build - Build Docker image
# download - Download models
# start - Start platform
# stop - Stop platform
# status - Show status
# logs - Show logs
# shell - Interactive shell
# update - Update platform
# cleanup - Cleanup containers
The platform uses YAML configuration files for pipeline customization:
Key settings in resources/propainter_config_example.yaml:
# Model paths
model_path: 'models/propainter/propainter_m9.pth'
flow_model_path: 'models/raft/raft_things.pth'
# Memory optimization
max_sub_video_length: 80 # Reduce if facing OOM issues
fp16_mode: true # Use half-precision for memory efficiency
# Processing parameters
resize_ratio: 1.0 # Resize ratio for input frames
Key settings in resources/floed_config_example.yaml:
# Model paths
model_path: 'models/floed/model.ckpt'
flow_model_path: 'models/raft/raft_things.pth'
# Diffusion parameters
num_inference_steps: 50
guidance_scale: 7.5
See resources/floed_config_example.yaml and resources/propainter_config_example.yaml for complete examples.
For processing large videos with limited GPU memory:
fp16_mode: true)max_sub_video_length to process fewer frames at onceresize_ratio below 1.0 to downscale input resolutionneighbor_length and increase ref_strideExample:
# 1. Create custom inpainter
class MyCustomInpainter(VideoInpainter):
def __init__(self, model_loader):
super().__init__(model_loader)
# Your initialization code...
def inpaint_batch(self, frames, masks, prompt, ...):
# Your implementation...
# 2. Register with plugin registry
from core.plugin_registry import plugin_registry
plugin_registry.register('inpainting', 'my_custom', MyCustomInpainter)
# 3. Use in configuration
# pipeline.plugins.inpainting: "my_custom"
See PROJECT_ROADMAP.md for the full development roadmap.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
1 commits
Python
78.1%
HTML
10.3%
Shell
8.1%
Batchfile
1.4%