生成模型常见的条件融合方式

生成模型常见的条件融合方式

目前生成模型主要有4中常见的条件融合方式以实现可控生成:条件归一化层,Decoupled Cross-Attention,self-attention层进行融合,特征值逐元素求和。本文首先介绍下各种方法现,然后进行总结,最后提出一下展望。

  1. 条件归一化层
    过去和现在的一些工作,会通过条件归一化层将一些条件(比如类别和文本)融合到生成模型以实现条件可控生成。假设生成模型某层的特征是 x ∈ R b × h w × c x \in R^{b \times hw \times c} xRb×hw×c, P P P是输入条件, f ( P ) f(P) f(P)是条件特征提取网络,常见的范式如下:
    f ( P ) = γ , β y = γ x − μ σ + ϵ + β f(P) = \gamma ,\beta \\ y = \gamma \frac{x - \mu}{\sigma + \epsilon} + \beta f(P)=γ,βy=γσ+ϵxμ+β, 其中 μ , σ \mu, \sigma μ,σ分别是 x x x的均值和方差, y y y将要作为生成模型下一层的输入, ϵ \epsilon ϵ是较小常量防止数值问题(为了方便,后文省略)。

    (1) Adaptive Instance Normalization (AdaIN)
    f ( P ) = γ , β ( γ ∈ R b × 1 × c , β ∈ R b × 1 × c ) y = γ x − μ σ + β ( μ ∈ R b × 1 × c , σ ∈ R b × 1 × c ) f(P) = \gamma ,\beta \ (\gamma \in R^{b \times 1 \times c}, \beta \in R^{b \times 1 \times c}) \\ y = \gamma \frac{x - \mu}{\sigma} + \beta \ (\mu \in R^{b \times 1 \times c}, \sigma \in R^{b \times 1 \times c}) f(P)=γ,β (γRb×1×c,βRb×1×c)y=γσxμ+β (μRb×1×c,σRb×1×c)
    (2) 为解决条件归一化层(比如AdaIN和条件BatchNorm)缺失空间信息的问题, SPatially-Adaptive DEnormalization (SPADE, 2019)提出具有空间维度的 μ , σ \mu, \sigma μ,σ
    f ( P ) = γ , β ( α ∈ R 1 × h w × c , β ∈ R 1 × h w × c ) y = γ x − μ σ + β ( μ ∈ R 1 × 1 × c , γ ∈ R 1 × 1 × c ) f(P) = \gamma ,\beta \ (\alpha \in R^{1 \times hw \times c}, \beta \in R^{1 \times hw \times c}) \\ y = \gamma \frac{x - \mu}{\sigma} + \beta \ (\mu \in R^{1 \times 1 \times c}, \gamma \in R^{1 \times 1 \times c}) f(P)=γ,β (αR1×hw×c,βR1×hw×c)y=γσxμ+β (μR1×1×c,γR1×1×c)
    在这里插入图片描述
    (3) DiT为了实现恒等函数(the identity function)以加速大规模训练,提出adaLN-Zero block。具体地,其在adaLN(广泛用于GAN和Diffusion Unet)回归 γ , β \gamma, \beta γ,β的基础上,还会回归一个 α \alpha α参数(这个 α \alpha α会被0初始化以实现恒等函数):
    f ( P ) = γ , β , α ( γ ∈ R b × 1 × c , β ∈ R b × 1 × c , α ∈ R b × 1 × c ) y = α × M u l t i H e a d S e l f A t t e n t i o n ( γ x − μ σ + β ) ( μ ∈ R b × h w × 1 , σ ∈ R b × h w × 1 ) f(P) = \gamma ,\beta, \alpha \ (\gamma \in R^{b \times 1 \times c}, \beta \in R^{b \times 1 \times c}, \alpha \in R^{b \times 1 \times c}) \\ y = \alpha \times MultiHeadSelfAttention(\gamma \frac{x - \mu}{\sigma} + \beta) \ (\mu \in R^{b \times hw \times1}, \sigma \in R^{b \times hw \times 1}) f(P)=γ,β,α (γRb×1×c,βRb×1×c,αRb×1×c)y=α×MultiHeadSelfAttention(γσxμ+β) (μRb×hw×1,σRb×hw×1)
    在这里插入图片描述

  2. Decoupled Cross-Attention
    Decoupled Cross-Attention最初由IPAdapter(2023)提出,其在去噪网络crossattention layer旁边再引入一个cross attention分支,然后对二个cross attetnion的输出进行求和送给去噪网络下一层。具体地,假设生成模型某层的特征是 x ∈ R b × h w × c x \in R^{b \times hw \times c} xRb×hw×c, P P P是cross attention的条件特征, C C C是新的cross attention层的条件特征,我们可以得到:
    y = Softmax ( W q x ( W k P ) ⊤ d ) W v P + λ Softmax ( W q x ( W k ′ C ) ⊤ d ) W v ′ C , y = \textrm{Softmax}(\frac{W_q x (W_k P)^\top}{\sqrt{d}}) W_v P + \lambda \ \textrm{Softmax}(\frac{W_q x (W_k' C)^\top}{\sqrt{d}}) W_v' C, y=Softmax(d Wqx(WkP))WvP+λ Softmax(d Wqx(WkC))WvC,
    其中 d d d 是归一化因子, W q W_q Wq, W k W_k Wk, W v W_v Wv是去噪网络crossattention的投影矩阵, W k ′ W_k' Wk, and W v ′ W_v' Wv是新crossattention的投影矩阵, y y y将要作为生成模型下一层的输入, λ \lambda λ是权衡权重。
    在这里插入图片描述
    对于没有cross attention层的模型比如FLUX(2024),目前也有方法比如PuLID-FLUX-v0.9.0(2024)在self attention层旁引入cross attention分支。

  3. self-attention层进行融合
    如果提取条件特征的网络是去噪网络的副本,条件特征则通常是在去噪网络的self-attetion层进行融合。
    (1) 假设生成模型层的特征是 x ∈ R b × h w × c x \in R^{b \times hw \times c} xRb×hw×c, P P P是对应的条件特征:
    x ′ = c o n c a t ( [ x , P ] , a x i s = 1 ) y = S e l f A t t e n t i o n ( x ′ , x ′ , x ′ ) [ : , : h w , : ] , x' = concat([x,P], axis=1) \\ y = SelfAttention(x', x', x')[:, :hw, :], x=concat([x,P],axis=1)y=SelfAttention(x,x,x)[:,:hw,:],
    其中concat是特征拼接函数,模型经过SelfAttention操作后会丢弃多余维度特征以保证y的维度和x的维度一致。该方法最初由AnimateAnyone(2023)提出。
    在这里插入图片描述
    (2) 第一种方法有冗余特征,因此可以改进去噪网络的self-attention层的以实现更好的条件特征融合。具体地,假设生成模型层的特征是 x ∈ R b × h w × c x \in R^{b \times hw \times c} xRb×hw×c, P P P是对应的条件特征:
    x ′ = c o n c a t ( [ x , P ] , a x i s = 1 ) y = S e l f A t t e n t i o n ( x , x ′ , x ′ ) = Softmax ( W q x ( W k x ′ ) ⊤ d ) W v x ′ , x' = concat([x,P], axis=1) \\ y = SelfAttention(x, x', x') = \textrm{Softmax}(\frac{W_q x (W_k x')^\top}{\sqrt{d}}) W_v x', x=concat([x,P],axis=1)y=SelfAttention(x,x,x)=Softmax(d Wqx(Wkx))Wvx,
    其中concat是特征拼接函数, S e l f A t t e n t i o n SelfAttention SelfAttention的key和value将由 x ′ x' x得到而不是 x x x
    (3) 为了不影响去噪模型的原本的能力,可以引入新的crossattention分支进行特征融合。具体地,假设生成模型层的特征是 x ∈ R b × h w × c x \in R^{b \times hw \times c} xRb×hw×c, P P P是对应的条件特征:
    y = Softmax ( W q x ( W k x ) ⊤ d ) W v x + λ Softmax ( W q x ( W k ′ P ) ⊤ d ) W v ′ P , y = \textrm{Softmax}(\frac{W_q x (W_k x)^\top}{\sqrt{d}}) W_v x + \lambda \ \textrm{Softmax}(\frac{W_q x (W_k' P)^\top}{\sqrt{d}}) W_v' P, y=Softmax(d Wqx(Wkx))Wvx+λ Softmax(d Wqx(WkP))WvP,
    其中 d d d 是归一化因子, W q W_q Wq, W k W_k Wk, W v W_v Wv是去噪网络self-attention投影矩阵, W k ′ W_k' Wk, and W v ′ W_v' Wv是新crossattention的投影矩阵, y y y将要作为生成模型下一层的输入, λ \lambda λ是权衡权重。

  4. 特征直接逐元素求和
    (1) 同样假设生成模型某层的特征是 x ∈ R b × h w × c x \in R^{b \times hw \times c} xRb×hw×c, P ∈ R b × h w × c P \in R^{b \times hw \times c} PRb×hw×c是提取的对应的条件特征。ControlNet(2023)等方法直接将 x x x P P P进行逐元素求和:
    y = x + λ P , y = x + \lambda P, y=x+λP,其中 y y y将要作为生成模型下一层的输入, λ \lambda λ是权衡权重。
    在这里插入图片描述

    (2) ControlNeXt(2024)为了解决训练开始阶段 x x x P P P特征分布不配备造成的收敛缓慢的问题,提出cross normalization,即使用 x x x P P P的均值和方差去平衡去噪网络和条件特征提取网络对最终输出的影响。具体地,假设生成模型某层的特征是 x ∈ R b × h w × c x \in R^{b \times hw \times c} xRb×hw×c, P ∈ R b × h w × c P \in R^{b \times hw \times c} PRb×hw×c)是提取的对应的条件特征:
    y = x + λ ( P − μ P σ P σ x + μ x ) , y = x + \lambda \ (\frac{P - \mu_P}{\sigma_P} \sigma_x + \mu_x), y=x+λ (σPPμPσx+μx),其中 μ x ∈ R b × 1 × 1 \mu_x \in R^{b \times 1 \times 1} μxRb×1×1 σ x ∈ R b × 1 × 1 \sigma_x \in R^{b \times 1 \times 1} σxRb×1×1 x x x均值和标准差, μ P ∈ R b × 1 × 1 \mu_P \in R^{b \times 1 \times 1} μPRb×1×1 σ P ∈ R b × 1 × 1 \sigma_P \in R^{b \times 1 \times 1} σPRb×1×1 P P P的均值和标准差, y y y将要作为生成模型下一层的输入, λ \lambda λ是权衡权重。

总结:
上文提到了条件归一化层,Decoupled Cross-Attention,self-attention层进行融合,特征值逐元素求和四种特征融合方式。显然地:
(1) 条件归一化层目前主要是用于一些简单的条件,比如文本和timestep。
(2) 特征值逐元素求和目前主要是用于保留条件的空间信息。
(3) Decoupled Cross-Attention和self-attention层进行融合目前主要是用于保留条件的语义和细节。在Cross-Attention层进行融合的话需要考虑到文本可控性和条件信息注入程度之间的权衡问题,即2个分支哪个分支占主导地位。

值得注意的是,尽管本文主要关注这四种特征融合方式,但是依然有其它的方式比如使用条件特征替换预训练模型的文本特征。

展望:
目前的条件融合方式主要是基于Diffusion Unet结构探索得到。对于FLUX这种将文本和图像耦合在一起的新兴模型,如何高效地将除文本外的额外信息融合到模型值得探索。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

华为云LTS日志上报至观测云最佳实践

华为云LTS简介 华为云云日志服务(Log Tank Service,简称 LTS),用于收集来自主机和云服务的日志数据,通过海量日志数据的分析与处理,可以将云服务和应用程序的可用性和性能最大化,为您提供实时、…

三维立体自然资源“一张图”

随着信息技术的发展,自然资源管理迎来了新的机遇与挑战。在众多技术中,“三维立体自然资源‘一张图’”的概念尤为引人注目。它不仅代表了地理信息科学领域的最新成果,也为自然资源的有效管理和可持续利用提供了强有力的支持。本文将探讨这一…

同元软控受邀出席2024第四届国际自主无人系统大会

9月19-21日,2024第四届国际自主无人系统大会在沈阳召开。辽宁省副省长高涛,沈阳市委副书记、市长吕志成出席并致辞。 本届大会由中国科学院沈阳自动化研究所、国防科技大学、西北工业大学、南京理工大学、中国航空学会共同主办,以“自主无人…

Webpack 特性探讨:CDN、分包、Tree Shaking 与热更新

文章目录 前言包准备CDN 集成代码分包Tree Shaking原理实现条件:解决 treeShaking 无效方案:示例代码: 热更新(HMR) 前言 Webpack 作为现代前端开发中的核心构建工具,提供了丰富的特性来帮助开发者优化和打…

【sw2024】solidworks2024双击setup.exe无反应管理员运行也没反应解决方法

第一步 官网下载xxclean,打开xxclean最新版本,登录。官网xxclean.com或者自己浏览器搜。 第二步 点击扩展功能,点击 运行sw2024安装程序无反应 右边的开始 第三步 进度百分之百之后去双击setup就有界面了。

unix中的exec族函数介绍

一、前言 本文将介绍unix中exec族函数,包括其作用以及使用方法。当一个进程调用fork函数创建一个新进程后,新进程可以直接执行原本正文段的其他内容,但更多时候,我们在一个进程中调用fork创建新的进程后,希望新进程能…

ApiSix 插件开发

版本 3.0.1 创建插件目录和文件 cd ./example/ mkdir -p apisix/plugins cd apisix/plugins touch my_plugin.lua结构如下: 编写脚本 local core require("apisix.core")local plugin_name "my_plugin"local schema {type "obje…

MySQL约束:外键约束

下面先创建两张表用来作为实验样例 1.创建dept表 create table dept(id int auto_increment comment ID primary key,name varchar(50) not null comment 部门名称 ) comment 部门表;INSERT INTO dept (id, name) VALUES (1, 研发部), (2, 市场部), (3, 财务部), (4, 销售部…

基于服务网格的集群访问控制

随着容器化、云原生等概念的火热,越来越多的应用都开始选择支持云原生部署,但是对于大型企业应用来说,各种为服务的拆分会导致集群运维的压力越来越大,尤其是服务之间的安全通信至关重要。 在容器化集群中,传统的基于…

同元软控参展2024超临界二氧化碳动力循环与多能互补系统国际会议

9月20-23日,2024超临界二氧化碳动力循环与多能互补系统国际会议(简称ICSPC2024)在上海召开。会议由中国科学院工程热物理研究所、中国工程热物理学会主办,华北电力大学、西安热工研究院有限公司为联合主办单位。同元软控携核反应堆…

7.3树形查找

7.3.1二叉排序树 1.定义 目的:提供查找删除,插入关键字的速度 二叉排序树的特性: 左子树<根节点<右子树左右字数也分别是一棵二叉树 对二叉排序树进行中序遍历,可以得到一个递增的有序序列 2.二叉排序树的查找 查找从根节点开始,沿分支逐层向下比较的过程 二叉排序…

foxmail登录不了hotmail的解决办法

foxmail登录不了hotmail 由于hotmail的信息安全保护&#xff0c;9.16号就在foxmail登录不了&#xff0c;因为习惯了foxmail&#xff0c;且微软改了验证方式&#xff0c;换要他们的客户端才行&#xff0c;就感觉好麻烦。 在foxmail输入原密码报错 修改验证方式 也是会报错 解决…

第十三届蓝桥杯真题Java c组C.纸张尺寸(持续更新)

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;蓝桥杯关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 【问题描述】 在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm 841mm&#…

LLM推理需要多大GPU?背完再去面试

在实际工作中&#xff0c;经常有人问&#xff0c;7B、14B 或 70B 的模型需要多大的显存才能推理&#xff1f;如果微调他们又需要多大的显存呢&#xff1f; 为了回答这个问题整理一份训练或推理需要显存的计算方式。如果大家对具体细节不感兴趣&#xff0c;可以直接参考经验法则…

original多因子图绘制

成品参考 首先导入数据 设置过程 设置X轴 设置图 双击空白部分设置图层宽度&#xff08;也需要设置高度&#xff09; 颜色配置 1.删除边框 合适的参数与颜色&#xff08;设置为单色&#xff09;

【Python】Python多行输入储存为字典,值为列表

1.储存在变量中 # 输入格式&#xff1a;3 5 tabel, customer map(int, input().split()) print("table:", tabel) print("customer:", customer) 2.储存在列表中 #输入格式&#xff1a;2 4 2 tabel_number [int(x) for x in input().split()] print(&q…

跨国企业如何布局知识产权战略以应对国际条约的挑战与机遇?

在跨国企业的全球运营中&#xff0c;知识产权的战略布局显得尤为重要。面对复杂多变的国际环境&#xff0c;跨国企业如何在全球范围内有效保护其知识产权&#xff0c;同时利用国际条约促进合作并应对挑战&#xff0c;成为了一个亟待探讨的问题。 跨国企业知识产权的全球布局 1…

项目管理系统中的风险管理:如何识别和应对项目风险?

在现代项目管理中&#xff0c;风险管理是确保项目成功的关键因素之一。无论是技术、资源还是市场的变化&#xff0c;风险无处不在。有效的风险管理能够帮助团队识别潜在问题并制定应对策略&#xff0c;从而避免项目延误和预算超支。项目管理系统在这一过程中扮演着重要角色&…

微积分入门(真的很入门)

前置知识 前置知识&#xff1a;极限 我们要求 lim ⁡ x → 1 x 2 − 1 x − 1 \lim\limits_{x \to 1}\dfrac{x^2-1}{x-1} x→1lim​x−1x2−1​。 右边我们都知道是什么意思&#xff0c;那左边是什么呢&#xff1f; 意思就是&#xff0c;当 x x x 无限接近 1 1 1 时&…

相亲交友系统的社会影响:家庭结构的变化

随着互联网技术的发展&#xff0c;相亲交友系统已成为许多单身人士寻找伴侣的重要途径。这些平台不仅改变了人们的社交方式&#xff0c;还对家庭结构产生了深远的影响。本文将探讨相亲交友系统如何促使家庭结构发生变化&#xff0c;开发h17711347205并通过简单的Python代码示例…