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 batch∗height∗width的序列,该映射特征经过几个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,可将大多数个性化文生图模型进行视频生成,基于简单设计的运动建模模块,在大量视频数据学习运动先验,插入个性化文生图模型用于生成自然合理的目标域动图。
相关文章:

AnimateDiff论文解读-基于Stable Diffusion文生图模型生成动画
文章目录 1. 摘要2. 引言3. 算法3.1 Preliminaries3.2. Personalized Animation3.3 Motion Modeling Module 4. 实验5.限制6. 结论 论文: 《AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning》 github: https://g…...

centos7安装tomcat
安装tomcat 必须依赖 JDK 环境,一定要提前装好JDK保证可以使用 一、下载安装包 到官网下载 上传到linux 服务器 二、安装tomcat 创建tomcat 文件夹 mkdir -p /usr/local/tomcat设置文件夹权限 chmod 757 tomcat将安装包上传至 新建文件夹 解压安装包 tar zx…...

【C#教程】零基础从入门到精通
今天给大家分享一套零基础从入门到精通:.NetCore/C#视频教程;这是2022年最新整理的、590G的开发教程资料。课程涵盖了.Net各方面的知识,跟着这个教程学习,就足够了。 课程分类 1、C#从基础到精通教程; 2、Winform从…...

opencv rtsp 硬件解码
讨论使用opencv的reader 硬件解码的方案有太多种,如果使用ffmpeg硬件解码是最方便的,不方便的是把解码过后的GPU 拉到 CPU 上,再使用opencv的Mat 从cpu 上上载到gpu上,是不是多了两个过程,应该是直接从GPU mat 直接去…...

机器学习-Gradient Descent
机器学习(Gradient Descent) videopptblog 梯度下降(Gradient Descent) optimization problem: 损失函数最小化 假设本模型有两个参数𝜃1和𝜃2,随机取得初始值 求解偏微分,梯度下降对参数进行更新 Visualize: 确定梯度方向&…...
MySql003——SQL(结构化查询语言)基础知识
一、数据库的相关概念 DB:数据库(Database) 即存储数据的“仓库”,其本质是一个文件系统。它保存了一系列有组织的数据。DBMS:数据库管理系统(Database Management System) 是一种操纵和管理数…...

springCloud Eureka注册中心配置详解
1、创建一个springBoot项目 2、在springBoot项目中添加SpringCloud依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2021.0.3</version><type>…...

gti 远程操作
目录 一. 分布式版本控制管理系统 1. 理解分布式版本控制管理系统 二. 创建远程仓库 编辑 编辑 三. 克隆远程仓库_HTTP 四. 克隆远程仓库_SSH 配置公钥 添加公钥 五. git 向远程仓库推送 六. 拉取远程仓库 七. 忽略特殊文件 八. 配置别名 一. 分布式版本控制管理…...
Ftrace
一、概述 Ftrace有剖析器和跟踪器。剖析器提供统计摘要,如激素胡和直方图;而跟踪器提供每一个事件的细节。 Ftrace剖析器列表: 剖析器描述function内核函数统计分析kprobe profiler启用的kprobe计数器uprobe profiler启用的uprobe计数器hi…...

Tomcat修改端口号
网上的教程都比较老,今天用tomcat9.0记录一下 conf文件夹下server.xml文件 刚开始改了打红叉的地方,发现没用,改了上面那行...
vue2企业级项目(一)
vue2企业级项目(一) 创建项目,并创建项目编译规范 1、node 版本 由于是vue2项目,所以 node 版本比较低。使用 12.18.3 左右即可 2、安装vue 安装指定版本的vue2 npm i -g vue2.7.10 npm i -g vue/cli4.4.63、编辑器规范 vsc…...
【前端知识】React 基础巩固(三十八)——log、thunk、applyMiddleware中间件的核心代码
React 基础巩固(三十八)——log、thunk、applyMiddleware中间件的核心代码 一、打印日志-中间件核心代码 利用Monkey Patching,修改原有的程序逻辑,在调用dispatch的过程中,通过dispatchAndLog实现日志打印功能 // 打印日志-中间件核心代码…...

hive删除数据进行恢复
在实际开发或生产中,hive表如果被误删,如被truncate或是分区表的分区被误删了,只要在回收站的清空周期内,是可以恢复数据的,步骤如下: (1) 先找到被删除数据的存放目录,…...

二、前端高德地图、渲染标记(Marker)引入自定义icon,手动设置zoom
要实现这个效果,我们先看一下目前的页面展示: 左边有一个图例,我们可以方法缩小地图,右边是动态的marker标记,到时候肯定时候是后端将对应的颜色标识、文字展示、坐标点给咱们返回、我们肯定可以拿到一个list…...
UDF和UDAF、UDTF的区别
UDF UDF(User-defined functions)用户自定义函数,简单说就是输入一行输出一行的自定义算子。 是大多数 SQL 环境的关键特性,用于扩展系统的内置功能。(一对一) UDAF UDAF(User Defined Aggregat…...
小研究 - 浅析 JVM 中 GC 回收算法与垃圾收集器
本文主要介绍了JVM虚拟机中非常重要的两个部分,GC 回收算法和垃圾收集器。从可回收对象的标记开始,详细介绍 了四个主流的GC算法,详细总结了各自的算法思路及优缺点, 提出了何种情况下应该通常选用哪种算法。 目录 1 标记可回收对…...

Flowable-服务-骆驼任务
目录 定义图形标记XML内容Flowable与Camel集成使用示例设计Came路由代码 定义 Camel 任务不是 BPMN 2.0 规范定义的官方任务,在 Flowable 中,Camel 任务是作为一种特殊的服务 任务来实现的。主要做路由工作的。 图形标记 由于 Camel 任务不是 BPMN 2.…...

用html+javascript打造公文一键排版系统9:主送机关排版
一、主送机关的规定 公文一般在标题和正文之间还有主送机关,相关规定为: 主送机关 编排于标题下空一行位置,居左顶格,回行时仍顶格,最后一个机关名称后标全角冒号。如主送机关名称过多导致公文首页不能显示正文时&…...

SpringBoot 集成 EasyExcel 3.x 优雅实现 Excel 导入导出
介绍 EasyExcel 是一个基于 Java 的、快速、简洁、解决大文件内存溢出的 Excel 处理工具。它能让你在不用考虑性能、内存的等因素的情况下,快速完成 Excel 的读、写等功能。 EasyExcel文档地址: https://easyexcel.opensource.alibaba.com/ 快速开始 …...

RT1052 的四定时器
文章目录 1 Quad Timer,简称:QTMR2 单个通道的框图3 QTMR配置3.1 QTMR1 时钟使能。3.2 初始化 QTMR1。3.2.1 QTMR_Init 3.3 设置 QTMR1 通道 0 的定时周期。3.3.1QTMR_SetTimerPeriod 3.4 使能 QTMR1 通道 0 的比较中断。3.4.1 QTMR_EnableInterrupts 3.…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...

在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...