Windows避坑部署SkyworkAI/SkyReels-V2昆仑万维电影生成模型

#工作记录

前言

SkyworkAI/SkyReels-V2 是由昆仑万维开源的全球首个无限时长电影生成模型,基于扩散强迫框架结合多模态大语言模型、强化学习等技术,支持文本到视频、图像到视频等多种生成方式

开源项目地址:

SkyworkAI/SkyReels-V2:SkyReels-V2:无限长胶片生成模型

一般建议Linux系统或WSL部署可能较为顺利,因为Windows中部署有些小坑要踩,本文将详细记录避坑部署的流程和步骤。

前提条件:

请提前准备好python开发基础环境

请提前准备好网络环境

请提前完整克隆项目源代码到本地

本文中用于演示的编辑器是PyCharm社区版

下边进入部署步骤:

一、新建虚拟环境,python=3.10

在PyCharm中,用项目的requirement新建python版本为3.10的本地.venv虚拟环境:

如果出现以下弹窗是正常的,不用着急:

requirements.txt安装失败,但环境创建成功:

 关闭弹窗,按提示先升级pip和相关构建包

二、升级pip、setuptools、wheel

激活并进入创建的虚拟环境终端:

python -m pip install --upgrade pip setuptools wheel

三、修改 requirements.txt文件

 requirements.txt文件原内容:

torch==2.5.1
torchvision==0.20.1
opencv-python==4.10.0.84
diffusers>=0.31.0
transformers==4.49.0
tokenizers==0.21.1
accelerate==1.6.0
tqdm
imageio
easydict
ftfy
dashscope
imageio-ffmpeg
flash_attn
numpy>=1.23.5,<2
xfuser

修改后的 requirements.txt文件内容:

#torch==2.5.1
#torchvision==0.20.1
opencv-python==4.10.0.84
diffusers>=0.31.0
transformers==4.49.0
tokenizers==0.21.1
accelerate==1.6.0
tqdm
imageio
easydict
ftfy
dashscope
imageio-ffmpeg
#flash_attn
numpy>=1.23.5,<2
xfuser

具体修改的地方是:

1、注释掉第1行和第2行,改为手动安装torch;

小坑1:

用原始的 requirements.txt文件安装的torch不完整,文件列表中缺少 torchaudio,如若安装后将只能使用CPU而不能调用GPU支持。

因为torch==2.5.1和 torchvision==0.20.1 需要 torchaudio==2.5.1,这三个包必须一起在虚拟环境中按版本兼容安装,而且最好指定CUDA版本,比如CUDA11.8/CUDA12.1/CUDA12.4等。

后边将会记录到到PyTorch官网查找命令进行安装。

2、注释掉第14行,改为手动安装flash_attn;

小坑2:

在Windows中直接安装flash_attn大概率会在安装编译中失败,改为下载大佬已编译的whl文件从本地安装。

三、安装修改后的 requirements.txt文件

pip install requirements.txt

一般修改后能顺利完成安装。 

四、安装Torch

(一)进入PyTorch官网:

PyTorch 插件

(二)进入“开始使用(Get started)”:

(三)进入“以前的PyTorch版本”:

(四)查找安装命令:

在PyTorch官网这个界面中按CTRL+F打开搜索框搜索“torch==2.5.1”(复制自 requirements.txt 文件中被注释掉的torch版本“torch==2.5.1”文本)

(五)复制安装命令

如果想安装CUDA11.8版支持的:

# CUDA 11.8
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1  pytorch-cuda=11.8 -c pytorch -c nvidia

 如果想安装CUDA12.1版支持的:

# CUDA 12.1
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.1 -c pytorch -c nvidia

 如果想安装CUDA12.4版支持的: 

# CUDA 12.4
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.4 -c pytorch -c nvidia

(六)安装torch

复制到虚拟环境的终端中执行,比如CUDA12.4的:

# CUDA 12.4
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.4 -c pytorch -c nvidia

(七)验证torch的安装

用以下完整的命令,在python环境验证安装:

import torch  # 导入 PyTorch 库print("PyTorch 版本:", torch.__version__)  # 打印 PyTorch 的版本号# 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("设备:", device)  # 打印当前使用的设备
print("CUDA 可用:", torch.cuda.is_available())  # 打印 CUDA 是否可用
print("cuDNN 已启用:", torch.backends.cudnn.enabled)  # 打印 cuDNN 是否已启用# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
print("支持的 CUDA 版本:", torch.version.cuda)
print("cuDNN 版本:", torch.backends.cudnn.version())# 创建两个随机张量(默认在 CPU 上)
x = torch.rand(5, 3)
y = torch.rand(5, 3)# 将张量移动到指定设备(CPU 或 GPU)
x = x.to(device)
y = y.to(device)# 对张量进行逐元素相加
z = x + y# 打印结果
print("张量 z 的值:")
print(z)  # 输出张量 z 的内容

 

五、安装flash_attn

(一)下载flash_attn

因为直接pip安装flash_attn大概率安装失败,所以思路是搜索并下载一个对应python版本和torch、CUDA版本的whl文件,从本地安装:

注意3个细节:

CUDA12.4

torch==2.5.1

python=3.10

开源下载地址:

发布 ·kingbri1/flash-attention

(二)移动flash_attn到项目文件夹

下载后放入项目文件夹内

(三)安装flash_attn

pip install+文件名

pip install flash_attn-2.7.4.post1+cu124torch2.5.1cxx11abiFALSE-cp310-cp310-win_amd64.whl

安装后 requirements.txt文件安装完成。

六、下载模型

可以用Huggingface或modelscope两种方式的其中之一。

请根据系统配置选择适合的模型。

下载过程容易产生错误,所以单独举例记录下来。

(一) Huggingface 下载

 1、进入模型页面

这里演示用 Huggingface 下载

点击进入项目README.MD提供的Huggingface链接:

比如Diffusion Forcing 1.3B-540P:

2、进到模型文件界面

 3、点击右上角查看下载方式

4、执行命令下载 

复制以下命令在项目虚拟环境的终端中执行:

git lfs install
git clone https://huggingface.co/Skywork/SkyReels-V2-DF-1.3B-540P

(二)modelscope下载

 1、进入模型页面

这里演示用 Huggingface 下载

点击进入项目README.MD提供的Huggingface链接:

比如Diffusion Forcing 1.3B-540P:

2、进到模型文件界面 

 3、点击右上角查看下载方式

 

4、创建储存目录

在本地新建模型储存文件夹“SkyReels-V2-DF-1.3B-540P”

mkdir SkyReels-V2-DF-1.3B-540P

5、修改下载命令用于下载到指定路径:

修改下载命令,指定下载路径:

modelscope模型官网原命令: 

modelscope download --model Skywork/SkyReels-V2-DF-1.3B-540P

修改后命令:

指定完整的模型文件下载到项目目录下的 刚新建的“SkyReels-V2-DF-1.3B-540P”文件夹:

modelscope download --model Skywork/SkyReels-V2-DF-1.3B-540P --local_dir ./SkyReels-V2-DF-1.3B-540P
 如果不指定路径直接使用官方命令

 如果不指定路径直接使用官方命令的话,模型文件会下载到C盘,导致C盘空间紧张:

 C:\Users\love\.cache\modelscope\hub\models

七、安装其他软件包

 以下两个库在requirements.txt文件中没有列出来,但缺少会导致运行错误

pip install addict

也可以用PyCharm中的安装功能安装: 

pip install datasets==2.16.0

 注:如果要指定版本,则不建议使用PyCharm中的安装功能进行安装,而是手动用命令进行安装。

八、运行项目

(一)创建输出目录

在项目目录创建一个视频输出目录,用于参数指定并保存输出视频。

创建名为output的目录:

mkdir output

(二)创建运行脚本

1、我们先仔细查看官方命令示例:

然后以第一个运行命令为例,来运行以检验部署情况:

model_id=Skywork/SkyReels-V2-DF-14B-540P
# synchronous inference
python3 generate_video_df.py \
  --model_id ${model_id} \
  --resolution 540P \
  --ar_step 0 \
  --base_num_frames 97 \
  --num_frames 257 \
  --overlap_history 17 \
  --prompt "A graceful white swan with a curved neck and delicate feathers swimming in a serene lake at dawn, its reflection perfectly mirrored in the still water as mist rises from the surface, with the swan occasionally dipping its head into the water to feed." \
  --addnoise_condition 20 \
  --offload \
  --teacache \
  --use_ret_steps \
  --teacache_thresh 0.3

