首页 > 其他分享 >视频生成-AnimateDiff快读

视频生成-AnimateDiff快读

时间:2024-02-03 10:33:25浏览次数:22  
标签:视频 模型 建模 times 模块 快读 AnimateDiff 个性化

AnimateDiff

要点准备

  视频生成依赖的技术点:Stable Diffusion,Latent Diffusion Model,DreamBooth, LoRA。此处不进行相关知识点介绍,如需请查阅相关资料

个性化动画生成

目标

  生成个性化动画的图像模型,一般要求用对应的视频训练集进行额外的微调。而这将使事情变得困难。本文目标就是构建一个生成个性化的动画模型。更具体来说就是,给定一个已有的个性化T2I模型,比如一个DreamBooth或者LoRA模型参数检查点文件,将其转化为动画生成器。这个转化过程不进行训练或者进行很小的训练,但仍能保留模型原有的域知识和生成质量。比如T2I模型是针对某种类型2D动画风格进行优化训练,那么相应的动画生成器也能够生成具有适当运动的刚才风格的动画片段。

思路

  一种实现路径,扩展T2I模型,通过添加时间感知的结构和从大规模的视频片段中学习合理的运动先验。然而对于特定的个性化场景,收集大量充足的视频是昂贵的,而有限的数据则无法学习到特定域知识。因此,才选择拆分为两部分:通用运动建模 + 个性化T2I生成。 这样就可以避免收集大量个性化的视频数据,而且不用修改个性T2I模型权重。而且通用运动建模完成,可以应用到任何个性化T2I模型。

运动建模模块

模块设计

  原始SD模型仅处理批图片,尺寸为\(b \times c \times h \times w\),现在要处理视频即图片序列即多出一个维度,要处理批图片序列,尺寸为\(b \times c \times f \times h \times w\)。为了SD模型可以兼容这种数据,而且运动模块能够有效地进行视频帧之间的信息交互。运动模块采用普通的Temporal Transformer结构可以实现。输入特征\(z \in \mathbb R^{b \times c \times f \times h \times w}\),通过tensor reshape操作将特征\(z\)的\(h,w\)轴合并到\(b\)轴,得到\(z \in \mathbb R^{(b \times h \times w) \times f \times c}\)。这个类似\(b \times h \times w\)个token序列,每个token序列的长度是\(f\),token的特征维度是\(c\)。这样调整后的特征\(z\)就可以应用attention操作了。

  这种操作可以在相同的空间位置处,沿着时间轴抓住不同视频帧之间的依赖关系。另一方面,为了扩大运动模块的感受野,在扩散模型U-Net模块中的每一个分辨率层级,都加入该运动模块。此外,还为视频帧添加了正余弦位置编码,从而使得动画片段每帧可以感知其在整个片段中的位置。

整体流程图如图Fig.1所示

Fig. 1

损失函数

损失函数设计本质上与LDM是一致的,唯一区别是后者输入单张图片对应隐变量\(z_0\),前者输入是输入图片序列对应的隐变量序列\(z_0^{1:N}\)。详细理解可以参考[2]或者扩散模型 Diffusion Model

注解

注解1

SD模型训练输入的图片批次,其形状为\(b \times c \times h \times w\),进行attention建模是对同一张图片的不同空间位置关系进行的;而当前运动模块输入的批序列图片,其形状是\(b \times c \times f \times h \times w\) 而实际参与Temporal Transformer运算前,进行的reshape操作,变形为\({(b \times h \times w) \times f \times c}\),建模关系变成了相同空间位置不同视频帧之间的关系。这两种attention建模关系是完全不同的。为了融合这两种Transformer,对进入Temporal Transformer模块时进行上述reshape操作,输出时再进行相反的reshape操作,这样就可以解决这个问题了。可以从运动建模模块示意图Fig.2看出其中包含多次reshape操作。

Fig. 2

参考

[1]. AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning.
[2]. Understanding Diffusion Models: A Unified Perspective.

标签:视频,模型,建模,times,模块,快读,AnimateDiff,个性化
From: https://www.cnblogs.com/wolfling/p/17995733

相关文章

  • Qt/C++音视频开发66-音频变速不变调/重采样/提高音量/变速变调/倍速播放/sonic库使用
    一、前言之前在做倍速这个功能的时候,发现快速播放会有滴滴滴的破音出现,正常1倍速没有这个问题,尽管这个破音间隔很短,要放大音量才能听到,但是总归是不完美的,后面发现,通过修改qaudiooutput的采样率,可以规避这个问题,破音不在出现了,但是音调变了,倍速越大变得越快,人声越发不清晰,变得尖......
  • 短视频源码实现流式传输,降低处理大文件时对内存的占用
    短视频源码实现流式传输,降低处理大文件时对内存的占用其实当使用Node.js向短视频源码客户端返回大文件时,我们最好使用流的形式来返回文件流,这样能避免处理大文件时,占用过多的内存。具体实现方式如下所示:constfs=require("fs");constzlib=require("zlib");consthtt......
  • 短视频开发app,利用数据压缩加速大文件传输
    短视频开发app,利用数据压缩加速大文件传输当使用HTTP进行大文件传输时,我们可以考虑对大文件进行压缩。通常短视频开发app在发送请求时,都会携带accept和accept-*请求头信息,用于告诉服务器当前短视频开发app所支持的文件类型、支持的压缩格式列表和支持的语言。accept......
  • 短视频源码,实现预处理防止客户端频繁请求
    Go语言实现在Go语言中,使用db.Prepare()方法实现预处理:func(db*DB)Prepare(querystring)(*Stmt,error)Prepare执行预处理SQL语句,并返回Stmt结构体指针,进行数据绑定操作。查询操作使用db.Prepare()方法声明预处理SQL,使用stmt.Query()将数据替换占位......
  • ffmpeg剪辑视频简单应用
    背景:博主非视频剪辑从业者,非软开码农, 不想花费大量时间进行ffmpeg的学习搞这个的初衷是,被剪辑video文件太大,导入剪映耗时长,且剪映导出分辨率低,且不想花钱==因此只做最简单的视频剪辑应用分享,达到截取视频,简单音视频抽取及重组的目的即可。 1.安装https://ffmpeg.org/dow......
  • RTSP/Onvif协议视频平台EasyNVR激活码授权异常该如何解决
    由用户反馈,在其现场EasyNVR平台中,使用激活码方式授权时报错“没有权限操作”,如下图:1、由于此报错通常是非管理员(easynvr)操作时才会出现,但当前确实是easynvr登录的;2、于是技术人员比对了easynvr.db和easynvr.ini文件,查出数据库中的username是easynvr;3、但配置文件中的管理员名称为ad......
  • 智能分析网关V4+EasyCVR视频融合平台——高速公路交通情况的实时监控和分析一体化方案
    随着2024年春运帷幕的拉开,不少人的返乡之旅也即将开启,从这几日的新闻来看,高速上一路飘红。伴随恶劣天气,加上激增的车流,极易导致高速瘫痪,无法正常使用。为解决此问题,助力高速高效运营,TSINGSEE青犀智能分析网关V4+EasyCVR视频融合平台——高速公路一体化监控体系给出答案。1、视频......
  • TSINGSEE青犀视频太阳能监控助力野外安防建设
    近年来,太阳能的应用在全球越来越广泛,特别是在野外领域,太阳能电源系统正逐步取代一些传统的电源设备,得到越来越普遍的应用。且安装维护简单,使用寿命长,可以实现无人值守,倍受人们的青睐,是新能源的领头羊。因此,太阳能也为安防监控行业带来了无限可能,太阳能监控应运而生。TSINGSEE青犀......
  • 微信小程序激励视频广告的坑
    微信小程序激励视频广告的坑:1.同一个页面,如果不想在onLoad的时候拉取广告,而是想在点击按钮的时候拉取并展示广告,不能先销毁再创建广告(ad.destory()),销毁了广告实例后在这个页面永远也拉不到广告了。同一页面中如果想多次拉取,只能复用同一个广告实例,不能销毁这个实例。2.......
  • AI赋能—EasyCVR视频融合平台为春节人员流动保驾护航
    春节期间,如景区、商场、车站等公共场所的人流量激增,人员密集度大。在此情况下,监控客流量可以及时发现人群聚集、过度拥挤等安全隐患,防止发生安全事故。通过实时监测和分析客流量数据,可以及时发现安全隐患和拥堵问题,采取相应的措施进行处置,降低安全风险,确保公共场所的安全和秩序。......