开启AI短剧新纪元!SkyReels-V1/A1双剑合璧!昆仑万维开源首个面向AI短剧的视频生成模型

论文链接:https://arxiv.org/abs/2502.10841
项目链接:https://skyworkai.github.io/skyreels-a1.github.io/
Demo链接:https://www.skyreels.ai/
开源地址:https://github.com/SkyworkAI/SkyReels-A1
https://github.com/SkyworkAI/SkyReels-V1

亮点直击

  • 提出了SkyReels-A1,一种用于肖像动画的全新框架,采用DiT(扩散Transformer)架构,以提升运动传递精度、身份保留和时间一致性的保真度。该框架结合了基于表情标志点的动态条件模块,以及连接视觉-文本语义空间的跨模态对齐机制。

  • 分阶段的训练方法被设计用于逐步优化运动-表情相关性以及主体特定特征的不变性。

  • 通过一系列全面的实验评估了SkyReels-A1的性能,结果表明其能够生成高效的结果,并展现出对各种组合变化的无缝适应性。最后,为了支持进一步的研究和行业应用,代码和演示材料均已公开提供。

总结速览

解决的问题

  • 身份失真:现有方法在动画生成过程中难以保持人物身份的稳定性,导致身份信息泄露或扭曲。

  • 背景不稳定:动画生成时背景容易出现抖动或不一致的现象。

  • 面部表情不真实:特别是在仅头部动画的场景中,面部表情缺乏真实感。

  • 全身动画的挑战:当动画扩展到全身时,现有方法容易产生视觉伪影或不自然的动作。

  • 身份与运动融合的困难:现有方法难以在保持身份一致性的同时,实现细腻的表情和动作生成。

提出的方案

  • 基于视频扩散Transformer(DiT)的框架:利用DiT的强大生成能力,提升面部运动传递的精度、身份保留和时间一致性。

  • 表情感知条件模块:通过表情引导的标志点输入驱动连续视频生成,增强表情与动作的关联性。

  • 面部图像-文本对齐模块:深度融合面部特征与运动轨迹,强化身份一致性。

  • 多阶段训练策略:逐步优化表情与运动的相关性,同时确保身份稳定再现。

  • 统一潜在空间建模:在单一潜在空间中联合建模面部细节和全身动态,解决身份漂移和背景不一致问题。

应用的技术

  • 视频扩散Transformer(DiT):利用其强大的生成能力和时间一致性建模能力。

  • 表情感知标志点序列:作为条件输入,驱动细腻的表情生成。

  • 图像-文本对齐技术:增强面部特征与运动轨迹的融合。

  • 多阶段训练范式:分阶段优化姿势准确性、身份稳定性和运动真实性。

  • 模块化设计:便于集成到实时视频编辑系统和个性化虚拟化身平台。

达到的效果

  • 高质量动画生成:生成高保真、富有表现力的肖像动画,适应多样化的身体比例。

  • 身份一致性:在动画过程中保持人物身份的完整性,避免身份失真。

  • 自然的表情与动作:实现细腻的面部表情和自然的全身动作,提升动画的真实感。

  • 广泛的适用性:适用于虚拟化身、远程通信、数字媒体生成等多种应用场景。

  • 优于现有方法:在定量评估和用户研究中表现优异,特别是在处理复杂解剖结构和微表情方面。

  • 模块化与易集成性:便于集成到下游应用中,如实时视频编辑和个性化虚拟化身平台。

方法

SkyReels-A1框架概述

给定输入视频序列和参考肖像图像,从视频中提取表情感知的面部标志点,这些标志点作为运动描述符,用于将表情传递到肖像上。本文的方法基于DiT(扩散Transformer)的条件视频生成框架,将这些表情感知的面部标志点直接集成到输入潜在空间中。与先前的研究一致,采用了在VAE(变分自编码器)架构中构建的姿态引导机制。该组件将表情感知的面部标志点编码为DiT框架的条件输入,从而使模型能够捕捉关键的低维视觉属性,同时保持面部特征的语义完整性。

