--- title: Video Replace Background workflow emoji: 🎬 colorFrom: indigo colorTo: green sdk: gradio sdk_version: 6.29.1 app_file: app.py pinned: false hf_oauth: true short_description: replace video background with LTX alpha LoRA + H3 inpainting suggested_hardware: zero-a10g --- # Video Replace Background Put a video subject on a new, generated background - or just remove the background - by chaining two models: 1. **Lift the subject** with the LTX-2.5 Alpha-Gen matte LoRA ([Lightricks/LTX-2.5-22b-IC-LoRA-Alpha-Gen](https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-Alpha-Gen)), called over the gradio API: video in, alpha matte + green-screen out. 2. **Regenerate the background** with MiniMax-H3 ref2va inpainting ([multimodalart/MiniMax-H3-Pruned](https://huggingface.co/multimodalart/MiniMax-H3-Pruned)), held in this Space via the [inpainting modular blocks](https://huggingface.co/diffusers-modular/minimax-h3-inpainting). The subject is handed to H3 as conditioning; the inverted matte marks the background as the region to repaint. Text encoding runs on the `qwen3vl-conditioner` Space, so this one never loads a 60 GiB encoder. Upload any clip and describe the background, or turn on **Just remove the background** for a subject-on-black cutout (no generation). **Relight strength** is the quality lever: at 0 the subject is held exactly (best when the new background's light matches the original); turn it up and H3 lights the subject into the new scene so it does not read as a cutout, while keeping identity. Runs on ZeroGPU with the [ref2v turbo LoRA](https://huggingface.co/lightx2v/Minimax-h3-Turbo) at 8 steps. The matte and conditioner calls bill the caller's ZeroGPU quota, same as the denoise. The matte is cached per input clip, so changing only the prompt reuses it and skips the LTX pass.