论文研读:AnimateDiff—通过微调SD,用图片生成动画

1.概述

AnimateDiff 设计了3个模块来微调通用的文生图Stable Diffusion预训练模型, 以较低的消耗实现图片到动画生成。

  • 论文名:AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning

  • 三大模块:

    1. 视频域适应模块(Domain-Adapter):即让SD时应生成视频相关的内容

    2. 动作学习模块(Motion-Module): 让SD从文生图的特征中,再学习序列特征

    3. 动作微调模块(Motion-LoRA): 让SD学习特定的视频动作(如zoom-in, zoom-out)

在这里插入图片描述

2.具体实现

2.1 Domain-Adapter

这里是对u-net的LoRA微调。

  • 模块结构:LoRA低秩矩阵,作为可学习参数加在u-net的self-attention 与 cross-attention中

注意:SD的u-net中,cross-attention用于文-图跨模态特征融合(每个block都有)。self-attention用于捕获图像的全局特征(无需每个block都用,可以间隔添加)

  • 微调数据:同一目标的随机视频帧(Frame)

原文摘录:

We implement the domain
adapter layers with LoRA (Hu et al., 2021) and insert them into the self-/cross-attention layers in
the base T2I, as shown in Fig. 3.We then optimize only the parameters of the domain adapter on
static frames randomly sampled from video datasets with the same objective in Eq. (2).

2.2 Motion Module

  • 模块结构:

    sinusoidal position embedding + self-attention blocks, 添加在U-net的每个blocks中

  • 维度处理:

    图像的维度是: [batch_size, channel, height, width],

    而视频会多一个<时间维度>即视频帧数: [batch_size, frames, channel, height, width]

    • sd:由于sd本身是处理图片,没有<时间维度>,即frames,这里将frams这个维度整合到batch_size这个维度,以便sd按照图像的方式处理frames

    • motion module: 这个新增部分只需要学习时间维度的特征。因此,它将空间维度 h,w合并到batch_size,即以特征shape为[batch_size, frames, channel]作为该模块的输入,输出时再将其h,w从batch_size还原。

  • 初始化&残差

    • 为了提升训练效果,这里用了control-net的0值初始化(在transformer的最后输出层—projection layers)

    • motion module用了残差连接

原文摘录:

the temporal Transformer
consists of several self-attention blocks along the temporal axis, with sinusoidal position encoding
to encode the location of each frame in the animation. As mentioned above, the input of the motion
module is the reshaped feature map whose spatial dimensions are merged into the batch axis.Note that sinusoidal position encoding added before the self-attention
is essential; otherwise, the module is not aware of the frame order in the animation. To avoid any
harmful effects that the additional module might introduce, we zero initialize (Zhang et al., 2023)
the output projection layers of the temporal Transformer and add a residual connection so that the
motion module is an identity mapping at the beginning of training.

2.3 MotionLoRA

在Motion Module的self-attention上增加LoRA低秩可学习矩阵,再用特定的帧学习一个动作(如zoom-in,zoom-out)

该步骤需要20-50个动作帧,2000次训练迭代(约1-2小时), 30Mb的低秩。

原文摘录:

we add LoRA layers to the self-attention
layers of the motion module in the inflated model described in Sec. 4.2, then train these LoRA layers
on the reference videos of new motion patterns., to get videos with zooming effects, we augment the videos by gradually reducing
(zoom-in) or enlarging (zoom-out) the cropping area of video frames along the temporal axis. We
demonstrate that our MotionLoRA can achieve promising results even with as few as 20 ∼ 50 ref
erence videos, 2,000 training iterations (around 1 ∼ 2 hours) as well as about 30M storage space,
enabling efficient model tuning and sharing among users.

3.实验与推理

3.1 概述

  • 训练的损失函数都是根据vedio的样本进行mse,

  • 这里核心是第二部分,即运动模块,基于sd1.5和WebVid-dataset,这个开销还是非常大的。

  • 消费卡只能玩模块3,即运动模块的lora微调。

3.2 消融

  • 运动模块

这里比较了运动模块的两种可行layer,temporal Transformer 和 1D Temporal Convolution:

实验表明Transformer能构建时序关系,即捕获全局时间依赖关系,更适合视频生成任务。而
1D Temporal Convolution生成的frames几乎一样,即没有视频效果。
  • 运动模块LoRA

