FastWAM DROID — Wan2.1-T2V-1.3B PhyPO, step 100k
Action-conditioned robot world model (FastWAM MoT: Wan2.1-T2V-1.3B video branch + action DiT),
trained on DreamZero-DROID. This is the PhyPO run droid_phypo_1p3b
(runs/droid_wan21_1p3b_1e-4/2026-09-08_01-06-31) at step 100,000.
The video DiT was initialized from the PhyPO/GRPO-finetuned Wan2.1-T2V-1.3B
(Wan-AI-PhyPO-1.3B), and the action expert from
ActionDiT_phypo_Wan21_1p3B_alphascale_1024hdim.pt.
This is not the stock Wan2.1 baseline (droid_1p3b_scratch).
|
|
| init |
PhyPO Wan2.1-T2V-1.3B (30 layers, hidden 1536, 12 heads) + PhyPO ActionDiT |
| step |
100,000 (run max_steps was 200,000) |
| params |
video expert 1.42B + action expert 0.64B, bfloat16 |
| data |
DreamZero-DROID, 14,748,517 frames, 3 cameras (exterior_image_1_left, exterior_image_2_left, wrist_image_left) |
| proprio / action dim |
7 (cartesian + gripper) |
| train |
4× GPU, DeepSpeed ZeRO-1, bf16, grad clip 1.0, lr 1e-4 cosine |
| text conditioning |
cached T5 embeds (wan21t2v13b), context_len 128 |
Files
step_100000.pt — model weights (3.9 GB). Dict with keys mot, proprio_encoder, step, torch_dtype.
dataset_stats.json — action/proprio normalization stats; required for inference.
- The same checkpoint is also stored at
weights/2026-09-08_01-06-31/step_100000.pt.
import torch
ck = torch.load("step_100000.pt", map_location="cpu", weights_only=True)
model.mot.load_state_dict(ck["mot"])
model.proprio_encoder.load_state_dict(ck["proprio_encoder"])