Elle McFarlane
add gitignore etc
15d6c34

A newer version of the Gradio SDK is available: 5.12.0

Upgrade

Installation

Requirements

  • Linux
  • Python 3.7+
  • PyTorch 1.6.0, 1.7.0, 1.7.1, 1.8.0, 1.8.1, 1.9.0 or 1.9.1.
  • CUDA 9.2+
  • GCC 5+
  • MMCV (Please install mmcv-full>=1.3.17,<1.6.0 for GPU)

Prepare environment

a. Create a conda virtual environment and activate it.

conda create -n motiondiffuse python=3.7 -y
conda activate motiondiffuse

b. Install PyTorch and torchvision following the official instructions.

conda install pytorch={torch_version} torchvision cudatoolkit={cu_version} -c pytorch

E.g., install PyTorch 1.7.1 & CUDA 10.1.

conda install pytorch=1.7.1 torchvision cudatoolkit=10.1 -c pytorch

Important: Make sure that your compilation CUDA version and runtime CUDA version match.

c. Build mmcv-full

  • mmcv-full

We recommend you to install the pre-build package as below.

For CPU:

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/{torch_version}/index.html

Please replace {torch_version} in the url to your desired one.

For GPU:

pip install "mmcv-full>=1.3.17,<=1.5.3" -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html

Please replace {cu_version} and {torch_version} in the url to your desired one.

For example, to install mmcv-full with CUDA 10.1 and PyTorch 1.7.1, use the following command:

pip install "mmcv-full>=1.3.17,<=1.5.3" -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.7.1/index.html

See here for different versions of MMCV compatible to different PyTorch and CUDA versions. For more version download link, refer to openmmlab-download.

d. Install other requirements

pip install -r requirements.txt

Data Preparation

a. Download datasets

For both the HumanML3D dataset and the KIT-ML dataset, you could find the details as well as download link [here].

b. Download pretrained weights for evaluation

We use the same evaluation protocol as this repo. You should download pretrained weights of the contrastive models in t2m and kit for calculating FID and precisions. To dynamically estimate the length of the target motion, length_est_bigru and Glove data are required.

c. Download pretrained weights for MotionDiffuse

The pretrained weights for our proposed MotionDiffuse can be downloaded from here

Download the above resources and arrange them in the following file structure:

MotionDiffuse
└── text2motion
    β”œβ”€β”€ checkpoints
    β”‚   β”œβ”€β”€ kit
    β”‚   β”‚   └── kit_motiondiffuse
    β”‚   β”‚       β”œβ”€β”€ meta
    β”‚   β”‚       β”‚   β”œβ”€β”€ mean.npy
    β”‚   β”‚       β”‚   └── std.npy
    β”‚   β”‚       β”œβ”€β”€ model
    β”‚   β”‚       β”‚   └── latest.tar
    β”‚   β”‚       └── opt.txt
    β”‚   └── t2m
    β”‚       └── t2m_motiondiffuse
    β”‚           β”œβ”€β”€ meta
    β”‚           β”‚   β”œβ”€β”€ mean.npy
    β”‚           β”‚   └── std.npy
    β”‚           β”œβ”€β”€ model
    β”‚           β”‚   └── latest.tar
    β”‚           └── opt.txt
    └── data
        β”œβ”€β”€ glove
        β”‚   β”œβ”€β”€ our_vab_data.npy
        β”‚   β”œβ”€β”€ our_vab_idx.pkl
        β”‚   └── out_vab_words.pkl
        β”œβ”€β”€ pretrained_models
        β”‚   β”œβ”€β”€ kit
        β”‚   β”‚   └── text_mot_match
        β”‚   β”‚       └── model
        β”‚   β”‚           └── finest.tar
        β”‚   └── t2m
        β”‚   β”‚   β”œβ”€β”€ text_mot_match
        β”‚   β”‚   β”‚   └── model
        β”‚   β”‚   β”‚       └── finest.tar
        β”‚   β”‚   └── length_est_bigru
        β”‚   β”‚       └── model
        β”‚   β”‚           └── finest.tar
        β”œβ”€β”€ HumanML3D
        β”‚   β”œβ”€β”€ new_joint_vecs
        β”‚   β”‚   └── ...
        β”‚   β”œβ”€β”€ new_joints
        β”‚   β”‚   └── ...
        β”‚   β”œβ”€β”€ texts
        β”‚   β”‚   └── ...
        β”‚   β”œβ”€β”€ Mean.npy
        β”‚   β”œβ”€β”€ Std.npy
        β”‚   β”œβ”€β”€ test.txt
        β”‚   β”œβ”€β”€ train_val.txt
        β”‚   β”œβ”€β”€ train.txt
        β”‚   └── val.txt
        └── KIT-ML
            β”œβ”€β”€ new_joint_vecs
            β”‚   └── ...
            β”œβ”€β”€ new_joints
            β”‚   └── ...
            β”œβ”€β”€ texts
            β”‚   └── ...
            β”œβ”€β”€ Mean.npy
            β”œβ”€β”€ Std.npy
            β”œβ”€β”€ test.txt
            β”œβ”€β”€ train_val.txt
            β”œβ”€β”€ train.txt
            └── val.txt