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

Allegro: 开源的高级视频生成模型

在这里插入图片描述
我们很高兴地宣布 Allegro 的开源发布,这是 Rhymes AI 先进的文本到视频模型。Allegro 是一款功能强大的人工智能工具,能将简单的文字提示转化为高质量的视频短片,为人工智能生成视频领域的创作者、开发者和研究人员开辟了新的可能性。我们希望 Allegro 能够激发社区的视觉创造力、想象力和协作能力。

Allegro 一览

Allegro 使用户能够根据简单的文字提示,以每秒 15 帧和 720p 分辨率生成高质量的 6 秒视频。这种质量水平可以高效地创建各种电影主题,从人物的细节特写、动物在各种环境中的动作,到您根据文字描述所能想象的几乎任何场景。该型号的多功能性为用户在 6 秒格式的限制下探索各种创意提供了灵活性。

主要功能:

  • 开放源代码:向社区提供完整的模型权重和代码,Apache 2.0!
  • 多功能内容创建:能够生成从人类和动物特写到各种动态场景的各种内容。
  • 高质量输出:以 15 FPS(720x1280 分辨率)的速度生成 6 秒钟的详细视频,可通过 EMA-VFI 插值到 30 FPS。
  • 小巧高效:具有 1.75 亿参数的 VideoVAE 和 2.8B 参数的 VideoDiT 模型。支持多种精度(FP32、BF16、FP16),在 BF16 模式下使用 9.3 GB GPU 内存,CPU 卸载。上下文长度为 79.2k,相当于 88 个帧。

Allegro 背后的技术

该模型的功能建立在处理视频数据、压缩原始视频和生成视频帧的核心技术基础上,可将文本提示转换为视频短片。

大规模视频数据处理

为了创建一个能够生成多样化和逼真视频的模型,需要一个能够处理海量视频数据的系统。 有鉴于此,我们设计了系统化的数据处理和过滤管道,以便从原始数据中提取训练视频。 这一过程是按顺序进行的,包括以下几个阶段:

在这里插入图片描述
接下来,根据处理过程中获得的指标,我们开发了一个结构化数据系统,可以对数据进行多维度分类和聚类,便于针对不同阶段和目的进行模型训练和微调。 我们在技术报告中分享了我们的详细配方。

将视频压缩为可视标记

视频生成的主要挑战之一是管理所涉及的大量数据。 为了解决这个问题,我们将原始视频压缩成更小的可视标记,同时保留基本细节,从而实现更流畅、更高效的视频生成。 具体来说,我们设计了一种视频变异自动编码器(VideoVAE),可将原始视频编码到时空潜空间中。 视频变异自动编码器建立在预先训练好的图像变异自动编码器的基础上,并扩展了时空建模层,以有效利用空间压缩能力。

在这里插入图片描述
提议的 VideoVAE 压缩视频的时间、高度和宽度比例分别为(4、8、8)。 这种方法减少了视频生成主干网的输入序列长度,从而能以原始帧速率生成长的高分辨率视频。

扩展视频扩散变换器

Allegro 视频生成功能的核心在于其扩展扩散变换器架构,该架构应用扩散模型生成高分辨率视频帧,确保视频运动的质量和流畅性。 Allegro 的骨干网络建立在 DiT(扩散变换器)架构的基础上,具有三维 RoPE 位置嵌入和三维全神贯注功能。 该架构可有效捕捉视频数据中的空间和时间关系。

在这里插入图片描述
与使用 UNet 架构的传统扩散模型相比,Transformer 结构更有利于模型扩展。 通过利用三维注意力,DiT 可以处理视频帧的空间维度及其时间演变,从而对运动和上下文有更细致的理解。 三维注意力机制与 DiT 模型的扩展能力相结合,大大提高了性能,从而可以生成具有丰富细节和流畅运动的高质量视频。

环境

pip install git+https://github.com/huggingface/diffusers.git torch==2.4.1 transformers==4.40.1 accelerate sentencepiece imageio imageio-ffmpeg beautifulsoup

推理

import torch
from diffusers import AutoencoderKLAllegro, AllegroPipeline
from diffusers.utils import export_to_video
vae = AutoencoderKLAllegro.from_pretrained("rhymes-ai/Allegro", subfolder="vae", torch_dtype=torch.float32)
pipe = AllegroPipeline.from_pretrained("rhymes-ai/Allegro", vae=vae, torch_dtype=torch.bfloat16
)
pipe.to("cuda")
pipe.vae.enable_tiling()
prompt = "A seaside harbor with bright sunlight and sparkling seawater, with many boats in the water. From an aerial view, the boats vary in size and color, some moving and some stationary. Fishing boats in the water suggest that this location might be a popular spot for docking fishing boats."positive_prompt = """
(masterpiece), (best quality), (ultra-detailed), (unwatermarked), 
{} 
emotional, harmonious, vignette, 4k epic detailed, shot on kodak, 35mm photo, 
sharp focus, high budget, cinemascope, moody, epic, gorgeous
"""negative_prompt = """
nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, 
low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry.
"""prompt = prompt.format(prompt.lower().strip())video = pipe(prompt, negative_prompt=negative_prompt, guidance_scale=7.5, max_sequence_length=512, num_inference_steps=100, generator = torch.Generator(device="cuda:0").manual_seed(42)).frames[0]
export_to_video(video, "output.mp4", fps=15)

使用 pipe.enable_sequential_cpu_offload(),将模型卸载到 CPU,可减少 GPU 内存成本(约 9.3G,而不启用 CPU 卸载时为 27.5G),但推理时间将大幅增加。

模型

https://huggingface.co/rhymes-ai/Allegro

Github

https://github.com/rhymes-ai/Allegro


http://www.mrgr.cn/news/63495.html

相关文章:

  • 硅谷(12)菜单管理
  • Paperless-ngx:提升无纸化文档管理效率与安全性
  • 如何保护网站安全
  • 易泊小型化车牌识别模组:智能识别新标杆
  • js-列表导出Excel
  • 第十届 RTE 大会开幕,探讨生成式 AI 时代 RTE 的发展与进化
  • Apache Dubbo (RPC框架)
  • 与外部公司做数据交互时,需要注意哪些事情?
  • Nginx安装配置详解
  • 使用wordcloud与jieba库制作词云图
  • MyBatis3(动态SQL 常用的动态SQL 元素 映射器注解 基本注解 结果映射注解)
  • 算法练习——双指针
  • LeetCode23:合并K个升序链表
  • 洛雪音乐 1.6.1| 全网音乐免费听,附加音源
  • 【数据结构】ADT和ADT接口
  • 报错:npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。
  • 关于使用雷池社区版需要知道,什么是 IPv4 地址?
  • AI聊天应用老是被拒?得注意一下Google play对AI应用的政策要求
  • 夸克网盘免费扩容 20T 福利,无限次叠加,亲测有效
  • 如何理解依赖注入
  • SSD20X平台系统烧录问题 No available SNI match with current SPINAND flash 解决办法
  • 这份软考备考攻略与建议,看完至少让你提高20分
  • promise的catch放在then前面的场景
  • 捷为加盟深圳-汕头数字化转型服务联盟,助力企业数字化转型升级成功
  • 数据结构之二叉树的收尾(性质)
  • cv2.imread()不支持中文路径解决方法