| # video_expert β Wan2.2-TI2V-5B video DiT, before vs after LIBERO training |
| |
| The 5.0B-parameter Wan video expert (30-layer DiT) in three states: |
| |
| | File / dir | State | Source | |
| |---|---|---| |
| | `wan22_base_before_libero/` | **BEFORE** any robot training β pristine Wan2.2-TI2V-5B video DiT (3 safetensors shards, fp32, verbatim copy of `Wan-AI/Wan2.2-TI2V-5B` `diffusion_pytorch_model-*.safetensors`) | Wan-AI release | |
| | `wan_video_expert_after_libero_fastwam_release.pt` | **AFTER** LIBERO training β original FastWAM (30/30 MoT) | extracted from `fastwam_release/libero_uncond_2cam224.pt`, step 21700 | |
| | `wan_video_expert_after_libero_flashwam_fusedkv.pt` | **AFTER** LIBERO training β FlashWAM M1_FusedKV_RopeFixed run | extracted from `runs/libero/M1_FusedKV_RopeFixed/2026-07-03_16-13-56/.../step_021700.pt` | |
| |
| Two "after" variants exist because each LIBERO run trains its own copy of the |
| video expert (`freeze_video_backbone: false`); both deviate from the base |
| (e.g. mean|Ξ| β 0.0037 on `patch_embedding.weight`, verified at extraction). |
| |
| ## Format of the extracted .pt files |
| |
| ```python |
| payload = torch.load("wan_video_expert_after_libero_fastwam_release.pt", |
| map_location="cpu", weights_only=True) |
| sd = payload["state_dict"] # 825 tensors, bf16, 5.00B params |
| # keys are the video DiT's own names β patch_embedding.*, blocks.{0..29}.*, |
| # head.* β i.e. the "mixtures.video." prefix of the FastWAM MoT checkpoint |
| # stripped. Same naming convention as the base safetensors shards, so |
| # before/after tensors compare directly by key. |
| payload["source_checkpoint"], payload["source_step"], payload["description"] |
| ``` |
| |
| Note dtypes differ across states (base fp32, extracted bf16 as trained) β |
| cast to a common dtype before numeric comparison. |
| |