在Ubuntu上部署Stable Video Diffusion动画制作

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下面,有兴趣的小伙伴可关注意更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/463018.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【初中生讲机器学习】6. 分类算法中常用的模型评价指标有哪些?here!

创建时间:2024-02-07 最后编辑时间:2024-02-09 作者:Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏,很高兴遇见你~ 我是 Geeker_LStar,一名初三学生,热爱计算机和数学,我们一起加…

leetcode 3027. 人员站位的方案数 II【离散化前缀和+枚举】

原题链接:3027. 人员站位的方案数 II 题目描述: 给你一个 n x 2 的二维数组 points ,它表示二维平面上的一些点坐标,其中 points[i] [xi, yi] 。 我们定义 x 轴的正方向为 右 (x 轴递增的方向)&#x…

今年春节联欢晚会中的扑克魔术到底是咋变的?

今年的刘谦给全国观众带来了俩魔术,一个是洗牌一个是撕牌,前面第一个魔术看不出来太神奇了,但是第二魔术感觉挺有趣的我可以简单分析分析。 然后我们列出这个魔术的关键步骤: 打乱四张牌 1 2 3 4 对折、撕开、面向同一个方向重…

怎么把视频音乐提取成mp3?分享详细工具和方法!

在数字媒体时代,音乐已经成为我们生活中不可或缺的一部分。有时候,我们会在社交媒体、视频分享网站或在线视频平台上看到一些非常喜欢的视频音乐,想要将其保存为MP3格式以便随时随地聆听。那么,如何从视频中提取音乐并转换为MP3格…

SolidWorks学习笔记——入门知识2

目录 建出第一个模型 1、建立草图 2、选取中心线 3、草图绘制 4、拉伸 特征的显示与隐藏 改变特征名称 5、外观 6、渲染 建出第一个模型 1、建立草图 图1 建立草图 按需要选择基准面。 2、选取中心线 图2 选取中心线 3、草图绘制 以对称图形举例,先画出…

Java异常的处理 try-catch-finally

目录 什么是异常通过if-else处理异常用if-else堵漏洞的缺点 try-catch例第一种处理第二种处理第三种处理第四种处理 try-catch-finally例 System.exit(0);//终止当前的虚拟机执行 什么是异常 Exception:在程序的运行过程中,发生了不正常的现象&#xff0…

PWM输入输出

PWM(Pulse Width Modulation)即脉冲宽度调制,在具有惯性的系统中,可以通过对一系列脉冲的宽度进行制,来等效地获得所需要的模拟参量,常应用于电机控速、开关电源等领域。 PWM参数 PWM 中有三个重要参数&…

IOS破解软件安装教程

对于很多iOS用户而言,获取软件的途径显得较为单一,必须通过App Store进行下载安装。 这样的限制,时常让人羡慕安卓系统那些自由下载各类版本软件的便捷。 心中不禁生出疑问:难道iOS世界里,就不存在所谓的“破解版”软件…

子域名收集神器:Subfinder 保姆级教程(附链接)

一、介绍 Subfinder 是一款专注于子域名收集的开源工具,旨在帮助安全专业人员、渗透测试人员和研究人员快速有效地发现目标域的子域名。该工具通过与多个子域名源(例如搜索引擎、DNS数据)集成,提供了一个全面的子域名搜集解决方案…

ElasticSearch之倒排索引

写在前面 本文看下es的倒排索引相关内容。 1:正排索引和倒排索引 正排索引就是通过文档id找文档内容,而倒排索引就是通过文档内容找文档id,如下图: 2:倒排索引原理 假定我们有如下的数据: 为了建立倒…

阿里云游戏服务器一年费用多少?

阿里云游戏服务器租用价格表:4核16G服务器26元1个月、146元半年,游戏专业服务器8核32G配置90元一个月、271元3个月,阿里云服务器网aliyunfuwuqi.com分享阿里云游戏专用服务器详细配置和精准报价: 阿里云游戏服务器租用价格表 阿…

Android SystemConfig相关

SystemConfig在哪里初始化 它声明在PackageManagerService类的静态方法main()中。在该方法中间定义Injector类对象时,作为它的构造参数。它是调用的SystemConfig.getInstance()实现初始化,之后能通过Injector类对象的getSystemConfig()得到SystemConfig类…