Seungwook Kim Β· Seunghyeon Lee Β· Minsu Cho
POSTECH Computer Vision Lab
FreeAction presents training-free techniques to enhance the fidelity of trajectory-to-video generation for robotics. Built on top of IRASim, our method introduces action-aware noise truncation and action-aware classifier-free guidance to improve video generation quality without requiring model retraining.
Key Finding: Our proposed action-aware noise truncation outperforms existing inference-time techniques for trajectory-to-video generation.
- π Training-Free: Works with pre-trained IRASim models
- π― Action-Aware Techniques: Adaptive noise truncation and guidance based on action magnitude
- π Improved Fidelity: Enhanced video quality across multiple robotics datasets
- βοΈ Flexible Configuration: Easy toggle for different techniques
Create a conda environment and install dependencies:
bash scripts/install.shThis will:
- Install PyTorch with CUDA support
- Install diffusers, transformers, and other required packages
- Set up the
irasimconda environment
Requirements:
- Python 3.8+
- CUDA 11.8+ (for GPU support)
- 8GB+ GPU memory recommended
To download the complete dataset (evaluation data + checkpoints):
bash scripts/download.shNote: You only need evaluation data and checkpoints for FreeAction (training data not required).
The datasets will be downloaded to opensource_robotdata/ with the following structure:
| Dataset | Evaluation Data | Checkpoints | Total Size |
|---|---|---|---|
| RT-1 | rt1_evaluation_data.tar.gz | rt1_checkpoints_data.tar.gz | ~129 GB |
| Bridge | bridge_evaluation_data.tar.gz | bridge_checkpoints_data.tar.gz | ~95 GB |
| Language-Table | languagetable_evaluation_data.tar.gz | languagetable_checkpoints_data.tar.gz | ~228 GB |
Total: ~452 GB (evaluation + checkpoints only)
For best fidelity across all datasets, use:
- β CFG: Disabled
- β Action-Aware CFG: Disabled
- β Fixed Truncation: Disabled
- β Action-Aware Noise Truncation: Enabled
Edit sample/components/config.py:
class GuidanceConfig:
do_classifier_free_guidance: bool = False # Disabled
enable_dynamic_guidance: bool = False # Disabled
class LatentConfig:
enable_truncated_sampling: bool = False # Disabled
enable_action_conditioned_truncation: bool = True # β
ENABLEDGenerate videos for short trajectories (16 frames):
# Single GPU
python3 main.py --config configs/evaluation/rt1/frame_ada.yaml
# Multi-GPU (8 GPUs)
torchrun --nproc_per_node 8 main.py --config configs/evaluation/rt1/frame_ada.yamlReplace rt1 with bridge or languagetable for other datasets.
Generate videos for long trajectories (autoregressive):
# Generate videos for RT-1
python3 evaluate/generate_long_video.py \
--config configs/evaluation/rt1/frame_ada.yaml \
--rank 0 --thread 0 --thread-num 1
# For parallel processing with multiple GPUs/threads
python3 evaluate/generate_long_video.py \
--config configs/evaluation/rt1/frame_ada.yaml \
--rank 0 --thread 0 --thread-num 8Calculate metrics (PSNR, SSIM, FVD, FID):
# Short trajectory metrics
python3 evaluate/evaluate_short_script.py
# Long trajectory metrics
python3 evaluate/evaluate_long_script.pyAll configurations are in sample/components/config.py. Here are common setups:
class GuidanceConfig:
do_classifier_free_guidance: bool = False
enable_dynamic_guidance: bool = False
class LatentConfig:
enable_truncated_sampling: bool = False
enable_action_conditioned_truncation: bool = Falseclass GuidanceConfig:
do_classifier_free_guidance: bool = False
enable_dynamic_guidance: bool = False
class LatentConfig:
enable_truncated_sampling: bool = False
enable_action_conditioned_truncation: bool = True # β
class GuidanceConfig:
do_classifier_free_guidance: bool = True # β
enable_dynamic_guidance: bool = False
class LatentConfig:
enable_truncated_sampling: bool = False
enable_action_conditioned_truncation: bool = FalseAlso set guidance_scale in configs/base/diffusion.yaml:
guidance_scale: 4.5 # Must be > 1.0 for CFG to activateclass GuidanceConfig:
do_classifier_free_guidance: bool = True
enable_dynamic_guidance: bool = True # β
Action-aware
class LatentConfig:
enable_truncated_sampling: bool = False
enable_action_conditioned_truncation: bool = FalseIf you find this work useful, please consider citing:
@article{kim2025freeaction,
title={FreeAction: Training-Free Techniques for Enhanced Fidelity of Trajectory-to-Video Generation},
author={Kim, Seungwook and Lee, Seunghyeon and Cho, Minsu},
journal={arXiv preprint arXiv:2509.24241},
year={2025}
}This work builds upon:
- IRASim - Base trajectory-to-video generation framework
- Latte - Transformer-based video generation architecture
- RT-1, Bridge, Language-Table - Robotics datasets
We thank the authors for open-sourcing their code and datasets.