# DynamiCrafter ## 论文 **DynamiCrafter: Animating Open-domain Images with Video Diffusion Priors** * https://arxiv.org/abs/2310.12190 ## 模型结构 该模型对Stable Diffusion进行了扩展,使其可以生成视频。在训练时采用双流图像注入(`Dual-stream image injection`)机制,该机制以一种上下文感知的方式继承视觉细节并提取输入图像特征。模型的整体流程是这样的,输入分别是`x`以及$`x^m`$(`x`中随机帧),视频`x`逐帧通过`VAE`的编码器部分获取 $`z_0`$,图像`x_m`通过编码器并`Repeat`后与`z_t`($`z_0`$扩散后得到)拼接进入`Denoising U-Net`,同时,由$`x^m`$经过`CLIP image encoder`以及`Query transformer`后得到的条件与`FPS`,`Text`特征一同进入`U-Net`进行训练。 ![Alt text](readme_imgs/image-1.png) ## 算法原理 该算法在文本生成视频的基础上,增加了视觉信息,使得在视频生成的过程中可以保留视觉的细节信息。 ![Alt text](readme_imgs/image-2.png) ## 环境配置 ### Docker(方法一) docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-ubuntu20.04-dtk24.04.1-py3.10 docker run --shm-size 10g --network=host --name=dynamicrafter --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it bash pip install -r requirements.txt ### Docker(方法二) # 需要在对应的目录下 docker build -t : . docker run --shm-size 10g --network=host --name=dynamicrafter --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it bash pip install -r requirements.txt ### Anaconda (方法三) 1、关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装: https://developer.sourcefind.cn/tool/ DTK驱动:dtk24.04.1 python:python3.10 torch:2.1.0 torchvision:0.16.0 triton:2.1.0 Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应 2、其它非特殊库参照requirements.txt安装 pip install -r requirements.txt ## 数据集 无 ## 推理 export HF_ENDPOINT=https://hf-mirror.com ### 命令行 # Select the model based on required resolutions: i.e., 1024|512|320: bash scripts/run.sh 512 bash scripts/run_application.sh interp # Generate frame interpolation bash scripts/run_application.sh loop # Looping video generation ### gradio页面 python gradio_app.py --res 512 python gradio_app_interp_and_loop.py ## result ### normal ||输入|输出| |:---|:---|:---| |image|![alt text](readme_imgs/bloom01.png)|![Alt text](readme_imgs/image-3.gif)| |prompt|time-lapse of a blooming flower with leaves and a stem|| ### interp ||输入1|输入2|结果| |:---|:---|:---|:---| |image|![alt text](readme_imgs/smile_01.png)|![alt text](readme_imgs/smile_02.png)|![alt text](readme_imgs/r2.gif)| |prompt|a smiling girl||| ### loop ||输入|结果| |:---|:---|:---| |image|![alt text](readme_imgs/24.png)|![alt text](readme_imgs/r3.gif)| |prompt|a beach with waves and clouds at sunset|| ### 精度 无 ## 应用场景 ### 算法类别 `AIGC` ### 热点应用行业 `媒体,科研,教育` ## 预训练权重 |Model|Resolution|GPU Mem|Checkpoint| |:---------|:---------|:--------|:--------| |DynamiCrafter1024|576x1024|18.3GB|[huggingface](https://huggingface.co/Doubiiu/DynamiCrafter_1024/blob/main/model.ckpt)/[SCNet]| |DynamiCrafter512|320x512|12.8GB|[huggingface](https://huggingface.co/Doubiiu/DynamiCrafter_512/blob/main/model.ckpt)/[SCNet]| |DynamiCrafter256|256x256|11.9GB |[huggingface](https://huggingface.co/Doubiiu/DynamiCrafter/blob/main/model.ckpt)/[SCNet]| |DynamiCrafter512_interp|320x512 |12.8G|[huggingface](https://huggingface.co/Doubiiu/DynamiCrafter_512_Interp/blob/main/model.ckpt)/[SCNet]| 模型文件结构如下: checkpoints/ |── dynamicrafter_512_v1 └── model.ckpt |── dynamicrafter_1024_v1 └── model.ckpt |── dynamicrafter_256_v1 └── model.ckpt └── ... ## 源码仓库及问题反馈 https://developer.sourcefind.cn/codes/modelzoo/dynamicrafter_pytorch ## 参考资料 * https://github.com/Doubiiu/DynamiCrafter