综合介绍
Pyramid Flow 是一种高效的自回归视频生成方法,基于 Flow Matching 技术。该方法通过在不同分辨率和噪声水平之间插值,实现了视频内容的生成和解压缩,具有更高的计算效率。Pyramid Flow 能够生成高质量的 10 秒 768p 分辨率、24 FPS 的视频,并支持图像到视频的生成。整个框架经过端到端优化,使用单一的 DiT 模型,在 20.7k A100 GPU 训练小时内完成训练。
功能列表
- 高效视频生成:生成高质量的 10 秒 768p 分辨率、24 FPS 的视频。
- 图像到视频生成:支持从图像生成视频。
- 多分辨率支持:提供 768p 和 384p 两种分辨率的模型检查点。
- CPU 卸载:支持两种类型的 CPU 卸载以减少 GPU 内存需求。
- 多 GPU 支持:提供多 GPU 推理脚本,支持序列并行以节省每个 GPU 的内存。
使用帮助
环境设置
- 使用 conda 创建环境:
cd Pyramid-Flow conda create --name pyramid-flow python=3.8.10 conda activate pyramid-flow
- 安装依赖:
pip install -r requirements.txt
模型下载与加载
- 从 Huggingface 下载模型检查点:
# 下载 768p 和 384p 模型检查点
- 加载模型:
model_dtype, torch_dtype = 'bf16', torch.bfloat16 model = PyramidDiTForVideoGeneration( 'PATH', # 下载的检查点目录 model_dtype, model_variant='diffusion_transformer_768p', # 或 'diffusion_transformer_384p' ) model.vae.enable_tiling() model.enable_sequential_cpu_offload()
文本到视频生成
- 设置生成参数并生成视频:
frames = model.generate( prompt="你的文本提示", num_inference_steps=[20, 20, 20], video_num_inference_steps=[10, 10, 10], height=768, width=1280, temp=16, # temp=16: 5s, temp=31: 10s guidance_scale=9.0, # 384p 设为 7 video_guidance_scale=5.0, output_type="pil", save_memory=True, ) export_to_video(frames, "./text_to_video_sample.mp4", fps=24)
图像到视频生成
- 设置生成参数并生成视频:
prompt = "FPV flying over the Great Wall" with torch.no_grad(), torch.cuda.amp.autocast(enabled=True, dtype=torch_dtype): frames = model.generate_i2v( prompt=prompt, input_image=image, num_inference_steps=[10, 10, 10], temp=16, video_guidance_scale=4.0, output_type="pil", save_memory=True, ) export_to_video(frames, "./image_to_video_sample.mp4", fps=24)
多 GPU 推理
- 使用多 GPU 进行推理:
# 在 2 个或 4 个 GPU 上运行推理脚本
牛哥一键部署版
启动文件解压密码放在下载地址里。如果启动后模型下载经常中断,查看官方文档单独下载模型文件,约30G。