Image-to-Video
video
world-model
interactive-world-model
lora
diffusion
action-conditioning
game-world-model
Instructions to use DANNY621/H3-World with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Inference
- Notebooks
- Google Colab
- Kaggle
Add model card
Browse files
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 |
+

|
| 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
|