Views
No views yet
CosmoPredict2GR00T framework), and is
fine-tuned on the full LIBERO manipulation suite.🤝 Please refer to the official StarVLA repository for installation, training recipes, and evaluation tooling. This repo only hosts the model weights and the minimal configuration required to load them.
| Property | Value |
|---|---|
| Framework | CosmoPredict2GR00T (StarVLA) |
| Perception backbone | nvidia/Cosmos-Predict2-2B-Video2World (frozen VAE + T5) |
| Action head | DiT-B, 16 layers, hidden=1024 |
| Action dim / horizon | 7 / 8 (delta qpos + gripper) |
| State dim | 7 |
| Benchmark | LIBERO (4 task suites) |
| Training precision | bf16 mixed precision |
| LIBERO-Goal success rate | 92.0% (184 / 200, see below) |
StarVLA_WM4A/
├── README.md # this file
├── config.yaml # minimal loadable config
├── dataset_statistics.json # action/state normalization stats
└── starvla_wm4a_libero.pt # model weights (~14 GB)1git clone https://github.com/starVLA/starVLA.git
2cd starVLA
3# create the conda env, install deps etc. — see the upstream README1# Option A — huggingface-cli
2huggingface-cli download JackAILab/StarVLA_WM4A \
3 --local-dir ./pretrained/StarVLA_WM4A
4
5# Option B — python
6from huggingface_hub import snapshot_download
7snapshot_download(
8 repo_id="JackAILab/StarVLA_WM4A",
9 local_dir="./pretrained/StarVLA_WM4A",
10)1huggingface-cli download nvidia/Cosmos-Predict2-2B-Video2World \
2 --local-dir ./pretrained/Cosmos-Predict2-2B-Video2WorldstarVLA/ repo root:1# start the policy server with this checkpoint
2CUDA_VISIBLE_DEVICES=0 python deployment/model_server/server_policy.py \
3 --ckpt_path ./pretrained/StarVLA_WM4A/starvla_wm4a_libero.pt \
4 --port 6694 \
5 --use_bf16
6
7# in a second shell (with the `libero` env activated):
8python examples/LIBERO/eval_files/eval_libero.py \
9 --args.pretrained-path ./pretrained/StarVLA_WM4A/starvla_wm4a_libero.pt \
10 --args.host 127.0.0.1 \
11 --args.port 6694 \
12 --args.task-suite-name libero_goal \
13 --args.num-trials-per-task 20 \
14 --args.video-out-path results/eval_libero_goal1from starVLA.model.framework.base_framework import baseframework
2
3policy = baseframework.from_pretrained(
4 "./pretrained/StarVLA_WM4A/starvla_wm4a_libero.pt",
5)
6policy = policy.to("cuda").eval()
7
8# predict a 7-DoF action chunk from an observation dict
9# observation = {"image": [PIL.Image], "lang": "put the bowl on the plate", "state": np.ndarray[7]}
10action_chunk = policy.predict_action([observation]) # -> shape [1, 8, 7]config.yaml
(framework.world_model.base_wm, framework.qwenvl.base_vlm) point to your
local copy of Cosmos-Predict2-2B-Video2World (or leave them as the HF repo id
if your StarVLA build resolves HF paths directly).config.yaml for the full spec):1framework:
2 name: CosmoPredict2GR00T
3 world_model:
4 base_wm: nvidia/Cosmos-Predict2-2B-Video2World
5 action_model:
6 action_model_type: DiT-B # 16-layer DiT
7 hidden_size: 1024
8 action_dim: 7 # (dx, dy, dz, droll, dpitch, dyaw, gripper)
9 state_dim: 7
10 future_action_window_size: 7 # predicts 8 actions per step
11 action_horizon: 8
12 repeated_diffusion_steps: 8
13 num_inference_timesteps: 4
14 enable_video_loss: false
15
16trainer:
17 max_train_steps: 80000
18 num_warmup_steps: 3000
19 learning_rate:
20 base: 1.0e-05 # backbone LR (frozen text/vae modules)
21 lr_scheduler_type: cosine_with_min_lr
22 freeze_modules: backbone.text_encoder, backbone.vaeβ = (0.9, 0.95), weight decay 1e-8, grad clip 1.0.dataset_statistics.json contains the per-dimension action/state mean/std/min/max
computed on the LIBERO Franka mix. These are required at inference time for
normalization (unnorm_key=franka).libero_goal suite (200 rollouts total). The policy server
runs at bf16, 4 inference timesteps, action chunk of 8.| Task | Success | Rate |
|---|---|---|
push_the_plate_to_the_front_of_the_stove | 20 / 20 | 100.0% |
put_the_bowl_on_the_plate | 20 / 20 | 100.0% |
put_the_wine_bottle_on_top_of_the_cabinet | 20 / 20 | 100.0% |
turn_on_the_stove | 20 / 20 | 100.0% |
open_the_middle_drawer_of_the_cabinet | 19 / 20 | 95.0% |
put_the_bowl_on_top_of_the_cabinet | 19 / 20 | 95.0% |
put_the_cream_cheese_in_the_bowl | 18 / 20 | 90.0% |
put_the_bowl_on_the_stove | 17 / 20 | 85.0% |
put_the_wine_bottle_on_the_rack | 16 / 20 | 80.0% |
open_the_top_drawer_and_put_the_bowl_inside | 15 / 20 | 75.0% |
1python examples/LIBERO/eval_files/eval_libero.py \
2 --args.pretrained-path ./pretrained/StarVLA_WM4A/starvla_wm4a_libero.pt \
3 --args.task-suite-name libero_goal \
4 --args.num-trials-per-task 20libero_spatial, libero_object,
libero_10) is ongoing and will be appended here once the full sweep finishes.libero_spatial_no_noops_1.0.0_lerobotlibero_object_no_noops_1.0.0_lerobotlibero_goal_no_noops_1.0.0_lerobotlibero_10_no_noops_1.0.0_lerobot224 × 224, language instruction, 7-D robot state.
Output: chunk of 8 future actions (delta_qpos + gripper).1@misc{starvla2026,
2 title = {StarVLA: A Unified Vision-Language-Action Framework},
3 author = {StarVLA Contributors},
4 year = {2026},
5 url = {https://github.com/starVLA/starVLA}
6}
7
8@misc{cosmospredict2,
9 title = {Cosmos-Predict2: A Video World Model for Robotics and Simulation},
10 author = {NVIDIA},
11 year = {2025},
12 url = {https://huggingface.co/nvidia/Cosmos-Predict2-2B-Video2World}
13}model/StarVLA_WM4A.