论文阅读(1)Adding Conditional Control to Text-to-Image Diffusion Models

Motivation

  1. 文生图模型对于图像空间组成的控制有限;仅通过文本提示难以精确表达复杂的布局、子式、形状和形式
  2. 以端到端(e.g. 深度图到图像,姿势到图像等)的方式学习大型文生图扩散模型的条件控制具有挑战性(训练数据不足、训练过度拟合或灾难性遗忘)

Approach

通过锁定模型参数并制作其编码层的可训练副本来保持模型的质量与功能

可训练副本和原始锁定模型通过零卷积层连接,权重初始化为零,以便它们在训练过程中逐渐增长。一次确保在训练开始时不会将有害噪声添加到 large diffusion model 的深层特征中,并保护可训练副本中的大规模预训练主干免受这种噪声的破坏。

零卷积 (zero convolution):权重和偏置都是用0初始化的1 x 1卷积。

Condition:Canny edges, Hough lines, user scribbles, human key points, segmentation maps, shape normals, depths, and cartoon line drawings

FAQ(参考 Github 官方回答

问:如果卷积层的权重为零,梯度也为零,网络将不会学到任何东西。为什么『零卷积』有效?
答:这是错误的。让我们考虑一个非常简单的
y = w x + b y=wx+b y=wx+b
我们有
∂ y / ∂ w = x , ∂ y / ∂ x = w , ∂ y / ∂ b = 1 \partial y/\partial w=x, \partial y/\partial x=w, \partial y/\partial b=1 y/w=x,y/x=w,y/b=1
如果 w = 0 w=0 w=0 x ≠ 0 x \neq 0 x=0,那么
∂ y / ∂ w ≠ 0 , ∂ y / ∂ x = 0 , ∂ y / ∂ b ≠ 0 \partial y/\partial w \neq 0, \partial y/\partial x=0, \partial y/\partial b\neq 0 y/w=0,y/x=0,y/b=0
这意味着只要 x ≠ 0 x \neq 0 x=0,一次梯度下降迭代就会使 w w w 非零。然后
∂ y / ∂ x ≠ 0 \partial y/\partial x\neq 0 y/x=0
使得零卷积将逐渐成为具有非零权重的公共卷积层。

Method

ControlNet

在这里插入图片描述

锁定原始网络参数 Θ \Theta Θ,并同时克隆到具有参数 Θ c \Theta_c Θc 的可训练副本。条件向量 c c c 通过零卷积层与 x x x 相加,经可训练副本网络后,再通过零卷积层与原始网络的输出相加,得到 y c y_c yc
y c = F ( x ; Θ ) + Z ( F ( x + Z ( c ; Θ z 1 ) ; Θ c ) ; Θ z 2 ) y c = y y_c=\mathcal{F}(x;\Theta)+\mathcal{Z}(\mathcal{F}(x+\mathcal{Z}(c;\Theta_{z1});\Theta_c);\Theta_{z2})\\ y_c=y yc=F(x;Θ)+Z(F(x+Z(c;Θz1);Θc);Θz2)yc=y
因此在训练开始时,有害噪声不会影响到可训练副本中神经网络层的隐藏状态。

由于 Z ( c ; Θ z 1 ) = 0 \mathcal{Z}(c;\Theta_{z1})=0 Z(c;Θz1)=0,可训练副本还接收输入图像 x x x,因此它保留了原先预训练大模型的能力,并允许进一步进行学习。

在这里插入图片描述

使用 ControlNet 创建 12 个 SD Encoder Block 和 1 个 SD Middle Block,输出被接入到 12 个 SD Decoder Block 和 1 个 SD Middle Block。

由于 SD 是在浅空间中进行扩散,因此 ControlNet 使用具有 4 × 4 4\times4 4×4 核和 2 × 2 2\times2 2×2 步长的四个卷积层组成的微小网络 E \mathcal{E} E 将输入为 512 × 512 512\times512 512×512 的条件图像(边缘、姿势、深度等)转换为 64 × 64 64\times64 64×64 的浅空间图像。
c f = E ( c i ) c_f=\mathcal{E}(c_i) cf=E(ci)

Training

L = E z 0 , t , c t , c f , ϵ ∼ N ( 0 , 1 ) [ ∥ ϵ − ϵ θ ( z t , t , c t , c f ) ∥ 2 2 ] \mathcal{L}=\mathbb{E}_{z_0,t,c_t,c_f,\epsilon \sim \mathcal{N}(0,1)}[\left \| \epsilon-\epsilon_\theta(z_t,t,c_t,c_f) \right \|_2^2 ] L=Ez0,t,ct,cf,ϵN(0,1)[ϵϵθ(zt,t,ct,cf)22]

在训练过程中,随即将 50% 的文本提示词替换为空字符串。这样可以提高 ControlNet 识别输入条件图像语义的能力,而非通过提示词识别语义。

作者观察到,模型不会逐渐学习到控制条件,而是突然成功遵循输入条件图片。他们将此称为『突然收敛现象』(「sudden convergence phenomenon」)

在这里插入图片描述

Inference

Classifier-free guidance resolution weighting

CFG: ϵ p r d = ϵ u c + β c f g ( ϵ c − ϵ u c ) \epsilon_{prd}=\epsilon_{uc}+\beta_{cfg}(\epsilon_c-\epsilon_{uc}) ϵprd=ϵuc+βcfg(ϵcϵuc)

首先将条件图像添加到 ϵ c \epsilon_c ϵc,然后根据每个块的分辨率 w i = 64 / h i w_i=64/h_i wi=64/hi,将权重 w i wi wi 乘以 SD 和 ControlNet 之间的每个连接,其中 h i h_i hi 是第 i i i 个块的大小,例如, h 1 = 8 , h 2 = 16 , … , h 13 = 64 h_1=8,h_2=16,…,h_{13}=64 h1=8h2=16h13=64

在这里插入图片描述

Composing multiple ControlNet

直接将多个条件图像的 ControlNet 输出加入到 SD 模型中,不需要进行额外的加权或线性内插就能得到很好的效果

在这里插入图片描述

Result

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Reference

Adding Conditional Control to Text-to-Image Diffusion Models

  • 30
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值