由于命令参数太多了,而且也不是可直接运行的命令(在Windows系统上),我们可以创建一个.py文件,以在项目虚拟环境终端中运行(Windows cmd和powershell命令有差异,请注意用AI进行转换) 。

2、创建 Python 脚本

我们可以将这些命令封装到一个 Python 脚本中,这样就可以直接运行该脚本而无需手动在命令行中输入这些复杂的命令。

以下是一个示例 Python 脚本的示例,它会自动设置变量并调用项目中的 generate_video_df.py 脚本文件。

创建 Python 脚本
2.1、创建一个名为 run_video_generation.py 的文件

在PyCharm中,目录窗口处右键新建一个.py文件,并将以下内容复制到文件中:

# run_video_generation.pyimport subprocess
import sys
import osdef run_command(command):try:subprocess.run(command, check=True, shell=True)except subprocess.CalledProcessError as e:print(f"Error: {e}")sys.exit(1)if __name__ == "__main__":# 设置模型 IDmodel_id = "SkyReels-V2-DF-1.3B-540P"# 设置输出路径output_path = "./output/generated_video.mp4"# 确保输出目录存在output_dir = os.path.dirname(output_path)if not os.path.exists(output_dir):os.makedirs(output_dir)# 构建命令command = f"""python3 generate_video_df.py ^--model_id {model_id} ^--resolution 540P ^--ar_step 0 ^--base_num_frames 97 ^--num_frames 257 ^--overlap_history 17 ^--prompt "A graceful white swan with a curved neck and delicate feathers swimming in a serene lake at dawn, its reflection perfectly mirrored in the still water as mist rises from the surface, with the swan occasionally dipping its head into the water to feed." ^--addnoise_condition 20 ^--offload ^--teacache ^--use_ret_steps ^--teacache_thresh 0.3 ^--output_path "{output_path}""""# 运行命令print("Running video generation command...")run_command(command)print(f"Video generation completed successfully. Video saved to: {output_path}")
2.2、保存文件

将文件保存为 run_video_generation.py,并确保它位于与 generate_video_df.py 同一目录下(例如 F:\PythonProjects\SkyReels-V2)。

2.3、运行脚本
python run_video_generation.py

2.4、脚本说明
  • subprocess.run
    • 用于在 Python 脚本中运行外部命令。

    • check=True 会确保如果命令失败,脚本会抛出异常并退出。

    • shell=True 允许我们在一个字符串中编写命令,就像在命令行中一样。

  • 命令格式
    • 在 Windows 中,我们使用 ^ 作为换行符。

    • 使用 Python 的 f-string 来插入变量(如 model_id)。

2.5、注意事项
  • 终端版本

CMD和powershell中命令不同、连接符也不同,请使用AI工具进行转换。

  • Python 版本
    确保您使用的是 Python 3.10 或更高版本,因为 f-string 是从 Python 3.6 开始引入的。
  • 路径问题

如果 generate_video_df.py 位于其他目录,我们需要提供完整的路径,例如

command = f"F:\\PythonProjects\\SkyReels-V2\\generate_video_df.py ^"
  • ​​​​​​​权限问题

确保我们有权限运行 generate_video_df.py 脚本

通过这种方式,我们可以避免手动输入复杂的命令,直接运行一个简单的 Python 脚本即可完成视频生成任务。

希望这能帮助我们部署的项目顺利运行! 

总结

关键步骤总结

  1. 新建虚拟环境:在 PyCharm 中创建 Python 3.10 的虚拟环境 .venv

  2. 升级依赖:激活虚拟环境并升级 pipsetuptoolswheel

  3. 修改 requirements.txt:注释掉 torchtorchvisionflash_attn 的安装行,手动安装这些依赖。

  4. 安装修改后的依赖:运行 pip install -r requirements.txt 安装依赖。

  5. 安装 PyTorch:从 PyTorch 官网查找并安装适合的 PyTorch 版本。

  6. 安装 flash_attn:下载并安装适合的 flash_attn.whl 文件。

  7. 下载模型:使用 Hugging Face 或 ModelScope 下载模型到指定路径。

  8. 安装其他软件包:手动安装 addictdatasets 等未列出但必需的包。

  9. 运行项目:创建输出目录并编写运行脚本 run_video_generation.py,封装命令并运行。