表情感知关键点

本文为肖像动画引入了一种类似的基于面部关键点的运动条件输入。精准的面部表情运动表征是实现富有表现力的肖像动画的基础,它能够捕捉人类情感和微表情的细微变化,从而显著提升动画头像的真实感和情感共鸣。目前的扩散模型方法主要在训练过程中使用 2D 面部关键点 作为运动表征,但这类方法存在关键限制:

  1. 2D 关键点的推理依赖性 —— 由于推理阶段仍然依赖 2D 关键点,目标表情与参考肖像之间容易出现错位,导致 表情不匹配身份泄漏伪影

  2. 3D 关键点提取的精度不足 —— 现有方法使用 MediaPipe 等第三方工具从视频序列中提取 3D 关键点,但这些方法往往缺乏捕捉细粒度表情细节和复杂面部动态的精度,尤其是在 非正面视角极端表情 情况下。

为了解决上述问题,本文提出了 3D Facial Expressions,一个集成神经渲染模块的框架,以提升重建面部表情的精度与真实感。不同于依赖可微分渲染(differentiable rendering)的传统方法,我们用 神经渲染机制 取代这一组件,使得模型能够更高效地学习,并具备更强的泛化能力,适应多样的面部表情。该架构能够提取 高精度 3D 关键点,以更高的保真度捕捉复杂的运动细节和面部动态。借助这一优化的运动表征,本文的方法显著增强了肖像动画的真实感,同时确保 更精准的表情匹配、身份一致性和多场景适应性

3D 关键点引导模块

为了确保驱动信号输入视频潜在表示(latent representations) 之间的时空一致性,我们提出 时空对齐关键点引导模块(Spatio-temporal Alignment Landmark Guide Module)。该模块的核心组件是 3D 因果编码器(3D causal encoder),通过精细调优,该编码器能够更有效地捕捉驱动信号的运动表征,确保运动信号与输入视频潜在特征之间的精准对齐。

该模块通过 3D 因果编码器 直接投影 驱动信号,使其与视频潜在特征共享同一个潜在空间。这种共享表征 弥合了运动信号与生成视频帧之间的鸿沟,确保时空动态的同步性。此外,进一步的 精细调优 强化了编码器对复杂运动模式的捕捉能力,从而提升运动迁移的真实性和细节还原度。

这一方法不仅确保 精准的运动对齐,还能在生成的视频中保持 身份一致性和运动稳定性,从而实现高质量、时序稳定的肖像动画。

面部图像-文本对齐

在现有的肖像动画方法中,在改变面部表情的同时保持身份一致性仍然是一个亟待深入研究的挑战。早期的方法主要通过 跨注意力机制(cross-attention)身份保持适配器(identity-preserving adapters) 来增强身份一致性。然而,我们发现此类方法不仅 训练难度较大,还 引入了大量额外参数,增加了计算开销。

受CogVideoX架构的启发,我们在表情生成过程中,通过在输入阶段拼接面部图像和视频的嵌入(embeddings)来提升身份一致性。这种方法不仅能够增强身份保持能力,还可以无缝继承预训练基础模型的能力。

为此,本文引入了一个 轻量级的可学习映射模块,该模块采用 多层感知机(MLP)P,用于将面部特征映射到文本特征空间。

其中, 是由视觉编码器Evision提取的 身份嵌入(identity embedding),该编码器基于预训练的图像-文本模型。由于 能够捕捉精细的面部特征,而视觉特征(visual)则涵盖更广泛的面部信息,并且对光照、遮挡等外部因素的敏感度较低,因此融合这两类信息能够提升生成结果中面部特征的准确性。

实验

本节首先概述了实验的实施细节,包括数据来源、数据过滤过程、基线模型以及实验中使用的基准。然后展示了与选定基线模型的对比实验结果,以验证所提出模块的有效性。

实验设置

实施细节:基于先进的视频扩散Transformer模型CogVideoX-5B进行训练,使用收集的数据集与公开数据集的组合。在多阶段训练过程中,第一阶段训练2K步,第二阶段训练2K步,最后阶段训练1K步,批量大小为512。前两个阶段的学习率设置为1e-5,最后阶段降至1e-6,使用AdamW优化器。实验在32台NVIDIA A800 GPU上进行。在推理过程中,使用DDIM采样器,并将无分类器引导的尺度设置为3。实验中使用的静态参考图像由Flux生成,并来源于Pexels。

数据集来源:训练视频片段来源于NeRSemble数据集、HDTF、DFEW、RAVDESS、Panda70M以及从互联网上收集的约1W个角色视频片段。

数据过滤:在数据预处理阶段,实施了一系列细致的过滤步骤,以确保视频-文本数据集的质量和适用性。工作流程包括三个阶段:单角色提取、运动过滤和后处理。首先,选择单角色视频,并使用现有工具清理视频内容,解决相机捕捉伪影和背景噪声等问题。然后使用MediaPipe检测的面部关键点提取头部姿态信息和嘴部标志点。通过计算头部角度和嘴部变化,筛选出具有显著面部表情和头部运动的样本。最后,基于前几步检测到的面部位置,我们将视频裁剪或填充至固定分辨率480×720,以满足模型的输入要求。从每个视频中随机选择一帧,并使用clip编码器将面部编码为嵌入向量,为模型提供必要的面部特征信息。

基线模型:为了全面评估SkyReels-A1在不同场景下的性能,将其与多个肖像动画基线模型进行比较,包括开源解决方案LivePortrait、Follow-Your-Emoji以及闭源商业产品Runway Act One。

评估指标

为了衡量肖像动画结果的泛化质量和运动准确性,本文采用了三个指标分别评估身份相似性、图像质量以及表情和头部姿态的准确性。具体来说:

  1. 身份保留:使用FaceSim-Arc和FaceSim-Cur分数,计算源图像与生成图像之间的余弦相似度。

  2. 图像质量:使用预训练网络结合FID(Fréchet Inception Distance)进行评估。

  3. 运动准确性:通过比较驱动帧和生成帧之间提取的面部混合形状(blendshapes)和头部姿态的L1差异,使用FaceAnalysis3和OpenPose4工具进行评估。

与基线模型的比较

定量结果:本文进行了跨身份运动传递的实验,其中参考肖像从100张野外图像中随机选择,驱动序列则来自我们的测试数据集。下表1展示了定量评估结果。本文提出的模型在生成保真度和运动精度方面均优于基于扩散和非扩散的方法。通过引入视频扩散Transformer作为先验,SkyReels-A1在图像质量上取得了显著提升,超越了现有方法(闭源商业模型Act-One除外)。

定性结果:下图4展示了肖像动画的定性比较,补充了自动化评估指标的结果。前两个示例突出了模型在驱动或源肖像存在显著姿态变化时仍能准确传递运动的鲁棒性。第三和第四个案例中,模型有效地捕捉并传递了细腻的面部表情(如嘴唇运动和眼神),同时保持了原始肖像的视觉一致性。此外,最后一个案例表明,通过集成拼接技术,模型在动画全身图像时表现出更高的稳定性,即使参考肖像的面部区域较小。

用户研究

为了进一步验证SkyReels-A1模型在运动准确性和表现力方面的优越性,进行了用户研究,招募了来自不同地理区域的20名参与者对合成视频进行评估。每位参与者回答了一系列比较问题,评估两个关键方面:运动准确性和人类相似性。评估过程中明确告知模型名称,参与者被要求选择最能准确复制驱动序列表情和运动的视频。在收集的100份反馈中,63%的参与者更倾向于选择SkyReels-A1,证实了其在保留面部表情和姿态保真度方面的增强能力优于现有基线模型。

使用

clone代码&准备环境:

