MCPcopy Index your code
hub / github.com/byeongjun-park/ReDirector

github.com/byeongjun-park/ReDirector @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
3,192 symbols 9,730 edges 267 files 710 documented · 22% updated 6mo ago★ 331 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

🎬 ReDirector: Creating Any-Length Video Retakes with Rotary Camera Encoding

This repository contains the official implementation of "ReDirector: Creating Any-Length Video Retakes with Rotary Camera Encoding", including both training and inference code.

🔥Note: You can adjust config parameters using hydra configs here. Feel free to modify them to match your own experimental setup, and if you encounter any issues, please open an issue or contact us.

Setup

  • Step 1: Install conda envs shell conda env create -f environment.yml conda activate redirector pip install -r requirements.txt pip install flash_attn --no-build-isolation pip install --no-build-isolation git+https://github.com/mohammadasim98/met3r pip install --no-build-isolation -e vipe

  • Step 2: Download checkpoints (Or, you can manually download from Wan Checkpoints and ReDirector Checkpoints, and place them in models folder.): shell python download_model.py

  • Step 3: Prepare the training dataset MultiCamVideo dataset.

  • Step 4: Extract features for the faster training: shell torchrun --nproc-per-node=8 extract_features.py dataset_path=<path/to/dataset> extract.reverse=true torchrun --nproc-per-node=8 extract_features.py dataset_path=<path/to/dataset> extract.reverse=false

Training

  • We train our model for 20k iteration on 8 RTX Pro 6000 Blackwell GPUs. It takes around 90 hours. shell torchrun --nproc-per-node=8 train.py dataset_path=<path/to/dataset>

Inference and Evaluation

  • Given test the example videos (.mp4 or images directory), we follow ReCamMaster for the preset camera types as below. shell python inference.py eval.ckpt_path=models/step20000.safetensors eval.video_path=example_data/bear eval.cam_type=1 eval.cam_speed=1

    cam_type Trajectory
    1 Pan Right
    2 Pan Left
    3 Tilt Up
    4 Tilt Down
    5 Zoom In
    6 Zoom Out
    7 Translate Up (with rotation)
    8 Translate Down (with rotation)
    9 Arc Left (with rotation)
    10 Arc Right (with rotation)
  • The reported metrics in the paper except VBench were obtained by running the code below. shell python evaluate.py --data_path results/bear_camera_1_speed_1.mp4

Citation

If you find this repository helpful for your project, please consider citing our work. :)

@article{park2025redirector,
  title={ReDirector: Creating Any-Length Video Retakes with Rotary Camera Encoding},
  author={Park, Byeongjun and Kim, Byung-Hoon and Chung, Hyungjin and Ye, Jong Chul},
  journal={arXiv preprint arXiv:2511.19827},
  year={2025}
}

Core symbols most depended-on inside this repo

reshape
called by 367
vipe/vipe/priors/depth/unidepth/utils/camera.py
view
called by 269
vipe/vipe/ext/lietorch/groups.py
unsqueeze
called by 233
vipe/vipe/priors/geocalib/misc.py
stack
called by 163
vipe/vipe/priors/geocalib/misc.py
cat
called by 141
vipe/vipe/priors/track_anything/sam/utils/amg.py
transpose
called by 134
vipe/vipe/slam/maths/matrix.py
cat
called by 122
vipe/vipe/slam/networks/droid_net.py
print
called by 121
vipe/vipe/priors/track_anything/groundingdino/util/misc.py

Shape

Method 1,941
Function 715
Class 534
Route 2

Languages

Python93%
C++7%

Modules by API surface

vipe/vipe/priors/depth/unidepth/utils/camera.py81 symbols
diffsynth/models/wan_video_vae.py78 symbols
vipe/vipe/priors/depth/metric3d/model/decode_heads/RAFTDepthNormalDPTDecoder5.py76 symbols
vipe/vipe/priors/geocalib/camera.py75 symbols
vipe/vipe/priors/depth/metric3d/model/backbones/ViT_DINO_reg.py74 symbols
vipe/vipe/streams/base.py60 symbols
vipe/vipe/slam/maths/matrix.py57 symbols
vipe/vipe/ext/lietorch/groups.py57 symbols
vipe/vipe/priors/depth/unidepth/models/encoder.py56 symbols
vipe/vipe/priors/track_anything/groundingdino/util/misc.py54 symbols
vipe/vipe/priors/depth/unidepth/utils/misc.py51 symbols
vipe/vipe/priors/geocalib/modules.py46 symbols

For agents

$ claude mcp add ReDirector \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact