Stable Diffusion团队推出的开源模型Stable Video Diffusion,支持生成约3秒的视频,分辨率为576×1024。通过测试视频展示了其令人瞩目的性能,SVD模型是一个生成图像到视频的扩散模型,通过对静止图像的条件化生成短视频。其特点主要包括:
1、微调优化: 通过在特定条件下进行微调,提高了视频输出的一致性和质量。
2、改进的生成性能: 在生成视频的清晰度、分辨率以及帧数方面可能有所改进,提供更为流畅和高质量的视觉体验。
3、固定条件下的性能提升: 通过在固定条件下进行微调,SVD在特定设置下展现出更优的性能。包括更好的运动一致性和视觉效果,同时保持了条件的可调整性,以适应不同的应用需求。
4、适应性和局限性:模型的生成视频较短,可能存在一些局限性,如生成视频中可能没有运动或摄像机移动缓慢。建议模型仅用于研究目的,不适合用于生成真实人物或事件的内容。
下面就让我们一起来配置一台SVD的服务器,试试他的效果吧!
环境准备:
在PVE4.17配置虚拟机一台:
Ubuntu22.04,内存32G(内存太小不行,运行过程中会意外中断)。
N卡:Nvidia P40
IP地址:192.168.29.201
一:克隆存储库
git clone https://github.com/Stability-AI/generative-models.git
二:安装部署SVD
1、设置虚拟环境
conda create -n svd python=3.10
conda activate svd
2、安装相关依赖
pip install -r requirements/pt2.txt
pip install pytorch-lightning
3、安装sgm
pip install .
4、安装ffmpeg
apt install ffmpeg
三:下载模型
svd下载地址:https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt
两外模型的名称:
(1)svd.safetensors
(2)svd_image_decoder.safetensors
svd_xt下载地址:https://huggingface.co/stabilityai/stable-video-diffusion-img2vid
两个模型的名称:
(1)svd_xt.safetensors
(2)svd_xt_image_decoder.safetensors
放置位置: generative-models/checkpoints
其他两个模型,下载地址:
https://huggingface.co/laion/CLIP-ViT-H-14-laion2B-s32B-b79K/tree/main
https://openaipublic.azureedge.net/clip/models/b8cca3fd41ae0c99ba7e8951adf17d267cdb84cd88be6f7c2e0eca1737a03836/ViT-L-14.pt
将这两个模型放在以下目录:
(1)将models--laion--CLIP-ViT-H-14-laion2B-s32B-b79K.tar拷贝至:
/root/.cache/huggingface/hub/models–laion–CLIP-ViT-H-14-laion2B-s32B-b79K.tar
然后执行:tar -zxvf models--laion--CLIP-ViT-H-14-laion2B-s32B-b79K.tar
(2)将ViT-L-14.pt拷贝至:/root/.cache/clip/ViT-L-14.pt
如果找不到这六个模型也可以从百度网盘下载:
链接:https://pan.baidu.com/s/188W1Ska5YSoIc8czjssjEQ?pwd=9rvz
提取码:9rvz
四:运行
cd generative-models
streamlit run scripts/demo/video_sampling.py --server.address 192.168.29.201 --server.port 7862
如果发生报错:ModuleNotFoundError: No module named 'scripts',那么请执行:
echo 'export PYTHONPATH=/generative-models:$PYTHONPATH' >> /root/.bashrc
source /root/.bashrc
或者重启服务器,然后再执行运行指令。
五:代码修改
cd generative-models
vim ./scripts/demo/streamlit_helpers.py
#找到“cv2.VideoWriter_fourcc”, 修改为
writer = cv2.VideoWriter(
video_path,
cv2.VideoWriter_fourcc(*'m', 'p', '4' , 'v'),
fps,
(vid.shape[-1], vid.shape[-2]),
)
注意: 那个【*】号不能少啊,否则mp4v的生成视频无法显示。
六:使用SVD
https://192.168.29.201:7862
1、加载模型
在四外模型中,选择一个模型,然后点Load Model,加载模型。
出现报错是因为需要上传一张图片,这里并没有错误。
2、选择一张图片用于生成动画。
上传图片后,注意这个选项:“Decodet frames at a time”,这里测试过程中我只能选2,也就是P40 24G最多也就只能处理2秒的视频,如果你需要一次处理更多的视频,就要换内存更大的N卡。点击【Sample】就可以生成动画视频了。
SVD可以做为ComfyUI的插件,在ComfyUI管理下,有更出色的内存管理,我们接下来会探讨如何将SVD安装在ComfyUI下面,有兴趣的小伙伴可关注意更新。