MCP-1st-Birthday/VideoBackgroundReplacer2
0
๐ฌ BackgroundFX Pro โ Professional Video Background Replacement
BackgroundFX Pro is a GPU-accelerated app for Hugging Face Spaces (Docker) that replaces video backgrounds using:
- SAM2 โ high-quality object segmentation
- MatAnyone โ temporal video matting for stable alpha over time
Built on: CUDA 12.1.1, PyTorch 2.5.1 (cu121), torchvision 0.20.1, Streamlit 1.49.1.
โจ Features
- Replace backgrounds with: solid color, AI-generated image (procedural), custom uploaded image, or professional backgrounds
- Optimized for T4 GPUs on Hugging Face
- Two-stage pipeline: SAM2 segmentation โ MatAnyone refinement โ compositing
- Caching & logs stored in the repo volume:
- HF cache โ
./.hf - Torch cache โ
./.torch - App data & logs โ
./data(seedata/run.log) - FFmpeg โ video format conversion and frame extraction
๐ Try It
Open the Space in your browser (GPU required): https://huggingface.co/spaces/MogensR/VideoBackgroundReplacer2
๐ฑ๏ธ How to Use
- Upload a video (
.mp4,.mov,.avi,.mkv). - Choose a Background Type: Image, Color, Blur, Professional Backgrounds, or AI Generated.
- If using custom background, upload your image or select from professional options.
- Click ๐ Process Video.
- Preview and ๐พ Download Result.
Tip: Start with 720p/1080p on T4; 4K can exceed memory limits.
๐๏ธ Project Structure (key files)
Dockerfileโ CUDA 12.1.1 + PyTorch 2.5.1 containerrequirements.txtโ Python dependenciesapp.pyโ Main Streamlit applicationintegrated_pipeline.pyโ Two-stage processing pipelinemodels/sam2_loader.pyโ SAM2 model loader with HF Hub integrationmodels/matanyone_loader.pyโ MatAnyone model loaderutils/โ Utility functionsdata/โ Created at runtime for logs/outputstmp/โ Created at runtime for processing jobs -video_pipeline.pyโ Core video processing logic (SAM2 + MatAnyone integration)video_pipeline.pyโ Core video processing logic (SAM2 + MatAnyone integration)
โ๏ธ Runtime Notes
- Binds to
PORT/STREAMLIT_SERVER_PORT(defaults to 7860) - File upload limit: 200MB via
--server.maxUploadSize=200 - CORS disabled for Docker compatibility:
--server.enableCORS=false - Memory management with automatic cleanup between stages
- If processing fails, check Space logs for detailed error information
๐งช Local Development (Docker)
Requires an NVIDIA GPU with CUDA drivers.
git clone https://huggingface.co/spaces/MogensR/VideoBackgroundReplacer2
cd VideoBackgroundReplacer2
# Build (Ubuntu 22.04, CUDA 12.1.1; installs Torch 2.5.1+cu121)
docker build -t backgroundfx-pro .
# Run
docker run --gpus all -p 7860:7860 backgroundfx-proAccess at: http://localhost:7860
๐ง Technical Details
Pipeline Architecture
- Stage 1: SAM2 generates object masks using click points
- Stage 2: MatAnyone refines masks for temporal consistency
- Stage 3: Composite foreground with new background
Model Loading
- SAM2 models downloaded from Hugging Face Hub automatically
- Supports small/base/large variants (small recommended for T4)
- MatAnyone loaded from official repository
Performance Optimizations
- T4-specific optimizations (fp16, channels_last)
- Memory pruning during long video processing
- Automatic model unloading between stages
๐ License
MIT License - See LICENSE file for details.
