AnimateDiff论文解读-基于Stable Diffusion文生图模型生成动画

文章目录

  • 1. 摘要
  • 2. 引言
  • 3. 算法
    • 3.1 Preliminaries
    • 3.2. Personalized Animation
    • 3.3 Motion Modeling Module
  • 4. 实验
  • 5.限制
  • 6. 结论

论文: 《AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning》
github: https://github.com/guoyww/animatediff/

1. 摘要

随着文生图模型Stable Diffusion及个性化finetune方法:DreamBooth、LoRA发展,人们可以用较低成本生成自己所需的高质量图像,这导致对于图像动画的需求越来越多。本文作者提出一种框架,可将现有个性化文生图模型所生成图片运动起来。该方法内核为在模型中插入一个运动建模模块,训练后用于蒸馏合理的运动先验。一旦训练完成,所有基于同一个文生图模型的个性化版本都可变为文本驱动模型。作者在动画、真实图上验证,AnimateDiff生成视频比较平滑,同时保留域特性及输出多样性。

2. 引言

作者提出的AnimateDiff,可对于任意个性化文生图模型生成动图,收集每个个性化域对应视频进行finetune是不方便的,因此作者设计运动建模模块,在大规模视频上进行finetune,学习到运动先验。

3. 算法

AnimateDiff结构如图2所示,
在这里插入图片描述

3.1 Preliminaries

作者使用通用文生图模型SD,对于个性化图像生成领域,如果采集目标域数据进行finetune模型,成本大,DreamBooth通过设置稀有字符串作为目标域标志,同时增加原始模型生成图像进行训练,减少信息丢失;LoRA训练模型参数差值∆W,为降低计算量,作者将∆W解耦为两个低秩矩阵,只有transformer block中映射矩阵参与finetune

3.2. Personalized Animation

Personalized Animation定义为:给出个性化文生图模型,比如DreamBooth或LoRA,通过少量训练成本或不训练即可驱动生成器,保留原始域信息及质量。
为达到上述目的,常规方案是扩展模型增加关注时间的结构,通过大量视频数据学习合理运动先验,但是个性化视频收集成本大,有限视频将导致源域信息丢失。
对此,作者选择训练泛化性运动建模模块,推理时将其插入文生图模型,作者实验验证发现,该模块可用于任何基于同一基础模型的文生图模型,因为几乎未改变基础模型特征空间,ControlNet也曾证明过。

3.3 Motion Modeling Module

网络扩展:
原始SD仅能用于处理图像数据,若要处理5D视频张量(batch × \times ×channels × \times ×frames × \times ×height × \times ×width),则需要扩展网络,作者将原模型中每个2D卷积及attention层转换到仅关注空间的伪3D层,将frame维度合并到batch维度。新引入的运动模块可在每个batch中跨帧执行,使得生成视频跨帧平滑,内容一致,细节如图3所示。
在这里插入图片描述
运动建模模块设计:
该模块主要用于高效交换跨帧信息,作者发现普通的时空transformer足够建模运动先验。其由几个self-attention在时空维执行,特行图z的空间维度height、width reshape到batch维度,得到长度frames的 b a t c h ∗ h e i g h t ∗ w i d t h batch*height*width batchheightwidth的序列,该映射特征经过几个self-attention block,如式4,
在这里插入图片描述
使得该模块可以捕获帧序列同一位置之间时空依赖性;为扩大感受野,作者在U型扩散网路每个分辨率层级引入该模块;此外,self-attention中增加正弦位置编码,使得网络关注当前帧时空位置

训练目标函数:
训练过程:采样视频数据,通过预训练编码器,编码到隐空间,经过运动模块扩展的扩散网络,将噪声隐向量及对应文本prompt作为输入,预测增加到隐向量上的噪声,如式5,在这里插入图片描述

4. 实验

如图4,作者展示不同模型效果;
在这里插入图片描述
图5,作者比较AnimateDiff与Text2Video-Zero,帧与帧之间内容一致性,Text2Video-Zero内容缺少细粒度一致性。
在这里插入图片描述
消融实验:
在这里插入图片描述
表2作者比较3种不同扩散机制,可视化结果如图6,Schedule B达到两者均衡。
在这里插入图片描述

5.限制

作者发现个性化文生图模型数据域为非逼真图片,更容易生成失败,如图7,有明显伪影,不能生成合理运动,归因于训练视频与个性化模型之间存在较大分布差异。可通过收集目标域视频finetune解决。
在这里插入图片描述

6. 结论

作者提出AnimateDiff,可将大多数个性化文生图模型进行视频生成,基于简单设计的运动建模模块,在大量视频数据学习运动先验,插入个性化文生图模型用于生成自然合理的目标域动图。

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

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

相关文章

vsto excel 可以异步写入值么

在 VSTO (Visual Studio Tools for Office) 中,Excel 可以使用异步方式写入值。异步编程允许您在后台线程中执行耗时的操作,而不会阻塞主线程,从而提高程序的响应性能。 从 .NET 4.5 开始,可以使用异步和 await 关键字来简化异步…

移动零 LeetCode热题100

题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 思路 遍历数组,用一个指针j记录上一次交换中的下标小的位置的下一个位…

【数据结构】——串,数组,矩阵的相关习题

目录 题型一(二维数组的存储地址)题型二(串的模式匹配)题型三(串的基本操作)题型四(特殊矩阵的压缩存储) 题型一(二维数组的存储地址) 1、二维数组A[m][n]采用…

数据分析 VS 数据可视化:决战时刻

