Skip to content

An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming.

License

Notifications You must be signed in to change notification settings

royshil/obs-backgroundremoval

Repository files navigation

OBS Plugin: Portrait Background Removal / Virtual Green-screen and Low-Light Enhancement

GitHub GitHub Workflow Status Total downloads Flathub GitHub release (latest by date)

A plugin for OBS Studio that allows you to replace the background in portrait images and video, as well as enhance low-light scenes.

⬇️ Download & Install OBS Background Removal ⬇️

Or, browse versions on releases page.

Usage

OBS.Background.Removal.Plugin.Tutorial-veqNEsMqEE0.mp4

Check out the usage guide page for usage walkthrough and recommendations.

Additional tutorial videos:

Introduction

This plugin is meant to make it easy to replace the background in portrait images and video. It is using a neural network to predict the mask of the portrait and remove the background pixels. It's easily composable with other OBS plugins to replace the background with e.g. an image or a transparent color.

If you like this work, which is given to you completely free of charge, please consider supporting it by sponsoring us on GitHub:

Support and Help

Reach out to us on GitHub Discussions or the OBS Plugins forum for online / immediate help.

If you found a bug or want to suggest a feature or improvement please open an issue.

If you are looking for hands-on help or private consultation please select a sponsorship tier.

Technical Details

GPU support:

  • On Windows, we plan to support WinML acceleration.
  • On Mac we support CoreML for acceleration, which is efficient on Apple Silicon. Note: This plugin does not support cross-architecture translation (Rosetta2). Intel binaries on Apple Silicon or Apple Silicon binaries on Intel will crash.
  • On Linux CUDA and ROCM are supported if this plugin is built from source. Ensure your ONNX Runtime installation has CUDA or ROCM support.
  • The goal of this plugin is to be available for everyone on every system, even if they don't own a GPU.

Number of CPU threads is controllable through the UI settings. A 2-thread setting works best.

The pretrained model weights used for portrait foreground segmentation are taken from:

Image enhancement (low light) models are taken from:

Some more information about how I built it: https://www.morethantechnical.com/2021/04/15/obs-plugin-for-portrait-background-removal-with-onnx-sinet-model/ and https://www.morethantechnical.com/2023/05/20/building-an-obs-background-removal-plugin-a-walkthrough/

Code Walkthrough

This video on YouTube will take you through the major parts of the code and explain them.

Star History Chart