git clone https://github.com/SkyworkAI/SkyReels-A1.git
cd SkyReels-A1# create env using conda
conda create -n skyreels-a1 python=3.10
conda activate skyreels-a1

下载依赖:

pip install -r requirements.txt

下载预训练weights

# !pip install -U "huggingface_hub[cli]"
huggingface-cli download SkyReels-A1 --local-dir local_path --exclude "*.git*" "README.md" "docs"

推理

执行脚本

python inference.py

如果脚本运行成功,可以得到一个输出 mp4 文件。该文件包含以下结果:视频、输入图像或视频以及生成的结果。

结论

本研究提出了 SkyReels-A1,一种基于视频扩散Transformer的创新肖像动画框架。通过融合运动与身份表征,本文的方法在细微和夸张的面部表情生成方面均实现了高保真度。通过广泛的自动评估和用户评测,我们验证了模型在不同定制场景下的鲁棒性和适应性。我们期待这些具有前景的结果能够推动肖像动画应用的发展。

参考文献

[1] SkyReels-A1: Expressive Portrait Animation in Video Diffusion Transformers

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数学建模:MATLAB极限学习机解决回归问题

一、简述 极限学习机是一种用于训练单隐层前馈神经网络的算法,由输入层、隐藏层、输出层组成。 基本原理: 输入层接受传入的样本数据。 在训练过程中随机生成从输入层到隐藏层的所有连接权重以及每个隐藏层神经元的偏置值,这些参数在整个…

Android15音频进阶之定位混音线程丢帧问题(一百零八)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…

_ 为什么在python中可以当变量名

在 Python 中,_(下划线)是一个有效的变量名,这主要源于 Python 的命名规则和一些特殊的使用场景。以下是为什么 _ 可以作为变量名的原因和常见用途: --- ### 1. **Python 的命名规则** Python 允许使用字母&#xff…

Electron+Vite+React+TypeScript开发问题手册

ElectronViteReactTypeScript跨平台开发全问题手册 一、开发环境配置类问题 1.1 依赖安装卡顿(国内网络环境) 问题现象:执行npm install时卡在node-gyp编译或Electron二进制包下载阶段 解决方案: # 配置国内镜像源 npm config …

【计算机网络入门】初学计算机网络(七)

