Diffusion Policy treats visuomotor control as a generative diffusion process, producing smooth, multi-step action trajectories that excel at contact-rich manipulation. This policy has been trained and pushed to the Hub using LeRobot. See the full documentation at LeRobot Docs. For a complete walkthrough, see the training guide. Below is the short version on how to train and run inference/eval: Writes checkpoints to outputs/train/ /checkpoints/. Prefix the dataset repo with eval\ and supply --policy.path pointing to a local or hub checkpoint.
Diffusion Policy (as per Diffusion Policy: Visuomotor Policy Learning via Action Diffusion) trained for the PushT environment from gym-pusht. See the LeRobot library (particularly the evaluation script) for instructions on how to load and evaluate this model.
Runs On
What it takes to serve diffusion_pusht (263M parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.
| Precision | Weights | Memory needed | Cheapest setup | Per hour | Also fits |
|---|---|---|---|---|---|
| 16-bit | 0.5 GB | 0.6 GB | 1x MI300X (192 GB) Vultr |
$1.85 | 1x H100 $1.99 · 1x MI325X $2.00 |
| 8-bit | 0.3 GB | 0.3 GB | 1x MI300X (192 GB) Vultr |
$1.85 | 1x H100 $1.99 · 1x MI325X $2.00 |
| 4-bit | 0.1 GB | 0.2 GB | 1x MI300X (192 GB) Vultr |
$1.85 | 1x H100 $1.99 · 1x MI325X $2.00 |
Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Sep 18, 2026.
Model Card
By LeRobot, published under apache-2.0, revision 84a7c2317844.
Diffusion Policy (as per Diffusion Policy: Visuomotor Policy Learning via Action Diffusion) trained for the PushT environment from gym-pusht. See the LeRobot library (particularly the evaluation script) for instructions on how to load and evaluate this model. Trained with LeRobot@3c0a209. The model was trained using LeRobot's training script and with the pusht dataset, using this command: The training curves may be found at https://wandb.ai/aliberts/lerobot/runs/s7elvf4r. The current model corresponds to the checkpoint at 175k steps. The model was evaluated on the PushT environment from gym-pusht and compared to a similar model trained with the original Diffusion Policy code. There are two…
Read LeRobot's full model card
Model Card for Diffusion Policy / PushT
Diffusion Policy (as per Diffusion Policy: Visuomotor Policy
Learning via Action Diffusion) trained for the PushT environment from gym-pusht.
How to Get Started with the Model
See the LeRobot library (particularly the evaluation script) for instructions on how to load and evaluate this model.
Training Details
Trained with LeRobot@3c0a209.
The model was trained using LeRobot's training script and with the pusht dataset, using this command:
python lerobot/scripts/train.py \
--output_dir=outputs/train/diffusion_pusht \
--policy.type=diffusion \
--dataset.repo_id=lerobot/pusht \
--seed=100000 \
--env.type=pusht \
--batch_size=64 \
--steps=200000 \
--eval_freq=25000 \
--save_freq=25000 \
--wandb.enable=true
The training curves may be found at https://wandb.ai/aliberts/lerobot/runs/s7elvf4r. The current model corresponds to the checkpoint at 175k steps.
Evaluation
The model was evaluated on the PushT environment from gym-pusht and compared to a similar model trained with the original Diffusion Policy code. There are two evaluation metrics on a per-episode basis:
- Maximum overlap with target (seen as
eval/avg_max_rewardin the charts above). This ranges in [0, 1]. - Success: whether or not the maximum overlap is at least 95%.
Here are the metrics for 500 episodes worth of evaluation. The "Theirs" column is for an equivalent model trained on the original Diffusion Policy repository and evaluated on LeRobot (the model weights may be found in the original_dp_repo branch of this respository).
| Ours | Theirs | |
|---|---|---|
| Average max. overlap ratio | 0.955 | 0.957 |
| Success rate for 500 episodes (%) | 65.4 | 64.2 |
The results of each of the individual rollouts may be found in eval_info.json. It was produced after training with this command:
python lerobot/scripts/eval.py \
--policy.path=outputs/train/diffusion_pusht/checkpoints/175000/pretrained_model \
--output_dir=outputs/eval/diffusion_pusht/175000 \
--env.type=pusht \
--eval.n_episodes=500 \
--eval.batch_size=50 \
--device=cuda \
--use_amp=false
Identity and Version
- Repository
- lerobot/diffusion_pusht
- Publisher
- LeRobot
- Task
- Robotics
- Modality
- Control
- Library
- transformers
- Parameters
- 263M parameters
- Languages
- Not stated by the source
- Revision
- 84a7c23178445c6bbf7e1a884ff497017910f653
- First published
- 2024-05-05
- Last updated
- 2025-03-06
Files and Weights
8 files, 1.1 GB in total. The weights are 1 file totalling 1.1 GB in safetensors.
Every file
| File | Type | Size | SHA-256 |
|---|---|---|---|
| model.safetensors | Weights | 1.1 GB | 995d14d35db5 |
| config.json | Configuration | 1.5 KB | — |
| eval_info.json | Configuration | 75.8 KB | — |
| train_config.json | Configuration | 5.9 KB | — |
| README.md | Documentation | 2.9 KB | — |
| replay.mp4 | Other | 53.3 KB | — |
| training_curves.png | Other | 87.1 KB | — |
| .gitattributes | Repository | 1.5 KB | — |
License and Download
- License
- apache-2.0
- Access
- Open weights, no gate
- Download size
- 1.1 GB
Released by LeRobot through its official repository on Hugging Face. Read the license.
Built From
- Described by arXiv:2303.04137
- Trained on (disclosed) lerobot/pusht
Memory Requirements
| Precision | Weights in memory |
|---|---|
| As published | 1.1 GB |
| 16-bit | 0.5 GB |
| 8-bit | 0.3 GB |
| 4-bit | 0.1 GB |
Weights only, from the published parameter count; the key-value cache and runtime add to this.
Questions About diffusion_pusht
How much GPU memory does diffusion_pusht need?
About 0.6 GB at 16-bit and 0.2 GB at 4-bit: the weights (263M parameters) plus a working margin. A long context needs more.
What is the cheapest GPU to run diffusion_pusht on?
At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.
Can I use diffusion_pusht commercially?
Yes. diffusion_pusht is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.
Similar Models
SmolVLA is a compact, efficient Vision-Language-Action (VLA) model designed for affordable robotics, trainable on a single GPU and deployable on consumer hardware, while matching the performance of much larger VLAs through community-driven data. Original paper: (SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics)[https://arxiv.org/abs/2506.01844] For full installation details (including optional video dependencies such as ffmpeg for torchcodec), see the official documentation: https://huggingface.co/docs/lerobot/installation If you’re training / fine-tuning, you typically call forward(...) to get a loss and then: - -policy.chunksize=... - -policy.nactionsteps=...…
SmolVLA is a compact, efficient vision-language-action model that achieves competitive performance at reduced computational costs and can be deployed on consumer-grade hardware. This policy has been trained and pushed to the Hub using LeRobot. See the full documentation at LeRobot Docs. For a complete walkthrough, see the training guide. Below is the short version on how to train and run inference/eval: Writes checkpoints to outputs/train/ /checkpoints/. Prefix the dataset repo with eval\ and supply --policy.path pointing to a local or hub checkpoint.
SmolVLA is a compact, efficient vision-language-action model that achieves competitive performance at reduced computational costs and can be deployed on consumer-grade hardware. This policy has been trained and pushed to the Hub using LeRobot. See the full documentation at LeRobot Docs. For a complete walkthrough, see the training guide. Below is the short version on how to train and run inference/eval: Writes checkpoints to outputs/train/ /checkpoints/. Prefix the dataset repo with eval\ and supply --policy.path pointing to a local or hub checkpoint.
SmolVLA is a compact, efficient vision-language-action model that achieves competitive performance at reduced computational costs and can be deployed on consumer-grade hardware. This policy has been trained and pushed to the Hub using LeRobot. Learn how to train and run it in the LeRobot smolvla guide, or browse the full documentation. The policy consumes these observation features and produces these action features. Inputs Outputs New to LeRobot? These guides cover the full workflow: - Install LeRobot — set up the lerobot package. - Hardware setup — assemble, wire, and calibrate your robot and cameras. - Record data & train a policy — the end-to-end imitation-learning walkthrough. - CLI…
lerobot/smolvlabase fine-tuned on Prashant-77/thaliall (1050 scripted-expert episodes, 7 skills, language-conditioned, 3 cameras). Camera keys are renamed at train and inference time: overhead → camera1, wrista → camera2, wristb → camera3 (--renamemap; runtime/executors.py applies the same map). Checkpoints in this repo. Root = 20 000 total steps. step14000/ = the best per-skill checkpoint (14 000 steps at batch 16 on a T4; the last 6 000 steps ran at batch 4 with a fresh optimizer on a smaller GPU and lost ground). Policy-only success per skill from task-consistent start states, 20 held-out seeds (eval/skilleval.py --kind smolvla): The scripted expert reaches 9/10 on the full task; the…