Instructions to use Ysz2022/UniVOE with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use Ysz2022/UniVOE with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline from diffusers.utils import load_image, export_to_video # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("Ysz2022/UniVOE", dtype=torch.bfloat16, device_map="cuda") pipe.to("cuda") prompt = "A man with short gray hair plays a red electric guitar." image = load_image( "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/guitar-man.png" ) output = pipe(image=image, prompt=prompt).frames[0] export_to_video(output, "output.mp4") - Notebooks
- Google Colab
- Kaggle
UniVOE β A Removal-Driven Framework for Interaction-Aware Universal Video Object Editing
Paper: UniVOE: A Removal-Driven Framework for Interaction-Aware Universal Video Object Editing Β· Shuzhou Yang, Lanqing Guo, Lingen Li, Weiqi Li, Zhao Zhong, Liefeng Bo, Jian Zhang Β· Peking University (SECE), Tencent Hunyuan, The Chinese University of Hong Kong
Code: https://github.com/Tencent-Hunyuan/UniVOE
Weights for UniVOE, a video object editing framework built on Wan2.1-VACE-14B. Object removal and injection are treated as reciprocal operations between an object-present and an object-absent video; besides the object itself, UniVOE edits the interaction effects it leaves on the scene β shadows, reflections, footprints and lighting.
Removal: "remove the woman" Β· Injection: "Inject the woman" β the model also updates the effects tied to the object.
Files
| File | Model | Steps | Where it goes |
|---|---|---|---|
remove_12step_vace.safetensors |
remove-12step (control branch) |
12 | checkpoints/UniVOE/ |
remove_12step_dit_lora.safetensors |
remove-12step (DiT LoRA, rank 32) |
12 | checkpoints/UniVOE/ |
remove_50step_vace.safetensors |
remove-50step (control branch) |
50 | checkpoints/UniVOE/ |
inject_50step_vace.safetensors |
inject-50step (control branch, after GRAR) |
50 | checkpoints/UniVOE/ |
remove-12step needs both of its files; the two 50-step models need only their single file.
Model size
The full system is 23B parameters: a 14B frozen Transformer backbone, a 3B trainable control
branch (VACE) and the text encoder / VAE. The files here are the 3B control branch β 6.1 GB in
bf16 each β plus a 153M DiT LoRA for the 12-step remover. The 14B backbone, text encoder and VAE are
the public Wan2.1-VACE-14B base model, which must be
downloaded separately. Removal additionally needs GroundingDINO, SAM2 and bert-base-uncased β see
the code repository for links and setup.
| File | Size | SHA-256 |
|---|---|---|
remove_12step_vace.safetensors |
6.1 GB | 5b8f224841232c26abe403774920b9fd0ae5b3c674bd8faf4680c181e31c66a8 |
remove_12step_dit_lora.safetensors |
307 MB | beffa706a6b0261c6c92fa270ac466a33deda2ea4e703a384a30ac01d3c6bd8c |
remove_50step_vace.safetensors |
6.1 GB | 3971aaa457aaeb977c40aa4e1b7d58238ccf15a80ed9224851f95d6edd4eb4ea |
inject_50step_vace.safetensors |
6.1 GB | 098936173cb0e8f40e8e4712c047052287b09d3b82f133cda63a1caaf04d75cd |
Download
huggingface-cli download Ysz2022/UniVOE --local-dir checkpoints/UniVOE
# or a single model:
huggingface-cli download Ysz2022/UniVOE --include "remove_12step_*" --local-dir checkpoints/UniVOE
Then clone the inference code, place this folder under its checkpoints/, and follow its README.
Usage
- Removal β input video + instruction, optionally a first-frame reference with the object
already removed.
remove-12stepis the default;remove-50stepis ~4Γ slower. - Injection β object-absent video + instruction, optionally a first-frame reference with the object inserted. Injection is mask-free: the object may appear anywhere in the video.
bash run_erase.sh # removal, 12-step
STEPS=50 bash run_erase.sh # removal, 50-step
bash run_inject.sh # injection
Settings
| Item | remove-12step |
remove-50step |
inject-50step |
|---|---|---|---|
| Denoising steps | 12 | 50 | 50 |
| Resolution | 832 Γ 480 | 832 Γ 480 | 832 Γ 480 |
| Frames | 4n+1, at most 237 | 4n+1, at most 237 | 4n+1, at most 237 |
| CFG scale / sigma shift / seed | 5.0 / 5.0 / 42 | 5.0 / 5.0 / 42 | 5.0 / 5.0 / 42 |
| References | none / first / first+tail / first+mid+tail | none / first / first+tail | none / first / first+tail |
Method at a glance
- Effect-aware remover β an inpainting prior is transferred to removal and finetuned on object-present / object-absent pairs with an inflated object mask, so the model recovers the whole object-absent scene, not just the mask interior.
- 12-step distillation β the remover is distilled from 50 to 12 steps with a rank-32 backbone LoRA, enabling large-scale object-absent generation at a fraction of the cost.
- Removal-driven injection β the trained remover converts real object-present videos into object-absent counterparts, giving paired injection supervision with real motion and interaction effects, together with curated open-source data.
- GRAR post-training β Group-Relative Advantage Regression updates the injector online with signed group-relative rewards from a preference-aligned reward model, without a reference policy.
Intended use and limitations
- Intended for: research and creative video editing β object removal and insertion in short clips (up to 237 frames at 832Γ480).
- Not intended for: deceptive editing of real people or events, or any use that misrepresents footage of identifiable individuals. Videos and instructions are supplied by the user.
- Output quality depends on the instruction and on the reference image; crowded scenes and heavy camera motion may show artifacts. Instructions are in English.
Citation
@article{yang2026univoe,
title = {UniVOE: A Removal-Driven Framework for Interaction-Aware Universal Video Object Editing},
author = {Yang, Shuzhou and Guo, Lanqing and Li, Lingen and Li, Weiqi and Zhong, Zhao and Bo, Liefeng and Zhang, Jian},
journal = {arXiv preprint arXiv:2610.31641},
year = {2026}
}
Licence and attribution
- These weights are released under [LICENSE-PLACEHOLDER].
- Built on Wan2.1-VACE-14B; its licence applies to the base model.
- The inference code builds on DiffSynth-Studio (Apache-2.0) and uses SAM2 and GroundingDINO for object localisation.
- Downloads last month
- 61