数据分析和数据可视化是数据科学领域中两个重要的组成部分,很多人不明白两者之间的关系,会误认为是一个东西,其实不然。本文就带大家简单了解一下它们的区别与联系吧! 数据分析是指通过收集、处理和解释数据来获取有关特定问题或…

【linux-网络】sslocal命令的安装使用

1.背景 需要ss转发,在linux中转发并登录。 2.操作流程: 1)安装python 一般linux系统都自带python,2.7---如果要更高版本的自行安装 2)使用pip安装ss pip install shadowsocks 3)命令使用 sslocal -c …

无涯教程-Lua - 嵌套if语句函数

在Lua编程中,您可以在另一个if or else if语句中使用一个if or else if语句。 nested if statements - 语法 嵌套if 语句的语法如下- if( boolean_expression 1) then--[ Executes when the boolean expression 1 is true --]if(boolean_expression 2)then--[ Ex…

ConCurrentHashMap常见面试题

1. JDK1.7和JDK1.8中ConCurrentHashMap的实现有什么不同? JDK1.7中的实现可以认为是大数组套小数组,大数组是Segment数组,小数组是HashEntry数组,锁是锁在大数组的元素上(Segment),力度比较大&…

【BASH】回顾与知识点梳理(一)

【BASH】回顾与知识点梳理 一 前言一. 认识与学习 BASH1.1 硬件、核心与 Shell1.2 为何要学文字接口的 shell?1.3 系统的合法 shell 与 /etc/shells 功能1.4 Bash shell 的功能1.5 查询指令是否为 Bash shell 的内建命令: type1.6 指令的下达与快速编辑按…

VS+QT+VTK treeView树型结构模型加载隐藏实例

程序示例精选 VSQTVTK treeView树型结构模型加载隐藏实例 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<VSQTVTK treeView树型结构模型加载隐藏实例>>编写代码&#xff0c;代码…

Chrome 75不支持保存成mhtml的解决方法

在Chrome 75之前&#xff0c;可以设置chrome://flags -> save as mhtml来保存网页为mhtml。 升级新版&#xff0c;发现无法另存为/保存网页为MHTML了。 在网上搜索无果后&#xff0c;只得从chromium项目的commits中查找&#xff0c;原来chrome搞了个"Chrome Flag Owner…

Android 创建 Gradle Task 自动打包并上传至蒲公英

前言 Android 项目日常开发过程中&#xff0c;经常需要打包给到非开发人员验收或调试&#xff0c;例如测试阶段&#xff0c;就要经常基于测试服务器地址&#xff0c;打包安装包&#xff0c;给到组内测试人员进行测试&#xff0c;并且 BUG 修复完成之后也需要再次打包给到测试人…

差分隐私 MP-SPDZ框架安装

ubuntu虚拟机安装MP-SPDZ框架 1.下载安装包到虚拟机内 https://github.com/data61/MP-SPDZ/releases 安装git 报错Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 4402(unattended-upgr) 解决方案 #杀死进程 sudo k…

Android 仿京东头部滚动头像动态变化

UI出了一个新需求&#xff0c;仿京东头部滚动&#xff0c;头像需要动态变化&#xff0c;先来看下京东的是什么效果 我们知道什么效果以后&#xff0c;接下来就想想怎么实现吧&#xff0c;Android常规吸顶折叠布局是由CoordinatorLayoutAppBarLayoutCollapsingToolbarLayout组成…

JAVA 反编译工具

Releases deathmarine/Luyten GitHub 安装exe 打开拖入文件即可

Express接口

1.创建基本的服务器 // 导入express模块 const express require(express); const send require(send);// 创建express的 服务器实例 const app express()// 启动服务器 app.listen(80, () > {console.log(express server running at );})2.创建API路由接口 // 导入expr…

「网络编程」传输层协议_ TCP协议学习_及原理深入理解(二 - 完结)[万字详解]

「前言」文章内容大致是传输层协议&#xff0c;TCP协议讲解的第二篇&#xff0c;续上篇TCP。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 二、TCP协议2.9 TCP连接管理机制2.9.1 三次握手2.9.2 四次挥手2.9.3 演示查看TIME_WAIT和CLOSE_WAIT状态2.9.…

MySQL 远程操作mysql

可以让别人在他们的电脑上操作我电脑上的数据库 create user admin identified with mysql_native_password by admin; //设置账号密码都为admingrant all on *.* to admin; //给admin账号授权 授权完成

使用elementplus实现文本框的粘贴复制

需求&#xff1a; 文本框仅用于显示展示数据并且用户可以进行复制&#xff0c;并不会进行修改和编辑&#xff0c; 注意点&#xff1a; 1.首先且文本为多行。所以不能使用普通的el-input&#xff0c;这种一行超出就会隐藏了&#xff0c;如果多行超出行数也会隐藏&#xff08;…

第16节:R语言医学分析实例:肺切除手术的Apriori关联规则分析

关联规则 肺切除手术的Apriori关联规则分析。 分析的目的是确定患有肺癌并需要接受肺切除术的患者的共病症状。 了解哪些症状是共病的可以帮助改善患者护理和药物处方。 分析类型是关联规则学习,通过探索变量之间的关联或频繁项集,尝试在大型数据集中找到见解和隐藏关系(H…

用blender做一层石墨烯

文章目录 1 创建正六边形2 复制正六边形3 阵列4 球棍模型 1 创建正六边形 ShiftA->网格->圆环->左下角出现添加圆环菜单&#xff0c;将顶点设为6&#xff0c;得到一个正六边形。按下tab键进入编辑模式->快捷键F填充&#xff0c;得到下图 2 复制正六边形 首先将轴…