Add files using upload-large-folder tool
Browse files- README.md +145 -0
- dynamics/action_gpt.pt +3 -0
- dynamics/pose_gpt.pt +3 -0
- observation/diffusion_pytorch_model.safetensors +3 -0
README.md
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
library_name: marionette
|
| 4 |
+
pipeline_tag: video-to-video
|
| 5 |
+
tags:
|
| 6 |
+
- world-model
|
| 7 |
+
- video-generation
|
| 8 |
+
- game
|
| 9 |
+
- pose-control
|
| 10 |
+
- autoregressive
|
| 11 |
+
- arxiv:2608.14530
|
| 12 |
+
---
|
| 13 |
+
|
| 14 |
+
# Marionette β weights
|
| 15 |
+
|
| 16 |
+
Checkpoints for **Marionette: Predicting World States, Rendering Geometry, Painting
|
| 17 |
+
Appearance** ([arXiv:2608.14530](https://arxiv.org/abs/2608.14530)). Code, runnable scripts and
|
| 18 |
+
a gallery: <https://github.com/AlayaLab/Marionette>. Project page:
|
| 19 |
+
<https://alayalab.github.io/Marionette/>.
|
| 20 |
+
|
| 21 |
+
<p align="center">
|
| 22 |
+
<a href="https://youtu.be/bLLtwXVcqEc"><img src="https://raw.githubusercontent.com/AlayaLab/Marionette/main/assets/video_thumb.jpg" width="100%"></a>
|
| 23 |
+
<br><a href="https://youtu.be/bLLtwXVcqEc"><b>▶ Watch the overview video</b></a>
|
| 24 |
+
</p>
|
| 25 |
+
|
| 26 |
+
Marionette factorises an interactive game world model into three stages. Only the first and
|
| 27 |
+
the third carry weights; the middle one is fixed geometry.
|
| 28 |
+
|
| 29 |
+
```
|
| 30 |
+
seed pose βββΆ dynamics βββΆ 276D world state βββΆ bridge βββΆ pose-control video βββΆ observation βββΆ RGB
|
| 31 |
+
ActionGPT zero-parameter, Wan2.2-Fun-5B-Control
|
| 32 |
+
+ PoseGPT deterministic fine-tune, chunk-relay
|
| 33 |
+
```
|
| 34 |
+
|
| 35 |
+
## Files
|
| 36 |
+
|
| 37 |
+
| file | size | stage | what it is |
|
| 38 |
+
|---|---|---|---|
|
| 39 |
+
| `observation/diffusion_pytorch_model.safetensors` | 10.0 GB | observation | control-conditioned video diffusion transformer, fine-tuned from Wan2.2-Fun-5B-Control |
|
| 40 |
+
| `dynamics/pose_gpt.pt` | 402 MB | dynamics | PoseGPT β predicts the next articulated state |
|
| 41 |
+
| `dynamics/action_gpt.pt` | 61 MB | dynamics | ActionGPT β predicts the next action token |
|
| 42 |
+
|
| 43 |
+
**These are not standalone.** The observation stage loads the VAE and the umT5-xxl text encoder
|
| 44 |
+
from the third-party base release, which is not redistributed here:
|
| 45 |
+
|
| 46 |
+
```bash
|
| 47 |
+
bash fetch_base_model.sh # alibaba-pai/Wan2.2-Fun-5B-Control, ~23 GB, Apache-2.0
|
| 48 |
+
```
|
| 49 |
+
|
| 50 |
+
Seeds, the scanned terrain and the appearance reference are in the code repository, not here β
|
| 51 |
+
they pack small enough that a separate download would buy nothing.
|
| 52 |
+
|
| 53 |
+
## Use
|
| 54 |
+
|
| 55 |
+
```bash
|
| 56 |
+
git clone https://github.com/AlayaLab/Marionette && cd Marionette
|
| 57 |
+
bash fetch_weights.sh # the weights in this repo
|
| 58 |
+
bash fetch_base_model.sh # the third-party base model
|
| 59 |
+
bash run_demo.sh # -> samples_out/.../rollout.mp4
|
| 60 |
+
```
|
| 61 |
+
|
| 62 |
+
Inference settings the released checkpoint was evaluated at: 704Γ1280, 40 steps, guidance 6.0,
|
| 63 |
+
81-frame chunks, 30 fps.
|
| 64 |
+
|
| 65 |
+
## The prompt is part of the checkpoint
|
| 66 |
+
|
| 67 |
+
The observation model was trained on captions carrying an explicit appearance id:
|
| 68 |
+
|
| 69 |
+
```
|
| 70 |
+
Monster Hunter Wilds video game gameplay, stage 101, hunter appearance id 9 wielding weapon type 4, fighting monster id 19.
|
| 71 |
+
```
|
| 72 |
+
|
| 73 |
+
Pairing this checkpoint with an older caption format β or an older checkpoint with this one β
|
| 74 |
+
puts the text encoder out of distribution, and the failure is not subtle: monsters drop out of
|
| 75 |
+
the rollout entirely. Change the checkpoint and the prompt together or neither.
|
| 76 |
+
|
| 77 |
+
## Training
|
| 78 |
+
|
| 79 |
+
**Observation.** Fine-tuned from `alibaba-pai/Wan2.2-Fun-5B-Control` in `control_ref` mode with
|
| 80 |
+
the first frame as the appearance reference, at 704Γ1280, 16ΓH200 FSDP. The released checkpoint
|
| 81 |
+
is step 17000. The last 2000 of those steps are on a corpus recorded with a revised capture
|
| 82 |
+
path in which objects absent from the pose-control signal are also absent from the RGB β mounts
|
| 83 |
+
in particular β which removes a class of targets the model previously had no way to predict.
|
| 84 |
+
|
| 85 |
+
Earlier stages of training span 26 monster species; the final segment is a single configuration
|
| 86 |
+
(one stage, one monster, one weapon class). The checkpoint is correspondingly strongest there,
|
| 87 |
+
and the multi-species montage on the project page is rendered from an earlier checkpoint for
|
| 88 |
+
exactly this reason.
|
| 89 |
+
|
| 90 |
+
**Dynamics.** ActionGPT and PoseGPT over the 276D articulated state at 20 fps, conditioned on a
|
| 91 |
+
scanned terrain height field, trained on a single monster species (em19) over 2241 segments.
|
| 92 |
+
Action vocabularies: 168 for the monster, 977 for the hunter.
|
| 93 |
+
|
| 94 |
+
**Action ids are indices into this checkpoint's vocabulary and are not portable.** The
|
| 95 |
+
vocabulary is built from the training corpus, so the same integer under a model trained on a
|
| 96 |
+
different corpus is a different animation or nothing at all β an earlier corpus here shares
|
| 97 |
+
almost none of this one's hunter ids. When the demos name `493` as ATTACK, that is a fact about
|
| 98 |
+
this checkpoint.
|
| 99 |
+
|
| 100 |
+
## Reproducibility
|
| 101 |
+
|
| 102 |
+
The action stream is sampled, so the dynamics stage is only reproducible with a pinned seed.
|
| 103 |
+
`run_stage1_render.sh` pins `TORCH_SEED=43`; upstream leaves it unset. With the seed pinned,
|
| 104 |
+
the repository's `verify_reproduction.sh` reproduces its recorded pose video byte for byte and
|
| 105 |
+
its RGB rollout pixel for pixel.
|
| 106 |
+
|
| 107 |
+
## Scope and limitations
|
| 108 |
+
|
| 109 |
+
- The dynamics model covers **one monster species**. It is not a general character-motion model.
|
| 110 |
+
- Rollout is chunk-relay: each 81-frame chunk is conditioned on the last frame of the previous
|
| 111 |
+
one, so appearance error compounds with horizon.
|
| 112 |
+
- The bridge consumes a terrain height field scanned for specific stages. Novel geometry needs
|
| 113 |
+
a new scan.
|
| 114 |
+
- Research artifact. Not a product, not a game, not a renderer for anything but this pipeline.
|
| 115 |
+
|
| 116 |
+
## Licence and attribution
|
| 117 |
+
|
| 118 |
+
- **Our code**: Apache-2.0 (see the code repository's `LICENSE`).
|
| 119 |
+
- **These weights**: non-commercial research use only, no redistribution β see `LICENSE.assets`.
|
| 120 |
+
The restriction comes from the training corpus, not from the base model.
|
| 121 |
+
- **Base model** `alibaba-pai/Wan2.2-Fun-5B-Control`: Apache-2.0, not redistributed here.
|
| 122 |
+
- **VideoX-Fun** (`aigc-apps/VideoX-Fun`), which the observation code is vendored from: Apache-2.0.
|
| 123 |
+
- **Training corpus**: the WildWorld dataset β https://github.com/AlayaLab/WildWorld β released
|
| 124 |
+
for non-commercial research use, redistribution not permitted.
|
| 125 |
+
|
| 126 |
+
Rights in the game content the corpus was recorded from remain with its publisher, and this
|
| 127 |
+
project grants no rights in that content.
|
| 128 |
+
|
| 129 |
+
**Two files in this project are unmodified recorded gameplay video**, not model output:
|
| 130 |
+
`data/first_frame_ref.mp4` and `data/demo/aligned_ref.mp4`. The observation model is conditioned
|
| 131 |
+
on a reference frame, and these supply it. They are short clips from the same recordings the
|
| 132 |
+
corpus was built from, and they are covered by the research-only terms above. Everything else
|
| 133 |
+
distributed here β seed states, scanned terrain, pose videos, rollouts and the gallery stills β
|
| 134 |
+
is numeric derivation or model output.
|
| 135 |
+
|
| 136 |
+
## Citation
|
| 137 |
+
|
| 138 |
+
```bibtex
|
| 139 |
+
@article{meng2026marionette,
|
| 140 |
+
title = {Marionette: Predicting World States, Rendering Geometry, Painting Appearance},
|
| 141 |
+
author = {Meng, Zian and Li, Zhen and Li, Chuanhao and Li, Qiang and Zhang, Kaipeng},
|
| 142 |
+
journal = {arXiv preprint arXiv:2608.14530},
|
| 143 |
+
year = {2026}
|
| 144 |
+
}
|
| 145 |
+
```
|
dynamics/action_gpt.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:644412d8ebe21fd469f380d92246fd5cd513d604e338a2ca2d5244b5f87531cc
|
| 3 |
+
size 62711120
|
dynamics/pose_gpt.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1666bb7407ee3d7eb9a210c863a95c2032de8e66a1637ffcade7ace065674ae7
|
| 3 |
+
size 420767970
|
observation/diffusion_pytorch_model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2df921cd27e2749d6bd9fdf3111cae42df82b95b318e8326320f2fc04acff41b
|
| 3 |
+
size 10003303280
|