Skip to content

fenghan0430/Open-AnimateAnyone

 
 

Repository files navigation

Open-Animate Anyone 第一阶段训练方法

目录

准备环境

根据fast_env.sh

新建个虚拟环境

conda create -n animate python=3.8.18
conda activate animate

其他依赖

# 先装torch
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117

# 其他依赖
pip install diffusers==0.21.4
pip install transformers==4.32.0
pip install tqdm==4.66.1
pip install omegaconf==2.3.0
pip install einops==0.6.1
pip install opencv-python==4.8.0.76
pip install Pillow==9.5.0
pip install safetensors==0.3.3
pip install decord==0.6.0
pip install wandb==0.16.1
pip install accelerate==0.22.0
pip install av==11.0.0
pip install imageio==2.9.0
pip install imageio-ffmpeg
pip install gradio==3.41.2
pip install xformers==0.0.16

下载预训练模型和clip

cd pretrained_models
# 记得装lfs
git clone https://huggingface.co/runwayml/stable-diffusion-v1-5
git clone https://huggingface.co/openai/clip-vit-base-patch32

准备数据

下载数据集

下载ubc-fashion数据集,来自https://vision.cs.ubc.ca/datasets/fashion/

吐槽UBC,UBC把数据集上传到了亚马逊云。写了一个简易的下载脚本,但是下载脚本过于简易,甚至没有中断后继续下载。

如果无法下载,推荐去我的百度云下载。

链接:https://pan.baidu.com/s/1kqxGp_8Iboz-nZbjxJTt-w 
提取码:ai00
# 文件结构如下
ubc-fashion-dataset
|-train/
|  |-视频
|-test/
|  |-视频
|-其他...

训练集和测试集一共600个视频。下载完成后把数据集移动到项目根目录下

mv ./ubc-fashion-dataset 你的项目位置

制作csv

data文件夹下有make_csv.py脚本,这个是制作csv的脚本

make_csv.pydataset_folder设置为视频的路径,把csv_path设置为生成的csv的输出路径。

注意运行这个脚本需要在data/下,因为生成的csv文件需要保存在data/目录

cd data/

python make_csv.py

脚本运行完成后,会有UBC_train_info.csvUBC_test_info.csv两个文件。

制作动作序列

为ubc数据集的视频制作动作序列。该项目使用的是DWPose

有一些必要的模型文件要从huggingface下载https://huggingface.co/yzd-v/DWPose/tree/main

将仓库克隆下来后,需要确保仓库保存到了DWPose/文件夹下,并改名成dwpose_ckpts

cd DWPose/

git clone https://huggingface.co/yzd-v/DWPose

mv DWPose dwpose_ckpts

这样我们就完成了模型的下载。

你可以使用pip install onnxruntime-gpu来使用gpu运行这个脚本

接着,打开prepare_ubc.py,修改其中的变量dataset_folder为你的ubc数据集的地址,随后就可以开始运行脚本。

脚本会把动作序列生成到数据集目录下的train_dwposetest_dwpose

调整训练参数

第一阶段训练

打开第一阶段的训练配置文件train_stage_1.yaml,在configs/training/下。

从上往下调整参数:

  • pretrained_model_pathclip_model_path是指v1.5模型和CLIP模型的位置,确定位置是正确的。
  • train_data下有csv_pathvideo_folderclip_model_path。其中csv_path指csv的位置;video_folder是指ubc数据集的位置;clip_model_path是CLIP的位置。

调整完这些参数就可以开始第一阶段的训练了。

开始训练

根据作者介绍,该项目至少需要80GB的显存才能运行。

下面是启动命令的示例:

# 单机单卡
torchrun --nproc_per_node=1 train_hack.py --config configs/training/train_stage_1.yaml

# 单机多卡
torchrun --nproc_per_node=4 train_hack.py --config configs/training/train_stage_1.yaml

# 多机多卡(正在学习)

About

Unofficial Implementation of Animate Anyone

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.7%
  • Shell 0.3%