当前位置: 首页 > article >正文

开源视频生成 Pyramid Flow 本地部署实测

前段时间,给微信 AI 小助理-小爱接入了文生视频的能力:

我把「国产Sora」接入了「小爱」,邀你免费体验

采用的是智谱开源的 CogVideo 模型,最近开源社区新出了一款视频生成模型 - pyramid-flow-sd3,社区反馈效果要优于 CogVideo。

今日分享,手把手带大家在本地部署,实测看看是否如宣传一般惊艳。

1. Pyramid Flow 简介

项目地址:https://github.com/jy0205/Pyramid-Flow

老规矩,先来简单介绍下~

Pyramid Flow 有哪些亮点?

  • 仅需 2B 参数,可生成768p分辨率、24fps的10秒视频;
  • 支持「文本到视频」 和 「图像到视频」 ;
  • 自回归生成,基于先前帧来预测生成后续帧,确保视频内容的连贯性和流畅性;
  • 金字塔式的多尺度架构,在不同分辨率的潜变量之间进行插值,因此生成效率更高:

官方评测结果:除了semantic score,其它指标均优于开源方案 CogVideo:

2. 在线体验

在线体验地址:https://huggingface.co/spaces/Pyramid-Flow/pyramid-flow

Pyramid Flow 已上线 huggingface,无需本地部署,即刻在线体验!

如无法访问,可参看官方的生成样例:https://pyramid-flow.github.io/

接下来,我们把模型在本地跑起来。

3. 本地部署

3.1 环境准备

首先准备 Pyramid Flow 环境:

git clone https://github.com/jy0205/Pyramid-Flow
cd Pyramid-Flow
conda create -n pyramid python==3.8.10
conda activate pyramid
pip install -r requirements.txt

然后,把模型下载到本地,方便调用:

export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download rain1011/pyramid-flow-sd3 --local-dir ckpts/

其中,模型权重包括 768p 和 384p 两种版本。384p版本支持 5 秒长的 24 FPS视频,而 768p 版本则可以生成 10 秒。

3.2 推理测试

首先,加载模型进来:

import os
import torch
from PIL import Image
from pyramid_dit import PyramidDiTForVideoGeneration
from diffusers.utils import export_to_video

os.environ['CUDA_VISIBLE_DEVICES'] = '2'

model = PyramidDiTForVideoGeneration('ckpts/', 'bf16', model_variant='diffusion_transformer_384p')

model.vae.enable_tiling()
# model.vae.to("cuda")
# model.dit.to("cuda")
# model.text_encoder.to("cuda")
# if you're not using sequential offloading bellow uncomment the lines above ^
model.enable_sequential_cpu_offload()

如果把模型都加载进 GPU,至少需要 19G 显存,否则建议采用上述代码!

然后,测试文本生成视频

def t2v():
    prompt = "A movie trailer featuring the adventures of the 30 year old space man wearing a red wool knitted motorcycle helmet, blue sky, salt desert, cinematic style, shot on 35mm film, vivid colors"
    with torch.no_grad(), torch.amp.autocast('cuda', dtype=torch.bfloat16):
        frames = model.generate(
            prompt=prompt,
            num_inference_steps=[20, 20, 20],
            video_num_inference_steps=[10, 10, 10],
            height=384,     
            width=640,
            temp=16,                    # temp=16: 5s, temp=31: 10s
            guidance_scale=9.0,         # The guidance for the first frame, set it to 7 for 384p variant
            video_guidance_scale=5.0,   # The guidance for the other video latent
            output_type="pil",
            save_memory=True,           # If you have enough GPU memory, set it to `False` to improve vae decoding speed
        )
    export_to_video(frames, "./text_to_video_sample.mp4", fps=24)

测试图片生成视频

def i2v():
    image = Image.open('assets/the_great_wall.jpg').convert("RGB").resize((640, 384))
    prompt = "FPV flying over the Great Wall"
    with torch.no_grad(), torch.amp.autocast('cuda', dtype=torch.bfloat16):
        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,           # If you have enough GPU memory, set it to `False` to improve vae decoding speed
        )
    export_to_video(frames, "./image_to_video_sample.mp4", fps=24)

Pyramid Flow 对显存要求较高,否则生成 5 秒视频,至少 13 分钟:

100%|████| 16/16 [13:11<00:00, 49.45s/it]

生成效果咋样?

pyramid_flow_t2v

实测来看,并未和 CogVideo 拉开差距。。。

写在最后

本文带大家本地部署并实测了最新开源的视频生成模型 - Pyramid Flow

AI 应用大体可分为:文本、语音、图片、视频,其中语音已被硅基生物攻破。

而 AI 视频生成,从当前效果来看。。。依然任重道远!

如果对你有帮助,欢迎点赞收藏备用。


为方便大家交流,新建了一个 AI 交流群,欢迎感兴趣的小伙伴加入。

最近打造的微信机器人小爱(AI)也在群里,公众号后台「联系我」,拉你进群。


http://www.kler.cn/a/514235.html

相关文章:

  • 【Red Hat8】:搭建FTP服务器
  • 【分布式架构设计理论1】架构设计的演进过程
  • 使用tritonserver完成clip-vit-large-patch14图像特征提取模型的工程化。
  • 1688 满足跨境业务需求而提供的一组 API 接口
  • 《从入门到精通:蓝桥杯编程大赛知识点全攻略》(五)-数的三次方根、机器人跳跃问题、四平方和
  • MFC 使用 32位带Alpha通道的位图
  • AI 新动态:技术突破与应用拓展
  • Python爬虫与1688商品详情API接口:开启数据获取新境界
  • 【排查案例】无认证集群空白分区创建元凶排查记录
  • linux平台RTMP|RTSP播放器如何回调SEI数据?
  • HTML根元素<html>的语言属性lang:<html lang=“en“>
  • Webrtc (1) - Windows 编译
  • 实操演练第003讲-数据通途:客户端连接SQL Server的完美攻略
  • vue+高德API搭建前段经济页面
  • 1170 Safari Park (25)
  • Unity预制体未即时刷新
  • 【SpringCloud】黑马微服务学习笔记
  • 备战春招—数字IC、FPGA笔试题(2)
  • Docker Load后存储的镜像及更改镜像存储目录的方法
  • Node.js 能做什么
  • 我的创作纪念日,纪念我的第512天
  • 【机器学习】量子机器学习:当量子计算遇上人工智能,颠覆即将来临?
  • 鸿蒙开发(32)arkTS、通过关系型数据库实现数据持久化封装
  • 鸿蒙系统的多端部署
  • 【漫话机器学习系列】052.解释平方和(Explained Sum of Squares, ESS)
  • Leetcode2218:从栈中取出 K 个硬币的最大面值和