💭
AnimateAnyoneをローカルのdocker環境で試す
概要
AnimateAnyoneの実装が出てきたので自宅環境で動かしてみました。
準備
動作環境
- ubuntu22.04
- python3.10.9
- RTX4090
- cuda:11.7
使用するモジュール
markupsafe==2.0.1を追加しています。vid2pose.pyを動かす場合controlnet-auxが必要になるので入れておきます。私の環境ではgithubで指定されたバージョンでscipyが入らなかったので、scipy==1.10.1を使っています。
markupsafe==2.0.1
accelerate==0.21.0
av==11.0.0
clip @ https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip#sha256=b5842c25da441d6c581b53a5c60e0c2127ebafe0f746f8e15561a006c6c3be6a
decord==0.6.0
diffusers==0.24.0
einops==0.4.1
gradio==3.41.2
gradio_client==0.5.0
imageio==2.33.0
imageio-ffmpeg==0.4.9
numpy==1.23.5
omegaconf==2.2.3
onnxruntime==1.16.3
onnxruntime-gpu==1.16.3
open-clip-torch==2.20.0
opencv-contrib-python==4.8.1.78
opencv-python==4.8.1.78
Pillow==9.5.0
scikit-image==0.21.0
scikit-learn==1.3.2
scipy==1.10.1
torch==2.0.1
torchdiffeq==0.2.3
torchmetrics==1.2.1
torchsde==0.2.5
torchvision==0.15.2
tqdm==4.66.1
transformers==4.30.2
controlnet-aux
必要なファイルのダウンロード
まずgithubからcloneします。
git clone https://github.com/MooreThreads/Moore-AnimateAnyone.git
pthファイルのダウンロード
ここからpthファイルをダウンロードします。ダウンロード後はMoore-AnimateAnyone/pretrained_weightsフォルダを作って入れておきます。
- denoising_unet.pth
- reference_unet.pth
- pose_guider.pth
- motion_module.pth
StableDiffusion V1.5
先ほどのpretrained_weightsの中で実行します。
git clone https://huggingface.co/runwayml/stable-diffusion-v1-5
sd-vae-ft-mse
こちらも同様。
git clone https://huggingface.co/stabilityai/sd-vae-ft-mse
sd-image-variations-diffusers
pretrained_weightsの中で実行します。image_encoderフォルダを取り出して、pretrained_weights直下に置きます。
git clone https://huggingface.co/lambdalabs/sd-image-variations-diffusers
mv sd-image-variations-diffusers/image_encoder/ .
DWPose
以下のリンク先(baidu, google)から2つのファイルをダウンロードして、pretrained_weights/DWPoseに置きます。
- dw-ll_ucoco_384.onnx
- yolox_l.onnx
実行
scripts.pose2vidは1枚の画像とポーズの動画から、新しい動画を生成します。自分で用意した画像を試したい場合はconfigs/prompts/animation.yamlを変更します。
python -m scripts.pose2vid --config ./configs/prompts/animation.yaml -W 512 -H 784 -L 64
実行結果
サンプルの画像とポーズ動画はうまくいきますが、画像を差し替えると破綻するようです。調整がうまくいったら次の記事にします。
Discussion