Image-to-Video
video
world-model
interactive-world-model
lora
diffusion
action-conditioning
game-world-model
DANNY621 commited on
Commit
bee86c6
·
verified ·
1 Parent(s): 5e3f061

Add model card

Browse files
Files changed (1) hide show
  1. README.md +70 -0
README.md ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ tags:
4
+ - video
5
+ - image-to-video
6
+ - world-model
7
+ - lora
8
+ - diffusion
9
+ - action-conditioning
10
+ - game-world-model
11
+ base_model: MiniMax/MiniMax-H3
12
+ ---
13
+
14
+ # H3-World
15
+
16
+ Action-controllable world model built by fine-tuning [MiniMax-H3](https://huggingface.co/MiniMax/MiniMax-H3)
17
+ on [ABot-World-Explorer-500h](https://huggingface.co/datasets/acvlab/ABot-World-Explorer-500h) gameplay
18
+ footage. The same first frame plus a different key sequence produces a different, correct motion:
19
+ `W A S D` for character movement, `I J K L` for camera tilt/pan, plus a synthesized `F` (fast) bit.
20
+
21
+ ![teaser](teaser.png)
22
+
23
+ ## What's in this repo
24
+
25
+ | File | Description |
26
+ |---|---|
27
+ | `step-10000.safetensors` | LoRA checkpoint, step 10,000 of the released training run |
28
+ | `teaser.png` | Figure shown above |
29
+
30
+ ## Method
31
+
32
+ Key presses are converted into one short English sentence per latent video frame (e.g. *"the man
33
+ walks forward, camera pans left sharply"*) and injected through MiniMax-H3's native text channel —
34
+ the same channel the model was already pretrained on. A **directed attention mask** binds annotation
35
+ *k* to video frame *k* only: frame *k* can read annotation *k*, but annotation *k* cannot read any
36
+ other annotation, which closes a bypass a symmetric mask would leave open. Removing the annotation
37
+ rows recovers the base model exactly.
38
+
39
+ This checkpoint is a **rank-32 LoRA on `qkv_proj`/`out_proj`** across the 50 DiT blocks and 2
40
+ token-refiner layers (104 modules, 208 tensors, 65.6M parameters — 0.198% of the 33.1B-parameter
41
+ DiT). No action-specific module is added; the condition path itself carries zero extra weights.
42
+
43
+ Trained on 7,872 clips (832x480, 124 frames / 5.2s @ 24fps) from ABot-World-Explorer-500h.
44
+
45
+ ## How to use
46
+
47
+ This checkpoint is a LoRA delta for MiniMax-H3 and requires the base model plus a directed-mask
48
+ attention patch to run (the mask is what binds each sentence to its frame; without it the LoRA
49
+ weights alone don't reproduce the reported behavior). Code, the framework patch, and a minimal
50
+ inference script are not published alongside this checkpoint yet.
51
+
52
+ ```python
53
+ from safetensors.torch import load_file
54
+
55
+ state = load_file("step-10000.safetensors")
56
+ lora_state = {k: v for k, v in state.items() if ".lora_A." in k or ".lora_B." in k}
57
+ # pipe.load_lora(pipe.dit, state_dict=lora_state, hotload=True)
58
+ ```
59
+
60
+ ## License
61
+
62
+ The LoRA weights in this repo are released under Apache 2.0. Using them requires the base
63
+ [MiniMax-H3](https://huggingface.co/MiniMax/MiniMax-H3) model, which is governed by its own
64
+ license terms.
65
+
66
+ ## Acknowledgements
67
+
68
+ - [MiniMax-H3](https://huggingface.co/MiniMax/MiniMax-H3) — the base model
69
+ - [DiffSynth-Studio](https://github.com/modelscope/DiffSynth-Studio) — the training framework
70
+ - [ABot-World-Explorer-500h](https://huggingface.co/datasets/acvlab/ABot-World-Explorer-500h) — the gameplay data