在人工智能视频生成领域,扩散模型以其卓越的性能备受瞩目。然而,其固有的迭代去噪特性导致生成过程耗时且计算成本高昂,成为制约其广泛应用的关键瓶颈。近日,来自B北京航空大学、香港大学和上海人工智能实验室的研究团队联合发布了一项名为 AccVideo 的创新技术。该方法通过一种新颖高效的蒸馏方法,并结合合成数据集,成功将视频扩散模型的生成速度提升了惊人的8.5倍。
现有的视频扩散模型在生成高质量视频方面表现出色,但其迭代式的去噪过程需要大量的推理步骤。这意味着用户需要等待较长的时间才能获得最终的视频作品,同时也对计算资源提出了极高的要求,这无疑限制了其在实际应用中的普及。针对这一难题,研究人员一直在探索加速扩散模型的方法,而AccVideo的出现,无疑为解决这一挑战带来了全新的思路。
AccVideo的核心突破:合成数据与高效指导
AccVideo的核心在于其创新性的蒸馏方法,该方法巧妙地利用合成数据集来加速视频扩散模型。研究团队首先利用预训练的视频扩散模型生成多个有效的去噪轨迹,构建出高质量的合成数据集。与以往的蒸馏方法不同,AccVideo的方法避免了使用大量冗余数据点,从而提高了蒸馏效率。
在此基础上,AccVideo设计了一种基于轨迹的少步指导策略。该策略充分利用合成数据集中的关键数据点,使“学生”模型能够在更少的步骤内学习到“教师”模型(即预训练的视频扩散模型)的去噪过程,从而实现快速视频生成。
质量与效率并存:对抗训练提升视频品质
为了充分挖掘合成数据集在每个扩散时间步所捕获的数据分布信息,AccVideo还引入了对抗性训练策略。通过这种方式,AccVideo能够有效地对齐学生模型的输出分布与合成数据集的分布,从而显著提升生成视频的质量。
实验结果表明,AccVideo在保持与教师模型相当性能的同时,实现了高达8.5倍的生成速度提升。更令人 впечатляет的是,AccVideo还能够生成5秒、分辨率高达720x1280、帧率为24fps的高质量视频。与以往的加速方法相比,AccVideo在视频质量和分辨率方面均展现出更强的优势。
广泛的应用前景:高质量长视频生成不再是难题
AccVideo的突破性进展预示着高质量视频生成技术将迎来新的发展机遇。其高效的生成能力,结合出色的视频质量和分辨率,使其在文本到视频生成等领域展现出巨大的应用潜力。例如,用户可以通过简单的文本描述,快速生成长达5秒、画面细腻、内容丰富的视频内容,极大地拓展了视频创作的可能性。
从研究团队展示的定性结果来看,无论是描绘繁华东京街头的时尚女性,还是栩栩如生的动物场景,亦或是充满想象力的科幻画面,AccVideo都能够高质量地呈现。这充分证明了其在复杂场景和多样化主题上的强大生成能力。
AccVideo的发布,无疑是视频生成领域的一项重要里程碑。其8.5倍的加速效果和高质量的视频输出,有效解决了现有扩散模型速度慢、成本高的难题,为未来更广泛、更便捷的视频内容创作和应用奠定了坚实的基础。
这里我直接对比了 AccVIdeo 和 HunyuanVideo 的权重目录架构,采用 DiffSynth-Studio
可行
import torch
torch.cuda.set_per_process_memory_fraction(1.0, 0)
from diffsynth import ModelManager, HunyuanVideoPipeline, download_models, save_video, FlowMatchScheduler, download_customized_models
# download_models(["HunyuanVideo"])
model_manager = ModelManager()
# The DiT model is loaded in bfloat16.
model_manager.load_models(
[
"/models/aejion/AccVideo/accvideo-t2v-5-steps/diffusion_pytorch_model.pt"
],
torch_dtype=torch.bfloat16, # you can use torch_dtype=torch.float8_e4m3fn to enable quantization.
device="cpu"
)
# The other modules are loaded in float16.
model_manager.load_models(
[
"/models/aejion/AccVideo/text_encoder_2/model.safetensors",
"/models/aejion/AccVideo/text_encoder",
"/models/aejion/AccVideo/hunyuan-video-t2v-720p/vae/pytorch_model.pt",
],
torch_dtype=torch.float16,
device="cpu"
)
# We support LoRA inference. You can use the following code to load your LoRA model.
# model_manager.load_lora("models/lora/xxx.safetensors", lora_alpha=1.0)
# The computation device is "cuda".
pipe = HunyuanVideoPipeline.from_model_manager(
model_manager,
torch_dtype=torch.bfloat16,
device="cuda"
)
# Enjoy!
prompt = "CG, masterpiece, best quality, solo, long hair, wavy hair, silver hair, blue eyes, blue dress, medium breasts, dress, underwater, air bubble, floating hair, refraction, portrait. The girl's flowing silver hair shimmers with every color of the rainbow and cascades down, merging with the floating flora around her."
video = pipe(prompt, seed=0)
save_video(video, "AccVideo.mp4", fps=30, quality=6)