在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.mzph.cn/news/676675.shtml

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

相关文章

Spring基础 - Spring简单例子引入Spring要点

Spring基础 - Spring简单例子引入Spring要点 设计一个Spring的Hello World 设计一个查询用户的案例的两个需求&#xff0c;来看Spring框架帮我们简化了什么开发工作 pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"htt…

无人机图像识别技术研究及应用,无人机AI算法技术理论,无人机飞行控制识别算法详解

在现代科技领域中&#xff0c;无人机技术是一个备受瞩目的领域。随着人们对无人机应用的需求在不断增加&#xff0c;无人机技术也在不断发展和改进。在众多的无人机技术中&#xff0c;无人机图像识别技术是其中之一。 无人机图像识别技术是利用计算机视觉技术对无人机拍摄的图像…

springboot169基于vue的工厂车间管理系统的设计

基于VUE的工厂车间管理系统设计与实现 摘 要 社会发展日新月异&#xff0c;用计算机应用实现数据管理功能已经算是很完善的了&#xff0c;但是随着移动互联网的到来&#xff0c;处理信息不再受制于地理位置的限制&#xff0c;处理信息及时高效&#xff0c;备受人们的喜爱。本…

第7章 智能租房——首页

学习目标 掌握房源总数展示功能&#xff0c;能够实现将统计的房源总数在首页中展示 掌握最新房源数据展示功能&#xff0c;能够实现将查询的最新房源数据在首页中展示 掌握热点房源数据展示功能&#xff0c;能够实现将查询的热点房源数据在首页中展示 了解智能提示搜索框的功…

Apache Paimon 文件操作

本文旨在澄清不同文件操作对文件的影响。 本页面提供具体示例和实用技巧&#xff0c;以有效地管理这些操作。此外&#xff0c;通过对提交&#xff08;commit&#xff09;和压实&#xff08;compact&#xff09;等操作的深入探讨&#xff0c;我们旨在提供有关文件创建和更新的见…

STM32 定时器

目录 TIM 定时器定时中断 定时器外部时钟 PWM驱动LED呼吸灯&#xff08;OC&#xff09; PWM控制舵机 PWMA驱动直流电机 输入捕获模式测频率&#xff08;IC&#xff09; 输入捕获模式测占空比 编码器接口测速(编码器接口) TIM 通用定时器 高级定时器 定时器定时中断 Ti…

Java中Map接口的常用方法

列举一些Map接口的常用方法 Map 是 Java 中的一个接口&#xff0c;它存储键值对&#xff0c;并且每个键都是唯一的。以下是一些 Map 接口的常用方法&#xff1a; put(K key, V value): 该方法用于向 Map 中插入一个键值对。如果该键在 Map 中已存在&#xff0c;则会更新其值并…

springboot项目热部署实现(Spring Boot DevTools方式)

文章目录 Spring Boot DevTools简介Spring Boot DevTools原理spring Boot Devtools优缺点Spring Boot DevTools集成步骤第一步&#xff1a;添加maven依赖第二步&#xff1a;IDEA热部署配置 Spring Boot DevTools简介 Spring Boot DevTools是Spring Boot提供的一个开发工具&…

Vue事件中如何使用 event 对象

在Vue中&#xff0c;事件处理函数常常需要获取事件触发时的相关信息&#xff0c;比如鼠标位置、按键信息等。而要获取这些信息&#xff0c;就需要使用event对象。那么在Vue的事件中如何正确使用event对象呢&#xff1f;接下来就来详细介绍一下。 首先&#xff0c;在Vue的事件中…

JSP编程

JSP编程 您需要理解在JSP API的类和接口中定义的用于创建JSP应用程序的各种方法的用法。此外,还要了解各种JSP组件,如在前一部分中学习的JSP动作、JSP指令及JSP脚本。JSP API中定义的类提供了可借助隐式对象通过JSP页面访问的方法。 1. JSP API的类 JSP API是一个可用于创建…

