CVPR 2024 | PIA:个性化图像动画生成器
PIA: 通过即插即用模块实现个性化的文本到图像模型动画生成器
(*共同贡献, †通讯作者)
PIA 是一种个性化的图像动画生成方法,能够生成具有高度运动可控性和强文本与图像对齐性的视频。
如果您觉得我们的项目有帮助,请给我们点个星星 :star: 或者 引用 它,我们将非常感激 :sparkling_heart:。
更新日志
-
2024/01/03
支持 Replicate Demo & API! -
2024/01/03
Colab 支持来自 camenduru 的支持! -
2023/12/28
支持在 16GB GPU 内存下使用scaled_dot_product_attention
处理 1024x1024 图像。 -
2023/12/25
HuggingFace demo 现已上线!🤗 Hub -
2023/12/22
在 OpenXLab 上发布了 PIA 的 demo,并可通过 Google Drive 或 下载检查点文件。
安装设置
准备环境
使用以下命令从头安装 PIA 的 conda 环境:
conda env create -f pia.yml
conda activate pia
您也可以基于现有环境进行安装,在这种情况下可以使用 environment-pt2.yaml
(适用于 Pytorch==2.0.0)。如果您想使用较低版本的 Pytorch(如 1.13.1),可以使用以下命令:
conda env create -f environment.yaml
conda activate pia
我们强烈推荐您使用支持 scaled_dot_product_attention
的 Pytorch==2.0.0,以实现高效的图像动画生成。
下载检查点
conda install git-lfs
git lfs install
git clone https://huggingface.co/runwayml/stable-diffusion-v1-5 models/StableDiffusion/
git clone https://huggingface.co/Leoxing/PIA models/PIA/
bash download_bashscripts/1-RealisticVision.sh
bash download_bashscripts/2-RcnzCartoon.sh
bash download_bashscripts/3-MajicMix.sh
您还可以通过 Google Drive 或 HuggingFace 手动下载 pia.ckpt。
请按以下方式放置检查点文件:
└── models
├── DreamBooth_LoRA
│ ├── ...
├── PIA
│ ├── pia.ckpt
└── StableDiffusion
├── vae
├── unet
└── ...
推理
图像动画
可以通过以下命令生成图像到视频的结果:
python inference.py --config=example/config/lighthouse.yaml
python inference.py --config=example/config/harry.yaml
python inference.py --config=example/config/majic_girl.yaml
运行上述命令后,您可以在 example/result 中找到结果:
输入图像 | 闪电,灯塔 | 日出,灯塔 | 烟花,灯塔 |
输入图像 | 1男孩微笑 | 1男孩在玩魔法火焰 | 1男孩在挥手 |
输入图像 | 1人微笑 | 1人哭泣 | 1人唱歌 |
真实视觉 | |||
RCNZ 卡通 3D | |||
1女孩微笑 | 1女孩张嘴 | 1女孩哭泣、撅嘴 | |
RCNZ 卡通 3D |
循环视频
您可以使用参数 --loop 生成循环视频
python inference.py --config=example/config/xxx.yaml --loop
示例:
python inference.py --config=example/config/lighthouse.yaml --loop
python inference.py --config=example/config/labrador.yaml --loop
输入图像 | 闪电,灯塔 | 日出,灯塔 | 烟花,灯塔 |
输入图像 | 拉布拉多跳跃 | 拉布拉多散步 | 拉布拉多奔跑 |
训练
我们为 PIA 提供了训练脚本。该脚本借鉴了AnimateDiff的内容,因此请按照指南准备数据集和配置文件。
准备完成后,您可以使用以下命令通过 torchrun 训练模型:
torchrun --nnodes=1 --nproc_per_node=1 train.py --config example/config/train.yaml
或者通过 slurm,
srun --quotatype=reserved --job-name=pia --gres=gpu:8 --ntasks-per-node=8 --ntasks=8 --cpus-per-task=4 --kill-on-bad-exit=1 python train.py --config example/config/train.yaml
AnimateBench
我们已经在HuggingFace开源了 AnimateBench,其中包括用于评估 PIA 和其他图像动画方法的图像、提示和配置。
BibTex
@inproceedings{zhang2024pia,
title={Pia: Your personalized image animator via plug-and-play modules in text-to-image models},
author={Zhang, Yiming and Xing, Zhening and Zeng, Yanhong and Fang, Youqing and Chen, Kai},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={7747--7756},
year={2024}
}
联系我们
Yiming Zhang: zhangyiming@pjlab.org.cn
Zhening Xing: xingzhening@pjlab.org.cn
Yanhong Zeng: zengyh1900@gmail