这个部分为个人用户提供价值,在有限的视频(50个)和低训练成本下,实现特定动作生成。

3.3 实验总结

  • 可控性:可结合 ControlNet,可以使用条件(如深度图)对生成结果进行精准控制。

  • 独立性:无需依赖复杂的反推过程(如 DDIM inversion),直接从噪声生成,简化了生成流程。

  • 质量和细节:生成结果在动态细节和视觉表现上都非常出色,能够细腻地还原运动特征(例如头发的动态、面部表情的变化等)。

4. 相关工作

  • Tune-a-Video

  • Text2Video-Zero

Ref:

  • https://github.com/guoyww/AnimateDiff.

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

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

相关文章

洛谷 P1014:Cantor 表

【题目来源】https://www.luogu.com.cn/problem/P1014https://www.acwing.com/problem/content/5510/【题目描述】 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。 他是用下面这一张表来证明这一命题的&#xff1a; 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 …

【网络安全零基础入门】PHP环境搭建、安装Apache、安装与配置MySQL(非常详细)零基础入门到精通,收藏这一篇就够(01)_php安装配置教程

这是大白给粉丝朋友准备的网络安全零基础入门第八章PHP入门的知识章节里的环境搭建。 喜欢的朋友们&#xff0c;记得给大白点赞支持和收藏一下&#xff0c;关注我&#xff0c;学习黑客技术。 一、php简介 php定义&#xff1a;一种服务器端的 HTML脚本/编程语言&#xff0c;是…

ssh 完全命令行 登录服务器 , 无需交互的方法

在写脚本的时候,ssh到⼀台客户机执⾏命令的时候,如果客户机设置了密码,这时候,就会提⽰我们需要通过交互式的⽅式输⼊密码。当我们不想执⾏这⼀步操作的时候,我们可以在ssh的同时带上密码,不⽤我们⼿动输⼊。 先安装⼀个软件包 yum install -y sshpass 只需要在ssh命令的…

RBTree(红黑树)

目录 红黑树的概念 红黑树的性质 红黑树节点的定义 红黑树的插入 1. 按照二叉搜索的树规则插入新节点 2. 检测新节点插入后&#xff0c;红黑树的性质是否造到破坏 红黑树的检测 红黑树的删除 红黑树和AVL树的比较 红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&…

JS 三种添加元素的方式、区别( write、createElement、innerHTML )

文章目录 1. 区别结论2. write 不同场合的效果3. createElement 和 innerHTML 耗时对比 1. 区别结论 方式说明document.write不建议使用, 使用时要小心, 不同场合, 效果不同document.createElement添加少量元素时建议使用, 结构清晰易读innerHTML添加大量元素时建议使用 2. wr…

【gulp】gulp 的基本使用

gulp 是一个基于node的自动化打包构建工具&#xff0c;前端开发者可以使用它来处理常见任务&#xff1a; 创建项目 进入项目 npm init -ynpm i gulp -g &#xff08;使用命令 gulp&#xff09;npm i gulp -D # 开发依赖&#xff08;前端工具都是开发依赖 本地安装 代…

300多种复古手工裁剪拼贴艺术时尚字母、数字、符号海报封面Vlog视频MOV+PNG素材

300复古时尚大小写字母、数字、符号拼贴海报封面平面设计Vlog视频标题动画 Overlay - Cut-Out Letters Animations Pack - Animated Letters, Numbers, and Symbols 使用 Cut-Out Letters Animations Pack 提升您的内容&#xff01;包含 300多个高品质动画资源&#xff0c;包括…

SpringCloudAlibaba技术栈-Dubbo

1、什么是Dubbo? 简单来说&#xff0c;dubbo就像是个看不见的手&#xff0c;负责专门从注册中心nacos调用注册到nacos上面的服务的&#xff0c;因为在微服务环境下不同的功能模块可能在不同的服务器上。dubbo调用服务就像是在调用本地的服务一样。 分布式调用与高并发处理 Du…

ES7+ React/Redux/GraphQL/React-Native snippets 使用指南

VS Code React Snippets 使用指南 目录 简介基础方法React 相关React Native 相关Redux 相关PropTypes 相关控制台相关React 组件相关 简介 ES7 React/Redux/GraphQL/React-Native snippets 是一个用于 VS Code 的代码片段插件&#xff0c;它提供了大量用于 React 开发的代…

剪映学习01