补充说明

这是在Windows系统避坑部署过程,最终视频 SkyworkAI/SkyReels-V2 的使用命令还需要进一步调试。

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

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

相关文章

iVX 图形化编程如何改写后端开发新范式

在数字化转型加速推进的当下&#xff0c;企业对后端系统的需求呈现爆发式增长。Gartner 最新报告指出&#xff0c;2025 年全球企业平均需完成 300 定制化应用开发&#xff0c;而传统编码模式下&#xff0c;单个项目平均交付周期长达 6 - 8 个月。与此同时&#xff0c;Redis、K…

策略模式:灵活的算法封装与切换

策略模式是一种行为型设计模式&#xff0c;它将一组算法封装成独立的类&#xff0c;使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户端。本文将以一个收银系统为例&#xff0c;详细介绍策略模式的实现和应用。 什么是策略模式&#xff1f; 策略模式定义了算法…

第十四章-PHP与HTTP协议

第十四章-PHP与HTTP协议 一&#xff0c;HTTP 协议详解 HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是互联网上应用最广泛的协议之一&#xff0c;用于客户端&#xff08;如浏览器&#xff09;与服务器之间的通信。它是 Web 技术的基石…

刀客独家 | 潘胜接管百度移动生态市场部

一、 据刀客doc向独家信源确认&#xff0c;百度移动生态事业群&#xff08;MEG&#xff09;市场部日前完成重要人事调整&#xff1a;潘胜已经接任市场负责人。 此前&#xff0c;根据雷锋网3月底的报道&#xff0c;百度云渠道生态总经理陈之若离职&#xff0c;原移动生态事业群…

Springoot、Flowable快速学习

应用背景&#xff1a; 公司打算做个考勤系统&#xff0c;涉及到请假、补卡之类的流程审批。想到了工作流&#xff0c;gitee、github上看了下开源的&#xff0c;有自研的和常见的Flowable‌、Activiti‌。首先放弃自研的&#xff0c;考虑到成熟度、社区生态&#xff0c;最后选择…

关于 【Spring Boot Configuration Annotation Processor 未配置问题】 的详细分析、解决方案及代码示例

以下是关于 Spring Boot Configuration Annotation Processor 未配置问题 的详细分析、解决方案及代码示例&#xff1a; 1. 问题描述 当使用 Spring Boot 的配置注解&#xff08;如 ConfigurationProperties、Value、ConditionalOnProperty 等&#xff09;时&#xff0c;若未…

Spring系列四:AOP切面编程 第一部分

AOP切面编程 &#x1f497;AOP-官方文档&#x1f35d;AOP 讲解&#x1f35d;AOP APIs &#x1f497;动态代理&#x1f35d;初探动态代理&#x1f35d;动态代理深入&#x1f35d;AOP问题提出&#x1f4d7;使用土方法解决&#x1f4d7; 对土方法解耦-开发最简单的AOP类&#x1f4…

【云计算】云计算中IaaS、PaaS、SaaS介绍

0 随着云计算、大数据、人工智能发展迅速,布局“云”已经是互联网企业共识。云计算的服务类型分为三种,分别为IaaS、PaaS、SaaS,这三个分别是什么意思,今天做一个简单的介绍和了解。 一、云计算 云计算是用户需求通过Internet获取计算资源,把计算资源包装成服务,提供给…

使用HYPRE库并行装配IJ稀疏矩阵指南: 矩阵预分配和重复利用

使用HYPRE库并行装配IJ稀疏矩阵指南 HYPRE是一个流行的并行求解器库&#xff0c;特别适合大规模稀疏线性系统的求解。下面介绍如何并行装配IJ格式的稀疏矩阵&#xff0c;包括预先分配矩阵空间和循环使用。 1. 初始化矩阵 首先需要创建并初始化一个IJ矩阵&#xff1a; #incl…

目标跟踪最新文章阅读列表

AAAI2025 TrackFormer: Multi-Object Tracking with Transformers 论文:https://arxiv.org/abs/2101.02702 代码:https://github.com/timmeinhardt/trackformer AAAI2025 SUTrack 单目标跟踪 论文:https://pan.baidu.com/s/10cR4tQt3lSH5V2RNf7-3gg?pwd=pks2 代码:htt…

分布式GPU上计算长向量模的方法