专业145+总分400+合肥工业大学833信号分析与处理综合考研经验电子信息通信,真题,大纲,参考书

今年专业课145总分400&#xff0c;我总结一下自己的专业课合肥工业大学833信号分析与处理和其他几门的复习经验。希望对大家复习有帮助。 我所用的教材是郑君里的《信号与系统》&#xff08;第三版&#xff09;和高西全、丁玉美的《数字信号处理》&#xff08;第四版&#xff…

java实现一个管理系统增删改查

后端 Java 接口实现 首先&#xff0c;确保你已经配置好数据库连接信息&#xff0c;并且已经创建了相应的数据库表。 创建一个实体类 User 来表示用户信息&#xff1a; // User.java public class User {private Long id;private String username;private String email;// 省略…

堆排序----C语言数据结构

目录 引言 堆排序的实现**堆的向下调整算法** 对排序的时间复杂度建堆的时间复杂度&#xff1a;排序过程的时间复杂度&#xff1a;总体时间复杂度&#xff1a; 引言 堆排序&#xff08;Heap Sort&#xff09;是一种基于比较的排序算法&#xff0c;利用堆的数据结构来实现。它的…

备战蓝桥杯---动态规划之背包问题引入

先看一个背包问题的简单版&#xff1a; 如果我们暴力枚举可能会超时。 但我们想一想&#xff0c;我们其实不关心怎么放&#xff0c;我们关心的是放后剩下的体积。 用可行性描述即可。 于是我们令f[i][j]表示前i个物品能否放满体积为j的背包。 f[i][j]f[i-1][j]||f[i-1][j-v…

图形学:Transform矩阵(3维 2维) 平移,旋转,缩放

0. 简介 在图形学领域中&#xff0c;Transform矩阵&#xff08;变换矩阵&#xff09;是一种表示图形对象在二维或三维空间中的位置、方向和大小变化的数学工具。它们用于执行各种图形变换&#xff0c;如平移、旋转、缩放。Transform矩阵通常表示为一个二维或三维矩阵&#xff…

JAVA 并发工具类介绍

JAVA 并发工具类 CountDownLatch CountDownLatch--闭锁&#xff0c;一个基于 AQS 共享模式的同步计数器&#xff0c;它内部的方法都是围绕 AQS 实现的。主要作用是使一个或一组线程在其他线程执行完毕之前&#xff0c;一直处于等待状态&#xff0c;直到其他线程执行完成后再继…

(已解决)在vue路由中:Vue.use(VueRouter)和Vue.use(Router);有什么区别?

正规来说&#xff0c; 在 Vue 中使用路由功能时&#xff0c;实际上应当是 Vue.use(VueRouter)&#xff0c;而不是 Vue.use(Router)。 Vue.use() 是 Vue.js 提供的一个全局API&#xff0c;用于安装 Vue 插件。当你想要在 Vue 应用中使用 Vue Router 进行前端路由管理时&#x…

C++ 内存管理(newdelete)

目录 本节目标 1. C/C内存分布 2. C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free 3. C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作自定义类型 4. operator new与operator delete函数 5. new和delete的实现原理 6. 定位new表达式(placem…

【5G NR】【一文读懂系列】移动通讯中使用的信道编解码技术-卷积码原理

目录 一、引言 二、卷积编码的发展历史 2.1 卷积码的起源 2.2 主要发展阶段 2.3 重要里程碑 三、卷积编码的基本概念 3.1 基本定义 3.2 编码器框图 3.3 编码多项式 3.4 网格图(Trellis)描述 四、MATLAB示例 一、引言 卷积编码&#xff0c;作为数字通信领域中的一项…

笔记——asp.net core 中的 REST

REST&#xff08;reprentational state transfer&#xff0c;表层状态转移&#xff09; REST原则&#xff1a;提倡按照HTTP的语义使用HTTP。 如果一个系统符合REST原则&#xff0c;我们就说这个系统是Restful风格的。 在RPC风格的Web API系统中&#xff0c;我们把服务端的代码…