SII-Sarfflow commited on
Commit
5b2819a
Β·
verified Β·
1 Parent(s): 73e9cbb

Add files using upload-large-folder tool

Browse files
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>&#9654; 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