最新视频合成后调优技术ExVideo模型部署

ExVideo是一种新型的视频合成模型后调优技术,由华东师范大学和阿里巴巴的研究人员共同开发。

ExVideo提出了一种新的后调优策略,无需对整个模型进行大规模重训,仅通过对模型中时序相关组件的微调,就能够显著增强其生成更长视频片段的能力,大大降低了对计算资源的需求,仅需1.5kgpu小时就能将视频生成帧数提高至原模型的5倍。

ExVideo在提升视频长度的同时,并没有牺牲模型的泛化能力,生成的视频在风格和分辨率上依然具有多样性。

该技术还采用了多种工程优化技术,比如参数冻结、混合精度训练、梯度检查点技术和Flash Attention,以及使用DeepSpeed库来分片优化器状态和梯度,从而在有限的计算资源下高效训练。

github项目地址:https://github.com/modelscope/DiffSynth-Studio.git。

一、环境安装

1、python环境

建议安装python版本在3.10以上。

2、pip库安装

pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

3、ExVideo-SVD-128f模型下载

git lfs install

git clone https://www.modelscope.cn/ECNU-CILab/ExVideo-SVD-128f-v1.git

4、HunyuanDiT模型下载

git lfs install

git clone https://www.modelscope.cn/api/v1/models/modelscope/HunyuanDiT.git

5、stable-video-diffusion模型下载

git lfs install

git clone https://www.modelscope.cn/api/v1/models/AI-ModelScope/stable-video-diffusion-img2vid-xt.git

、功能测试

1、运行测试

(1)python代码调用测试

import os
import torch
from diffsynth import save_video, ModelManager, SVDVideoPipeline, HunyuanDiTImagePipeline, download_modelsdef generate_image():# Set environment variables for better performanceos.environ["TOKENIZERS_PARALLELISM"] = "True"# Download necessary modelsdownload_models(["HunyuanDiT"])# Initialize ModelManager with required modelsmodel_manager = ModelManager(torch_dtype=torch.float16, device="cuda", file_path_list=["models/HunyuanDiT/t2i/clip_text_encoder/pytorch_model.bin","models/HunyuanDiT/t2i/mt5/pytorch_model.bin","models/HunyuanDiT/t2i/model/pytorch_model_ema.pt","models/HunyuanDiT/t2i/sdxl-vae-fp16-fix/diffusion_pytorch_model.bin",])# Create image generation pipelinepipe = HunyuanDiTImagePipeline.from_model_manager(model_manager)# Generate and return the imagetorch.manual_seed(0)image = pipe(prompt="sunset time lapse at the beach with moving clouds and colors in the sky",negative_prompt="错误的眼睛,糟糕的人脸,毁容,糟糕的艺术,变形,多余的肢体,模糊的颜色,模糊,重复,病态,残缺,",num_inference_steps=50, height=1024, width=1024,)# Move model to CPU to free up GPU memorymodel_manager.to("cpu")return imagedef generate_video(image):# Download necessary modelsdownload_models(["stable-video-diffusion-img2vid-xt", "ExVideo-SVD-128f-v1"])# Initialize ModelManager with required modelsmodel_manager = ModelManager(torch_dtype=torch.float16,device="cuda",file_path_list=["models/stable_video_diffusion/svd_xt.safetensors","models/stable_video_diffusion/model.fp16.safetensors",])# Create video generation pipelinepipe = SVDVideoPipeline.from_model_manager(model_manager)# Generate and return the videotorch.manual_seed(1)video = pipe(input_image=image.resize((512, 512)),num_frames=128, fps=30, height=512, width=512,motion_bucket_id=127,num_inference_steps=50,min_cfg_scale=2, max_cfg_scale=2, contrast_enhance_scale=1.2)# Move model to CPU to free up GPU memorymodel_manager.to("cpu")return videodef upscale_video(image, video):# Download necessary modelsdownload_models(["stable-video-diffusion-img2vid-xt", "ExVideo-SVD-128f-v1"])# Initialize ModelManager with required modelsmodel_manager = ModelManager(torch_dtype=torch.float16,device="cuda",file_path_list=["models/stable_video_diffusion/svd_xt.safetensors","models/stable_video_diffusion/model.fp16.safetensors",])# Create video upscaling pipelinepipe = SVDVideoPipeline.from_model_manager(model_manager)# Generate and return the upscaled videotorch.manual_seed(2)video = pipe(input_image=image.resize((1024, 1024)),input_video=[frame.resize((1024, 1024)) for frame in video],denoising_strength=0.5,num_frames=128, fps=30, height=1024, width=1024,motion_bucket_id=127,num_inference_steps=25,min_cfg_scale=2, max_cfg_scale=2, contrast_enhance_scale=1.2)# Move model to CPU to free up GPU memorymodel_manager.to("cpu")return video# Main workflow
if __name__ == '__main__':# Generate the initial imageimage = generate_image()image.save("image.png")# Generate a video based on the initial imagevideo = generate_video(image)save_video(video, "video_512.mp4", fps=30)# Optionally upscale the video to higher resolutionupscaled_video = upscale_video(image, video)save_video(upscaled_video, "video_1024.mp4", fps=30)