分布式GPU上计算长向量模的方法 当向量分布在多个GPU卡上时&#xff0c;计算向量模(2-范数)需要以下步骤&#xff1a; 在每个GPU上计算本地数据的平方和跨GPU通信汇总所有平方和在根GPU上计算总和的平方根 实现方法 下面是一个完整的CUDA示例代码&#xff0c;使用NCCL进行多…

高并发下单库存扣减异常?飞算 JavaAI 自动化生成分布式事务解决方案

在电商、旅游等行业业务量激增&#xff0c;高并发下单场景中&#xff0c;传统库存扣减方式弊端尽显。超卖问题因缺乏有效并发控制机制频发&#xff0c;多个订单同时访问库存数据&#xff0c;导致同一商品多次售出&#xff0c;订单无法履约引发客户投诉&#xff1b;同时&#xf…

MVCWebAPI使用FromBody接受对象的方法

近期在做软件升级操作的时候突然想着需要的参数比较多&#xff0c;如果需要参数的话参数比较多&#xff0c;所有想着使用frombody来集合数据统一操作做了个样张希望对您有帮助 代码如下&#xff1a; /// <summary>/// 入口当前文件接口下的操作数据/// </summary>/…

Atlas 800I A2 离线部署 DeepSeek-R1-Distill-Llama-70B

一、环境信息 1.1、硬件信息 Atlas 800I A2 1.2、环境信息 注意&#xff1a;这里驱动固件最好用商业版&#xff0c;我这里用的社区版有点小问题 操作系统&#xff1a;openEuler 22.03 LTS NPU驱动&#xff1a;Ascend-hdk-910b-npu-driver_24.1.rc3_linux-aarch64.run NPU固…

NLP预处理:如何 处理表情符号

一、说明 本系列文总结了在NLP处理中&#xff0c;进行文本预处理的一些内容、步骤、处理工具包应用。本篇专门谈论网上文章表情符号处理&#xff0c;对于初学者具有深刻学习和实验指导意义。 二、介绍 表情符号已成为现代交流不可或缺的一部分&#xff0c;尤其是在社交媒体、…

C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 14)

&#x1f381;个人主页&#xff1a;工藤新一 &#x1f50d;系列专栏&#xff1a;C面向对象&#xff08;类和对象篇&#xff09; &#x1f31f;心中的天空之城&#xff0c;终会照亮我前方的路 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录 二…

解锁空间数据新质生产力暨:AI(DeepSeek、ChatGPT)、Python、ArcGIS Pro多技术融合下的空间数据分析、建模与科研绘图及论文写作

人工智能&#xff08;AI&#xff09;与ArcGIS Pro的结合&#xff0c;为空间数据处理和分析开辟了前所未有的创新路径。AI通过强大的数据挖掘、深度学习及自动化能力&#xff0c;可高效处理海量、多源、异构的空间数据&#xff0c;极大提升了分析效率与决策支持能力。而ArcGIS P…

18.2.go语言redis中使用lua脚本

在 Redis 中使用 Lua 脚本可以实现原子性操作、减少网络开销以及提高执行效率。 Redis 执行 Lua 脚本的原理 Redis 内置了 Lua 解释器&#xff0c;能够直接在服务器端执行 Lua 脚本。当执行 Lua 脚本时&#xff0c;Redis 会将脚本作为一个整体执行&#xff0c;保证脚本执行期…

⭐Unity_Demolition Media Hap (播放Hap格式视频 超16K大分辨率视频 流畅播放以及帧同步解决方案)

播放大分辨率视频以及实现局域网视频同步是许多开发者会遇到的需求,AVPro有一个 Ultra Edition版本,也能播放Hap格式视频,之外就是Demolition Media Hap插件啦,实测即使是 7208*3808 大分辨率的视频帧率还是能稳定在30帧,它能帮助我们轻松解决这些问题😎。 一、插件概述 …

AI大模型知识与医疗项目实践 - Java架构师面试实战

AI大模型知识与医疗项目实践 - Java架构师面试实战 本文模拟了一场互联网大厂的Java架构师面试&#xff0c;围绕AI大模型知识、工具以及其在医疗项目中的实践和趋势展开讨论。 第一轮提问 面试官&#xff1a; 马架构&#xff0c;请您介绍一下AI大模型的基本概念及其在医疗领…