目录 1. 滑动窗口机制 2. 停止等待协议(S-W) 2.1 滑动窗口机制 2.2 确认机制 2.3 重传机制 2.4 为什么要给帧编号 3. 后退N帧协议(GBN) 3.1 滑动窗口机制 3.2 确认机制 3.3 重传机制 4. 选择重传协议(SR&a…

《Python实战进阶》No 8:部署 Flask/Django 应用到云平台(以Aliyun为例)

第8集:部署 Flask/Django 应用到云平台(以Aliyun为例) 2025年3月1日更新 增加了 Ubuntu服务器安装Python详细教程链接。 引言 在现代 Web 开发中,开发一个功能强大的应用只是第一步。为了让用户能够访问你的应用,你需…

GitLab Pages 托管静态网站

文章目录 新建项目配置博客添加 .gitlab-ci.yml其他配置 曾经用 Github Pages 来托管博客内容,但是有一些不足: 在不科学上网的情况下,是没法访问的,或者访问速度非常慢代码仓库必须是公开的,如果设置为私有&#xff0…

TVbox蜂蜜影视:智能电视观影新选择,简洁界面与强大功能兼具

蜂蜜影视是一款基于猫影视开源项目 CatVodTVJarLoader 开发的智能电视软件,专为追求简洁与高效观影体验的用户设计。该软件从零开始编写,界面清爽,操作流畅,特别适合在智能电视上使用。其最大的亮点在于能够自动跳过失效的播放地址…

形象生动讲解Linux 虚拟化 I/O

用现实生活的比喻和简单例子来解释 Linux 虚拟化 I/O,就像给朋友讲故事一样。 虚拟化 I/O 要解决什么问题? 想象你有一栋大房子(物理服务器),想把它分割成多个小公寓(虚拟机)出租。每个租客&…

Java内存管理与性能优化实践

Java内存管理与性能优化实践 Java作为一种广泛使用的编程语言,其内存管理和性能优化是开发者在日常工作中需要深入了解的重要内容。Java的内存管理机制借助于垃圾回收(GC)来自动处理内存的分配和释放,但要实现高效的内存管理和优…

代码随想录算法训练营第三十天 | 卡码网46.携带研究材料(二维解法)、卡码网46.携带研究材料(滚动数组)、LeetCode416.分割等和子集

代码随想录算法训练营第三十天 | 卡码网46.携带研究材料(二维解法)、卡码网46.携带研究材料(滚动数组)、LeetCode416.分割等和子集 01-1 卡码网46.携带研究材料(二维) 相关资源 题目链接:46. 携…

nvidia驱动更新,centos下安装openwebui+ollama(非docker)

查看centos内核版本 uname -a cat /etc/redhat-release下载对应的程序(这个是linux64位版本通用的) https://cn.download.nvidia.cn/tesla/550.144.03/NVIDIA-Linux-x86_64-550.144.03.run cudnn想办法自己下一下,我这里是12.x和11.x通用的…

【AIGC系列】4:Stable Diffusion应用实践和代码分析

AIGC系列博文: 【AIGC系列】1:自编码器(AutoEncoder, AE) 【AIGC系列】2:DALLE 2模型介绍(内含扩散模型介绍) 【AIGC系列】3:Stable Diffusion模型原理介绍 【AIGC系列】4&#xff1…

51单片机-串口通信编程

串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制盒中断控制。具体步骤如下: 确定T1的工作方式(编程TMOD寄存器)计算T1的初值,装载TH1\TL1启动T1(编程TCON中的TR1位…

Windows 10 远程桌面连接使用指南

目录 一、引言 二、准备工作 1、确认系统版本 2、服务器端设置 三、客户端连接 1、打开远程桌面连接程序 2、输入连接信息 3、输入登录凭证 4、开始使用远程桌面 四、移动端连接(以 iOS 为例) 1、下载安装应用 2、添加远程计算机 3、进行连接…

spring boot打包插件的问题

在spring boot项目中声明了 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build> 执行mvn clean package&…

R语言+AI提示词:贝叶斯广义线性混合效应模型GLMM生物学Meta分析

全文链接&#xff1a;https://tecdat.cn/?p40797 本文旨在帮助0基础或只有简单编程基础的研究学者&#xff0c;通过 AI 的提示词工程&#xff0c;使用 R 语言完成元分析&#xff0c;包括数据处理、模型构建、评估以及结果解读等步骤&#xff08;点击文末“阅读原文”获取完整代…

iOS UICollectionViewCell 点击事件自动化埋点

iOS 中经常要进行埋点&#xff0c;我们这里支持 UICollectionViewCell. 进行自动化埋点&#xff0c;思路&#xff1a; 通过hook UICollectionViewCell 的setSelected:方法&#xff0c; 则新的方法中执行埋点逻辑&#xff0c;并调用原来的方法 直接上代码 implementation UICol…

课程《MIT Introduction to Deep Learning》

在Youtubu上&#xff0c;MIT Introduction to Deep Learning (2024) | 6.S191 共8节课&#xff1a; (1) MIT Introduction to Deep Learning (2024) | 6.S191 (2) MIT 6.S191: Recurrent Neural Networks, Transformers, and Attention (3) MIT 6.S191: Convolutional Neural N…

Docker 学习(一)

一、Docker 核心概念 Docker 是一个开源的容器化平台&#xff0c;允许开发者将应用及其所有依赖&#xff08;代码、运行时、系统工具、库等&#xff09;打包成一个轻量级、可移植的“容器”&#xff0c;实现 “一次构建&#xff0c;随处运行”。 1、容器&#xff08;Container…