3步跑通SkyReels-V2:本地无限长视频生成实战指南
【免费下载链接】SkyReels-V2SkyReels-V2: Infinite-length Film Generative model项目地址: https://gitcode.com/GitHub_Trending/sk/SkyReels-V2
SkyReels-V2 是一个基于 Diffusion Forcing 架构的开源无限长度视频生成模型,支持文本转视频、图像转视频与长视频续写三类任务。读完本文,你可以完成环境安装、模型权重下载,并在本地生成 4 秒到 60 秒的视频,同时知道结果不理想时该调哪些参数。
项目概览:它是什么,适合谁用
SkyReels-V2 采用 Diffusion Forcing(扩散强制)方式训练视频模型。用大白话说:模型生成视频时对每一帧单独控制去噪程度,已经生成干净的帧可以作为条件,引导模型继续往后生成新帧,因此视频长度不再被限制在几秒钟。
仓库里包含三块内容:
- 推理代码与模型权重:Diffusion Forcing(DF,长视频)、文本转视频(T2V)、图像转视频(I2V)四个系列,提供 1.3B 与 14B 两种参数规模、540P 与 720P 两种分辨率,DF 系列同时支持文生视频和图生视频
- 两个推理入口脚本:generate_video.py 负责 T2V/I2V,generate_video_df.py 负责长视频生成、视频续写和首尾帧控制
- 结构化视频描述模型 SkyCaptioner-V1:位于 skycaptioner_v1/ 目录,能把视频转成包含镜头类型、镜头运动、主体信息等的结构化描述,适合用来产出更精准的提示词
显存参考:540P 视频生成时,1.3B 模型峰值约14.7GB,14B 模型约43~51GB(视任务而定)。如果你是第一次接触视频生成模型,建议从 1.3B + 540P 起步;显存 48GB 以上且追求画质的,可以直接上 14B。
环境安装与首次出片最短路径
先克隆仓库并安装依赖,官方测试环境是 Python 3.10、CUDA 12.2:
git clone https://gitcode.com/GitHub_Trending/sk/SkyReels-V2 cd SkyReels-V2 pip install -r requirements.txt接下来用 1.3B 的 DF 模型跑第一个视频。脚本会自动下载模型权重(首次运行稍慢),97 帧在 24fps 下约 4 秒,结果保存在result/目录下:
python3 generate_video_df.py \ --model_id Skywork/SkyReels-V2-DF-1.3B-540P \ --resolution 540P \ --base_num_frames 97 \ --num_frames 97 \ --prompt "A white swan swimming in a quiet lake at dawn, mist rising from the water surface." \ --offload命令跑完、result/里出现 mp4 并可以正常播放,就说明环境没问题。后续换成 720P 或 14B 模型时,除--model_id和--resolution外,720P 还需把--base_num_frames改为 121。
文本转视频与图像转视频
这两个任务都由 generate_video.py 完成,区别只在于是否传入--image参数。
文本转视频:只需一句文字描述
输入是提示词,输出是一段 97 帧(约 4 秒)的视频。T2V 模型推荐--guidance_scale 6.0 --shift 8.0:
python3 generate_video.py \ --model_id Skywork/SkyReels-V2-T2V-14B-540P \ --resolution 540P \ --num_frames 97 \ --guidance_scale 6.0 \ --shift 8.0 \ --prompt "A serene lake surrounded by towering mountains, swans gliding across the water, sunlight dancing on the surface." \ --offload图像转视频:让静态照片动起来
加上--image并把模型换成 I2V 系列即可,脚本会自动把输入图缩放到 544x960(竖图会自动转成 960x544 横版)。I2V 模型推荐--guidance_scale 5.0 --shift 5.0:
python3 generate_video.py \ --model_id Skywork/SkyReels-V2-I2V-14B-540P \ --resolution 540P \ --num_frames 97 \ --image your_image.png \ --guidance_scale 5.0 \ --shift 5.0 \ --prompt "Camera slowly pushes in, the person in the image smiles and turns toward the camera." \ --offload提示词里最好包含对输入图像内容的描述,这样首帧与后续画面的一致性会更好。
扩展视频长度:长视频生成、续写与首尾帧控制
这些能力都在 generate_video_df.py 中,使用 DF 系列模型。
从零生成 10~60 秒视频
长视频需要额外设置两个参数:--overlap_history 17(相邻生成片段的重叠帧数,保证衔接平滑)和--num_frames(总帧数)。官方建议值:10 秒约 257 帧、15 秒约 377 帧、30 秒约 737 帧、60 秒约 1457 帧。同时建议加--addnoise_condition 20,它对已生成的干净条件加少量噪声,能抑制长程漂移:
python3 generate_video_df.py \ --model_id Skywork/SkyReels-V2-DF-1.3B-540P \ --resolution 540P \ --ar_step 0 \ --base_num_frames 97 \ --num_frames 257 \ --overlap_history 17 \ --addnoise_condition 20 \ --prompt "A white swan swimming in a quiet lake at dawn." \ --offload官方实验表明异步推理(--ar_step 5 --causal_block_size 5)对指令遵循和画面一致性更好,代价是速度比同步模式慢,可以按需尝试。
在已有视频上续写
通过--video_path传入要续写的视频,此时--num_frames表示"续写"的帧数,总长度等于输入视频帧数加上它。输入视频不能短于--overlap_history的值:
python3 generate_video_df.py \ --model_id Skywork/SkyReels-V2-DF-1.3B-540P \ --resolution 540P \ --ar_step 0 \ --base_num_frames 97 \ --num_frames 120 \ --overlap_history 17 \ --addnoise_condition 20 \ --video_path input_video.mp4 \ --prompt "The swan continues swimming across the lake, the camera pans slowly." \ --offload控制第一帧和最后一帧
同时传--image与--end_image,模型会生成一段从首帧画面过渡到尾帧画面的视频:
python3 generate_video_df.py \ --model_id Skywork/SkyReels-V2-DF-1.3B-540P \ --resolution 540P \ --base_num_frames 97 \ --num_frames 97 \ --overlap_history 17 \ --image start.png \ --end_image end.png \ --prompt "Camera flies over the mountain, moving from a close-up of trees to a wide view of the valley." \ --offload生成参数调节与常见坑处理
这里只挑对结果影响最大的参数,完整说明见 README.md 的参数表。
--num_frames:视频总帧数。97(540P)或 121(720P)是单个基础段;长视频优先用 257/377/737/1457 这组与训练设置对齐的推荐值--base_num_frames:每次生成的块大小。显存不够时可以降到 77 或 57,画质会有轻微下降--guidance_scale与--shift:控制对提示词的遵循强度。T2V 用 6.0/8.0,I2V 用 5.0/5.0;画面没按提示词走就调高 guidance_scale,画面出现畸变就调低--overlap_history:长视频片段重叠帧数,17 为首选,也可以试 37--addnoise_condition:长视频一致性,推荐 20;超过 60 脚本会给出警告,官方建议不超过 50--seed:固定种子可复现结果;多 GPU 模式下必须指定--teacache+--use_ret_steps:推理加速,约 2~3 倍,--teacache_thresh越大加速越明显、画质损失也越大
几个新手高频问题:
- 显存不足(CUDA OOM):换 1.3B 模型、加
--offload、把--base_num_frames降到 77 或 57 - 生成太慢:加
--teacache --use_ret_steps --teacache_thresh 0.2;有多卡时改用torchrun --nproc_per_node=2 generate_video_df.py ... --use_usp --seed 42走 xDiT 多卡加速 - 长视频画面漂移、前后不一致:确认
--overlap_history 17和--addnoise_condition 20都设置了,仍不理想可换异步推理 - 提示词太短、生成内容单薄:加
--prompt_enhancer用大模型把短提示词扩写成详细描述,注意它需要 64GB 以上显存,且不能与--use_usp同时使用
继续探索:源码入口与相关模块
- skyreels_v2_infer/pipelines/:四条管线的实现,长视频生成逻辑在 diffusion_forcing_pipeline.py,提示词扩写脚本 prompt_enhancer.py 也在这里
- skyreels_v2_infer/modules/:transformer、VAE、注意力等核心组件;多卡并行在 skyreels_v2_infer/distributed/
- skycaptioner_v1/:结构化视频描述模型,含 vllm 批量推理与 Gradio 演示脚本,examples/ 下有示例视频,用法详见 skycaptioner_v1/README.md
如果你已经在用 diffusers(一个流行的扩散模型开源库)做项目,README 里提供了 T2V、I2V、视频续写的 Python 接口示例,可以直接加载 SkyReels-V2 的 Diffusers 格式权重,不必依赖仓库里的命令行脚本。
【免费下载链接】SkyReels-V2SkyReels-V2: Infinite-length Film Generative model项目地址: https://gitcode.com/GitHub_Trending/sk/SkyReels-V2
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考