Quickstart

April 20, 2026 · View on GitHub

No training required: download the checkpoints and run.

1. Download checkpoints

Run all commands from the repo root.

# LAM + world-model pretrained weights
hf download YuxinJ/Olaf-World \
    --local-dir checkpoints

# SkyReels-V2 I2V backbone
hf download Skywork/SkyReels-V2-I2V-1.3B-540P \
    --local-dir checkpoints/SkyReels-V2-I2V-1.3B-540P

# The diffusers loader expects this exact filename
mv checkpoints/SkyReels-V2-I2V-1.3B-540P/model.safetensors \
   checkpoints/SkyReels-V2-I2V-1.3B-540P/diffusion_pytorch_model.safetensors

You should end up with:

checkpoints/
  lam/lam_vjepa_align.ckpt                    # frozen LAM encoder
  world_model/pretrain/model.pt               # Stage-1 bidirectional world model
  SkyReels-V2-I2V-1.3B-540P/                  # backbone (config.json, VAE, CLIP, T5, ...)

2. Run zero-shot action transfer

Transfer latent action sequences from a reference video onto a target first frame. Single-GPU inference fits on a 24 GB card.

Single (reference, target) pair:

CUDA_VISIBLE_DEVICES=0 python world_model/inference/action_transfer.py \
    --checkpoint_path   checkpoints/world_model/pretrain/model.pt \
    --lam_ckpt          checkpoints/lam/lam_vjepa_align.ckpt \
    --lam_variant       align \
    --reference_video   assets/ref_videos/0.mp4 \
    --first_frame_image assets/images/0.png \
    --output_folder     outputs/action_transfer \
    --use_ema \
    --save_side_by_side

Batch mode — every reference video against every target image:

CUDA_VISIBLE_DEVICES=0 python world_model/inference/action_transfer.py \
    --checkpoint_path   checkpoints/world_model/pretrain/model.pt \
    --lam_ckpt          checkpoints/lam/lam_vjepa_align.ckpt \
    --lam_variant       align \
    --ref_video_dir     assets/ref_videos \
    --target_image_dir  assets/images \
    --output_folder     outputs/action_transfer \
    --use_ema \
    --save_side_by_side

Outputs are written as MP4s to outputs/action_transfer/. With --save_side_by_side, reference↔generated side-by-side videos are also saved under outputs/action_transfer/side_by_side/.

For the full argument list, see world_model/inference/action_transfer.py.