Kaiyi Huang1,
Wangbo Yu2†,
Yukun Huang2,
Jiwen Yu1,
Kunhao Liu2,
Donglin Yang1,
Wenbo Hu2,
Ying Shan2,
Xihui Liu1†
1 The University of Hong Kong 2 ARC Lab, Tencent IEG
† Corresponding authors.
Multics enables scalable multi-player video generation through hierarchical communication.
Multics.mp4
Multics organizes communication across player, group, and global levels, using dynamic grouping based on recent player positions and camera poses. This hierarchy improves cross-player consistency, action and camera controllability, and robustness to interference while reducing attention computation. Shared group-token parameters allow a model trained with 4 players to generalize to 6, 8, and 10 players without retraining.
- 🔥 [2026/10] Paper, training and inference code released.
Requires Linux, Python 3.12, an NVIDIA GPU, the CUDA 12.8 toolkit, and a C++ compiler.
From the repository root, install dependencies with uv:
uv sync --locked
source .venv/bin/activateDownload the complete inference bundle from TencentARC/Multics, including the 4-player checkpoint, VAE, text encoder, and tokenizer:
hf download TencentARC/Multics --local-dir modelsGenerate example 4_01 from its first frames, captions, and tick logs:
python inference.py --config configs/inference_demo.yaml \
--checkpoint models/multics/4players/checkpoints/model.ckpt \
--hparams models/multics/4players/hparams.yaml \
--case 1Outputs are saved to outputs/inference/4players/. Videos show only the generated player views. Use --cases 1 2 3 4 5 to run all five examples.
The same 4-player checkpoint supports 6-, 8-, and 10-player generation without retraining:
python inference.py --config configs/inference_demo.yaml \
--checkpoint models/multics/4players/checkpoints/model.ckpt \
--hparams models/multics/4players/hparams.yaml \
--num_players 8 --cases 1 2| Players | Examples | Arguments |
|---|---|---|
| 6 | 6_01–6_03 |
--num_players 6 --cases 1 2 3 |
| 8 | 8_01–8_02 |
--num_players 8 --cases 1 2 |
| 10 | 10_01–10_02 |
--num_players 10 --cases 1 2 |
Outputs are saved to outputs/inference/4infer6/, 4infer8/, or 4infer10/. See example inputs for the data format and previews.
Single-GPU inference with configs/inference_demo.yaml: BF16, 640 × 352 per
player, 165 frames, and 50 sampling steps (PyTorch 2.8.0, CUDA 12.8).
GPU memory grows approximately linearly with player count over the tested 4–10 player range:
| Players | Peak allocated (GiB) | Peak reserved (GiB) |
|---|---|---|
| 4 | 59.9 | 74.9 |
| 6 | 75.3 | 97.4 |
| 8 | 90.6 | 119.0 |
| 10 | 106.1 | 139.2 |
Measured PyTorch peaks for reference. Allocated measures tensor memory; reserved also includes allocator cache.
To train the 4-player model, prepare your dataset in the precomputed input format. In addition to the model bundle above, download the original Wan2.2 backbone for initialization:
hf download Wan-AI/Wan2.2-TI2V-5B \
--include 'diffusion_pytorch_model*.safetensors' \
--local-dir models/Wan-AI/Wan2.2-TI2V-5B
uv sync --locked --extra distributed
NPROC_PER_NODE=8 bash scripts/train.sh \
--config configs/train.yaml \
--dataset_path /path/to/data \
--metadata_file_name train.csvSet NPROC_PER_NODE to your GPU count. Training defaults are provided in configs/train.yaml.
This project is built on Wan and DiffSynth-Studio. We thank the authors for their open-source contributions.
We also thank the creators of OpenCS2 for making their dataset publicly available.
The code is released under the Apache-2.0 license. Model weights and example content retain their upstream terms.
If you find this work useful, please cite:
@misc{huang2026multics,
title = {Multics: Generative Multi-Player World Model with Hierarchical Communication},
author = {Huang, Kaiyi and Yu, Wangbo and Huang, Yukun and Yu, Jiwen and Liu, Kunhao and Yang, Donglin and Hu, Wenbo and Shan, Ying and Liu, Xihui},
year = {2026},
eprint = {2610.17201},
archivePrefix = {arXiv},
url = {https://arxiv.org/abs/2610.17201}
}