Lei Cao1,2* · Yu Liu2* · Wenhua Liao2 · Peng Zhang2‡ · Fei Wang2 · Hao Zhang1 · Jiajun Le1 · Daiguo Zhou2† · Jian Luan2 · Jiayi Ma1,3†
1Electronic Information School, Wuhan University 2MiLM Plus, Xiaomi Inc. 3School of Robotics, Wuhan University
*Equal Contribution ‡Project Lead †Co-corresponding Authors
Given one reference image, a target camera trajectory, and 1–4 viewpoint anchor images of the subject (from arbitrary viewpoints), WorldCast generates a video that follows the target camera motion while preserving the subject's identity across viewpoints.
- [2026.10] Initial release: inference code, bundled demo case, and project page.
- Release inference code and demo
- Release paper (arXiv)
- Release model checkpoints
- Release CLACT dataset
- Release training code
git clone https://github.com/PixCtrol/WorldCast
cd WorldCastPython >= 3.10, a CUDA GPU (>= 48 GB recommended for the 14B model at 480x832; memory scales with resolution and frame count), bf16.
pip install -r requirements.txt| Component | Source | Place at |
|---|---|---|
| Wan2.1-I2V-14B-720P base | HuggingFace Wan-AI/Wan2.1-I2V-14B-720P |
pretrained/Wan2.1-I2V-14B-720P/ |
Note: WorldCast trained checkpoints (identity bank + anchor adapter) are coming soon (see TODO). The demos below additionally require them and cannot run until they are available.
Bundled five-trajectory demo (preprocessed case included; requires the WorldCast checkpoints, see the note above):
python demo.py \
--manifest demo_case_traj5.json \
--model_root pretrained/Wan2.1-I2V-14B-720P \
--ckpt checkpoints/worldcast_bank.safetensors \
--init_dit_from checkpoints/base_dit.safetensors--traj presets (built by scripts/data/trajectories.py):
| Trajectory | Motion |
|---|---|
orbit_360 |
horizontal 360° ring about the subject |
lemniscate |
Gerono figure-8 in the first-frame screen plane |
orbit_tilt_20 |
360° ring pivoted to a 20° tilt |
orbit_180_push |
180° arc with a sinusoidal push-pull radius ripple |
zoom_out |
one-way dolly out from the subject |
turn_left / turn_right |
one-way truck left / right (0.5× subject distance) |
zoom_in |
one-way dolly in, to 0.6× the subject distance |
The orbit family is degree-parameterized: orbit_<N>[_cw|_ccw] builds a
horizontal arc of N degrees (1–360), clockwise or counterclockwise viewed
from above; without a suffix the arc continues the base trajectory's own
direction. orbit_360 is the closed-ring preset itself.
For batch inference over custom cases, see scripts/infer/infer_worldcast.py
and launch/infer/run_anchor_inference_example.sh; the manifest format is
shown in examples/anchor_case_manifest.example.json, and the bundled
demo_case/ illustrates the full case layout.
If WorldCast is useful for your research, please cite our paper:
@misc{worldcast,
title = {WorldCast: World-Consistent Character Video Generation with Large-Angle Camera Control},
author = {Cao, Lei and Liu, Yu and Liao, Wenhua and Zhang, Peng and Wang, Fei and Zhang, Hao and Le, Jiajun and Zhou, Daiguo and Luan, Jian and Ma, Jiayi},
year = {2026},
eprint = {2610.33135},
archivePrefix = {arXiv},
primaryClass = {cs.CV},
url = {https://arxiv.org/abs/2610.33135}
}Apache-2.0 (inherited from DiffSynth-Studio). Wan base weights follow their own license from Wan-AI.
WorldCast is built on DiffSynth-Studio.
This work uses SpatialVID under CC BY-NC-SA 4.0 and its Terms of Use. The authors confirm that all uses of this dataset are strictly for academic research purposes and not for any commercial applications.