未完......

更多详细的内容欢迎关注:杰哥新技术
 

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

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

相关文章

Linux 安装Mysql保姆级教程

一、检查环境 我们登录服务器,查看之前是否安装过mysql rpm -qa | grep mysql 由于我之前安装过,所以这里是有数据的 如果需要删除重新下载,可以使用 rpm -e mysql57-community-release-el7-10.noarch.rpm 二、安装 1、下载 接下来下载安装…

群晖(Docker Compose)配置 frp 服务

为了方便远程电脑,访问自己电脑上的ComfyUI等服务,配置了 frp 服务。 配置 frp 服务后,发现群晖中的一些服务也可以 stcp 安全的暴露出来。 直接在群晖通过 Docker Compose 方式部署 frps 和 frpc,访问者通过 frpc 安全访问暴露…

CentOS 7安装和配置 NFS

前言 NFS 是 Network File System 的缩写,即网络文件系统。功能是让客户端通过网络访问不同主机上磁盘里的数据,主要用在类 Unix 系统上实现文件共享的一种方法。本例演示 CentOS 7 下安装和配置 NFS 的基本步骤。 环境说明 CentOS 7(Mini…

光学涡旋Talbot阵列照明器的matlab模拟与仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 光学涡旋 Talbot 阵列照明器是一种利用光学涡旋(Optical Vortex)和 Talbot 效应(Talbot Effect)相结合的技术&…

LVS部署——DR集群

目录 一、LVS—DR工作原理 二、LVS-DR数据流向 三、LVS-DR模式特点和优缺点 3.1、特点 3.2、优缺点 四、LVS-DR中的ARP问题 4.1、IP地址冲突 4.2、第二次访问请求失败 五、部署LVS-DR集群 5.1、实验准备 5.2、配置负载调度器(192.168.20.15) …

SpringBoot2:学SpringBoot前的知识准备-用IDEA创建传统的webapp工程,并整合SpringMVC

1、IDEA创建工程 基于Maven模板创建的SpringMVC工程 工程创建好后,只有webapp目录 这里,我们需要手动创建java目录和resources配置文件目录 创建好后,配置下目录属性 最终结构 至此,工程就创建好了 2、配置Tomcat 参考&am…

【Tesla FSD V12的前世今生】从模块化设计到端到端自动驾驶技术的跃迁

自动驾驶技术的发展一直是全球汽车行业的焦点,Tesla的Full-Self Driving(FSD)系统凭借其持续的技术革新和强大的数据支持,在这个领域独占鳌头。本文将深入介绍Tesla FSD V12的演进历史,从自动驾驶的基础概念入手&#…

机器学习 之 决策树与随机森林的实现

引言 随着互联网技术的发展,垃圾邮件过滤已成为一项重要的任务。机器学习技术,尤其是决策树和随机森林,在解决这类问题时表现出色。本文将介绍随机森林的基本概念,并通过一个具体的案例——筛选垃圾电子邮件——来展示随机森林的…

【OpenGL】xcode+glfw画三角形

环境搭建 1. 执行brew install glfw 2. 项目中Build Settings中header Search Paths中添加glfw的include路径 3. 项目中Build Phases中的Link Binary With Libraries中添加glfw的lib文件(路径/opt/homebrew/Cellar/glfw/3.4/lib/libglfw.3.4.dylib)及…

数据结构之内核链表,栈,队列

今天主要学习了内核链表,顺序栈,链式栈,顺序队列,链式队列的相关内容。 一.内核链表 内核链表和之前的单向,双向链表有所不同的是内核链表的结构是数据包含节点,特点如下: 1.一种链表结构能够操…

谷歌的 GameNGen:无需游戏引擎,人工智能模拟 “毁灭战士“,开辟新天地

谷歌公司的研究人员创建了一个神经网络,可以在不使用传统游戏引擎的情况下生成经典射击游戏《毁灭战士》的实时游戏,从而实现了人工智能领域的一个重要里程碑。这个名为 GameNGen 的系统标志着人工智能向前迈出了重要一步,它能在单芯片上以每…

c语言(二叉树)

第4章 二叉树和BST 树与二叉树 基本概念 树是一种非线性结构,其严格的数学定义是:如果一组数据中除了第一个节点(第一个节点称为根节点,没有直接前驱节点)之外,其余任意节点有且仅有一个直接前驱&#xff…

Python相关系数导图

🎯要点 量化变量和特征关联绘图对比皮尔逊相关系数、斯皮尔曼氏秩和肯德尔秩汽车性价比相关性矩阵热图大流行病与资产波动城镇化模型预测交通量宝可梦类别特征非线性依赖性捕捉向量加权皮尔逊相关系数量化图像相似性 Python皮尔逊-斯皮尔曼-肯德尔 皮尔逊相关系…

Node.js原生开发脚手架工具(下)

前言 在现代软件开发中,脚手架工具成为提高开发效率和一致性的关键利器。使用Node.js原生开发自己的脚手架工具不仅能帮助自动化常见任务,还能根据具体需求进行高度定制。Node.js的异步非阻塞特性和丰富的模块系统使其成为构建这种工具的理想选择。本篇文…

★ 算法OJ题 ★ 力扣202 - 快乐数

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;我将和大家一起做一道双指针算法题--快乐数~ 目录 一 题目 二 算法解析 三 编写算法 一 题目 202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 二 算法解析 题⽬告诉我们&#xff0c;当我们不断重复操作…

Java设计模式之外观模式详细讲解和案例示范

1. 引言 在软件开发过程中&#xff0c;复杂的系统往往包含许多子系统和模块&#xff0c;随着系统功能的增加&#xff0c;模块之间的交互也变得更加复杂。这种复杂性可能会导致系统的可维护性和扩展性降低。外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式…

java同步概念

同步&#xff08;Synchronization&#xff09;在Java多线程编程中是一个既重要又复杂的概念。它涉及到如何确保多个线程在访问共享资源时能够保持数据的一致性和完整性&#xff0c;避免出现竞态条件&#xff08;Race Condition&#xff09;等问题。 同步的基本概念 同步的主要目…

深入解析体育馆蓝牙导航系统的技术实现与应用

技术爱好者与开发者们&#xff0c;您是否在大型体育馆内常常为找不到洗手间、休息区或观赛区而烦恼&#xff1f;随着科技的进步&#xff0c;我们团队倾力打造了体育馆蓝牙导航系统&#xff0c;专为解决这一痛点而生。本系统利用先进的蓝牙信标技术和精准的室内定位算法&#xf…

YOLO | YOLO目标检测算法(YOLO-V1)

github&#xff1a;https://github.com/MichaelBeechan CSDN&#xff1a;https://blog.csdn.net/u011344545 YOLO目标检测算法 YOLO V1概述&#xff08;2016&#xff09; YOLO V1概述&#xff08;2016&#xff09; 经典的One-stage方法 YOLO&#xff1a;You Only Look Once 把…

【河北航空-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…