← all repositories
sczhou/ProPainter

Video inpainting that won't melt your GPU

An ICCV 2023 method for removing objects and filling holes in video, with explicit knobs for trading quality against VRAM.

ProPainter
Velocity · 7d
+6.7
★ / day
Trend
steady
star history

What it does ProPainter takes a video plus a mask (or sequence of masks) and fills the masked regions with plausible, temporally consistent content. The main use cases shown are object removal—paint out a car, a person, a tree—and video completion, where large masked areas get reconstructed from unmasked frames. It ships with pretrained models and a Gradio demo you can run locally or try on Hugging Face.

The interesting bit The authors actually bothered to address the memory wall. Video inpainting models are notorious for OOM errors; here you get six separate levers—subvideo length, neighbor count, reference stride, resize ratio, resolution, and fp16—to ratchet GPU memory down. They even publish a lookup table: 720p at 80 frames needs 25 GB in fp16, but drop to 320×240 and you’re at 3 GB. That kind of explicit cost-quality tradeoff is rare in research code.

Key highlights

  • Pretrained models auto-download on first run; no manual weight hunting
  • Interactive Hugging Face demo for click-and-remove object selection
  • Memory-efficient inference with decoupled video length and GPU cost via --subvideo_length
  • Training and eval configs included for both the flow completion network and full ProPainter model
  • Evaluates on standard benchmarks (DAVIS, YouTube-VOS) with provided splits and masks

Caveats

  • Non-commercial license only (NTU S-Lab License 1.0); commercial use requires contacting the author
  • Watermark removal demos were explicitly removed to prevent misuse
  • No Colab demo yet; TODO list shows it’s still pending

Verdict Worth a look if you need research-grade video inpainting with documented memory budgets and working inference scripts. Skip it if you need a commercial product or want turnkey mobile deployment.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.