1.剪映界面介绍 1.点击左上角的的登录账户可以登录剪映&#xff0c;它可以和抖音账号共用&#xff0c;所以我们剪辑完视频后可以直接从抖音发布。 左侧的导航栏有一些功能&#xff0c;我们点击模板&#xff0c;剪映它会显示当下比较火的模板&#xff0c;如果我们剪视频需要用到…

OpenLinkSaas使用手册-简介

OpenLinkSaas是针对软件研发人员/团队的效能工具。对个人而言是工具加成长导航路线&#xff0c;对团队而言是团队管理和项目管理。 OpenLinkSaas虽然功能众多&#xff0c;但可以按需配置所需功能&#xff0c;也可以制作自己的发行版。 OpenLinkSaas的由来 软件研发是一个比较…

QT调用Sqlite数据库

QT设计UI界面&#xff0c;后台访问数据库&#xff0c;实现数据库数据的增删改查。 零售商店系统 数据库表&#xff1a; 分别是顾客表&#xff0c;订单详情表&#xff0c;订单表&#xff0c;商品表 表内字段详情如下&#xff1a; 在QT的Pro文件中添加sql&#xff0c;然后添加头…

vue3使用vant日历组件(calendar),自定义日历下标的两种方法

在vue3中使用vant日历组件&#xff08;calendar&#xff09;自定义下标的两种方法&#xff0c;推荐使用第二种&#xff1a; 日期下方加小圆点&#xff1a; 一、使用伪元素样式实现(::after伪元素小圆点样式会被覆盖&#xff0c;只能添加一个小圆点) 代码如下&#xff08;示例…

STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器

STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器 1、按键控制 LED 按键:常见的输入设备&#xff0c;按下导通&#xff0c;松手断开 按键抖动:由子按键内部使用的是机械式弹簧片来进行通断的、所以在按下和松手的瞬间会伴随有一连串的抖动 按键控制LED接线图&#xff1a; 要有工程…

2024金融大模型实践方案的概览(附实践资料合集)

金融大模型实践方案的全面总结&#xff1a; 金融大模型应用评测&#xff1a; 在金融评测的五大能力维度中&#xff0c;各模型整体表现基本满足当下场景需求&#xff0c;其中金融安全与价值对齐表现优异&#xff0c;但金融专业认知和多模态处理能力仍存在较大提升空间。 金融大模…

设计模式之享元模式:看19路棋盘如何做到一子千面

~犬&#x1f4f0;余~ “我欲贱而贵&#xff0c;愚而智&#xff0c;贫而富&#xff0c;可乎&#xff1f; 曰&#xff1a;其唯学乎” 一、享元模式概述 \quad 在软件设计中&#xff0c;享元模式(Flyweight Pattern)的核心思想是通过共享来有效地支持大量细粒度对象的重用。这里的…

英语单词拼读小程序开发制作介绍

英语单词拼读小程序开发制作介绍本英语单词拼读小程序系统开发的主要功能有&#xff1a; 1、按年级分类展示每个年级阶段的英语单词信息。 2、点击选择的单词进入单词拼读页面&#xff0c;展示英语单词的拼读音标、中文意思、单词发音、拆分词汇发音、用户通过朗读发音对比。通…

华为管理变革之道:管理制度创新

目录 华为崛起两大因素&#xff1a;管理制度创新和组织文化。 管理是科学&#xff0c;150年来管理史上最伟大的创新是流程 为什么要变革&#xff1f; 向世界标杆学习&#xff0c;是变革第一方法论 体系之一&#xff1a;华为的DSTE战略管理体系&#xff08;解决&#xff1a…

使用 Python 操作 MySQL 数据库的实用工具类:MySQLHandler

操作数据库是非常常见的需求&#xff0c;使用 Python 和 pymysql 库封装一个通用的 MySQL 数据库操作工具类&#xff0c;并通过示例演示如何使用这个工具类高效地管理数据库。 工具类的核心代码解析 MySQLHandler 类简介 MySQLHandler 是一个 Python 类&#xff0c;用于简化…

高精度问题

目录 算法实现基础 高精度加法AB 测试链接 源代码 代码重点 高精度减法A-B 测试链接 源代码 代码重点 高精度乘法A*b和A*B 测试链接 源代码 代码重点 高精度除法A/b和A/B 测试链接 源代码 代码重点 高精度求和差积商余 算法实现基础 本算法调用STL…