multimodalart's picture
multimodalart HF Staff
Upload folder using huggingface_hub
f7dc16a verified
|
Raw History Blame Contribute Delete
2.9 kB
---
title: Multics Multiplayer Video
emoji: 🎮
colorFrom: gray
colorTo: green
sdk: gradio
sdk_version: 6.30.0
app_file: app.py
short_description: 4-player interactive video world model
python_version: "3.12"
startup_duration_timeout: 1h
---
# Multics · Generative Multi-Player Video World Model
Demo Space for **[TencentARC/Multics](https://huggingface.co/TencentARC/Multics)** — a hierarchical
multi-player video world model (Wan2.2-TI2V-5B backbone) that renders one synchronous
4-player Counter-Strike-style clip from per-player first frames, captions, and real in-game
action/camera tick logs. Project page / code: [github.com/TencentARC/Multics](https://github.com/TencentARC/Multics).
## What the demo does
- **Bundled scenes** — the authors' five 4-player example scenes ship with the Space
(`examples/4players/4_01` … `4_05`), each containing per-player first frames, the original
64 Hz tick logs (keyboard/mouse actions + camera poses), and the grouping state. Picking a
scene replays it: the tick logs drive each player's actions and camera, and pose-based
grouping decides which players share a local hub. Non-empty captions override the scene's
own captions.
- **Custom mode** — upload four first frames and per-player captions. There are no tick logs
for custom content, so the demo uses zero actions, identity cameras (static view), and a
fixed 2+2 grouping (players 1+2 and 3+4 share a local hub), which stays well inside the
model's communication budget for 4 players.
- Output is a 165-frame (~8 s at 20 fps) 352×640-per-player 4-up grid video.
## Heavy job — PRO needed
One generation runs ~1.4k forward passes of the ~5B DiT (50 steps × 14 latent blocks × 2 CFG
passes + context recaches) and takes several minutes of GPU time. It exceeds the free ZeroGPU
daily quota; a PRO account is needed to run it. Reduce *Inference steps* in Advanced options
for faster (lower-quality) runs.
## Implementation notes / deviations from the reference config
The Space vendors the model's inference package (`multics/`) and follows the authors'
`inference.py` load path (pipeline → `enable_stage2` → `build_dit` → strict checkpoint load).
Two attention settings differ from `configs/inference.yaml` to stay ZeroGPU-compatible:
- `attn_impl: sdpa` instead of `flex` (flex requires `torch.compile`, unsupported on ZeroGPU;
the flex block-mask is bypassed during cached inference anyway).
- `WAN_HIER_INFER_KERNEL: packed_varlen` instead of `paged_kv` (paged_kv needs flashinfer;
packed_varlen implements the same hierarchical packing on the native torch varlen
flash-attention op).
## Example-content credit
The bundled example frames and tick logs are from the [Multics repository](https://github.com/TencentARC/Multics)
(© Multics authors). The demo content derives from the OpenCS2 dataset. See that repo for
license and attribution details.