CoolFace
Modelpublic

youngsong305/MV-S2V

sourceHugging Faceupdated 3mo agoView on Hugging Face
9likes147downloads
Model Card

MV-S2V: Multi-View Subject-Consistent Video Generation

<div align="center">

![arXiv](https://arxiv.org/abs/2601.17756)&nbsp; ![project page](https://szy-young.github.io/mv-s2v)&nbsp; <a href="https://huggingface.co/youngsong305/MV-S2V"><img src="https://img.shields.io/static/v1?label=%F0%9F%A4%97%20Hugging%20Face&message=Model&color=orange"></a>&nbsp; <a href="https://huggingface.co/datasets/youngsong305/MV-S2V-Bench"><img src="https://img.shields.io/static/v1?label=%F0%9F%A4%97%20Hugging%20Face&message=Benchmark&color=yellow"></a>&nbsp; ![SIGGRAPH 2026](https://s2026.siggraph.org)

</div>

**MV-S2V: Multi-View Subject-Consistent Video Generation**<br> Ziyang Song<sup>1</sup>, Xinyu Gong<sup>2</sup>, Bangya Liu<sup>3</sup>, Zelin Zhao<sup>4</sup> <br><sup>1</sup>The Hong Kong Polytechnic University &nbsp;&nbsp; <sup>2</sup>The University of Texas at Austin &nbsp;&nbsp; <sup>3</sup>University of Wisconsin–Madison &nbsp;&nbsp; <sup>4</sup>Georgia Institute of Technology<br> <br>SIGGRAPH 2026<br>

<p align="center"> <img src="assets/overview.png" width="95%"> </p>

πŸ“– Overview

MV-S2V is the first framework that synthesizes videos from multiple reference views of the same subject to enforce 3D-level subject consistency. Existing subject-to-video methods condition on a single reference image and are therefore forced to hallucinate unseen details when generating novel views. MV-S2V tackles this by:

  • β€”πŸ§Š Multi-view conditioning β€” accepts an arbitrary number of reference views and produces a coherent video that respects all of them.
  • β€”πŸŒ€ Temporally-Shifted RoPE (TS-RoPE) β€” a positional-encoding scheme that disambiguates cross-subject and cross-view references.
  • β€”πŸ“¦ Synthetic + real-world dataset β€” a data curation pipeline for high-quality multi-view subject-to-video training data.

The model in this repo is a 14B Subject-to-Video DiT built on top of Wan2.1.

πŸ“‘ Todo List

  • β€”[x] Inference code
  • β€”[x] Pretrained 14B checkpoint
  • β€”[x] Benchmark dataset (MV-S2V-Bench)
  • β€”[ ] Evaluation suite

⚑️ Quickstart

Installation

sh
git clone https://github.com/szy-young/mv-s2v.git
cd mv-s2v
# Ensure torch >= 2.4.0
pip install -r requirements.txt
# For multi-GPU inference
pip install "xfuser>=0.4.1"

Model Download

ModelResolutionDownload
MV-S2V-14B480pπŸ€— HuggingFace

MV-S2V re-uses the VAE and T5 text encoder from Wan2.1-T2V-14B. Download the base checkpoint first:

sh
pip install "huggingface_hub[cli]"
huggingface-cli download Wan-AI/Wan2.1-T2V-14B --local-dir ./Wan2.1-T2V-14B

Then place our DiT weights at ./checkpoints/diffusion_pytorch_model[.safetensors|.safetensors.index.json].

Run Multi-View Subject-to-Video Generation

The simplest way to reproduce all examples in this repo:

sh
bash infer.sh

infer.sh exposes two paths to edit:

sh
WAN_CKPT="./Wan2.1-T2V-14B"               # Wan2.1 base (VAE + T5)
DIT_CKPT="./checkpoints/diffusion_pytorch_model"  # MV-S2V DiT weights
Single-prompt inference (multi-GPU FSDP + xDiT USP)
sh
torchrun --nproc_per_node=2 --master-port 14435 generate.py \
    --task s2v-14B \
    --size 640*640 \
    --frame_num 121 --sample_fps 24 \
    --ckpt_dir ${WAN_CKPT} \
    --phantom_ckpt ${DIT_CKPT} \
    --dit_fsdp --t5_fsdp --ulysses_size 2 \
    --ref_image "examples/object_images/box_multi_door_colored/object_0.png,examples/object_images/box_multi_door_colored/object_1.png,examples/object_images/box_multi_door_colored/object_2.png,examples/object_images/box_multi_door_colored/object_3.png" \
    --prompt "The video starts with a small, wooden activity cube with colorful panels and metal locks, topped with a teal plastic handle, sitting on a child's playroom floor with a soft rug and scattered toys in the background. As the camera smoothly orbits around the activity cube, the background gradually reveals a low bookshelf filled with children's books and puzzles on one side, and a painted wall adorned with cheerful animal decals and a cozy reading nook with cushions on the other." \
    --save_file examples/videos/box_multi_door_colored.mp4 \
    --base_seed 42 \
    --rpe_mode ts_rope \
    --sample_guide_scale_img 2.5
Key arguments
FlagDescription
--ref_imageComma-separated paths to reference images. Mix object and human views freely (≀ 4 object views + 1 optional human view).
--rpe_modeRoPE scheme for reference tokens: vanilla, ss_rope (spatial-shift), ts_rope (our Temporally-Shifted RoPE, recommended).
--sample_guide_scale_imgImage classifier-free guidance scale. We use 2.5 for object-centric and HOI scenes.
--view_numberSub-sample views at inference time (-1 = use all).
--ulysses_sizexDiT Ulysses parallel degree (set equal to --nproc_per_node).

<!-- ## πŸ–ΌοΈ Examples

The four configurations executed by infer.sh:

SettingReference viewsPrompt theme
Object-centricexamples/object_images/box_multi_door_colored/object_{0..3}.pngCamera orbit around an activity cube
Object-centricexamples/object_images/schleich_bald_eagle/object_{0..3}.pngCamera orbit around a bald-eagle figurine
Human-object interaction4 object views + examples/human_images/00146.pngWoman holding a toy race car
Human-object interaction4 object views + examples/human_images/00129.pngMan holding a wooden nutcracker

Generated videos are written to examples/videos/*.mp4. A larger gallery and qualitative comparisons against single-view baselines are on the project page. -->

πŸ™ Acknowledgements

This project builds on the open-source efforts of Wan2.1 and Phantom. We thank their authors for releasing high-quality video generation backbones.

⭐ Citation

If you find MV-S2V useful for your research, please cite our paper and ⭐ this repo.

bibtex
@inproceedings{song2026mvs2v,
  title     = {MV-S2V: Multi-View Subject-Consistent Video Generation},
  author    = {Song, Ziyang and Gong, Xinyu and Liu, Bangya and Zhao, Zelin},
  booktitle = {ACM SIGGRAPH},
  year      = {2026}
}

πŸ“§ Contact

For questions or collaboration, please open a GitHub issue or contact Ziyang Song.