要点
提出了一个神经网络ControlNet,用于控制预训练扩散模型以支持额外的输入条件。
基于提示词的控制可以满足我们的需求吗?在特定的任务中,我们往往需要很长的时间来训练模。
ControlNet做了什么呢:
把大模型训练好的权重克隆两个:trainable copy
, locked copy
trainable copy:针对specific task进行训练
locked copy:保留大模型学习到的能力,增强模型的鲁棒性
ControlNet的架构以及动机
考虑二维输入特征
x
∈
R
h
,
w
,
c
x\in R^{h, w, c}
x∈Rh,w,c,原始模型
F
(
.
;
θ
)
F(.; \theta)
F(.;θ),得到
y
=
F
(
x
;
θ
)
y = F(x;\theta)
y=F(x;θ)
我们把模型训练好的参数复制一份作为
θ
c
\theta_{c}
θc,zero convolution用
Z
Z
Z表示
这个图可表示为 y c = F ( x ; θ ) + Z ( F ( x + Z ( c ; θ z 1 ) ; θ c ) ; θ z 2 ) y_{c} = F(x;\theta) + Z(F(x + Z(c;\theta_{z1});\theta_{c}); \theta_{z2}) yc=F(x;θ)+Z(F(x+Z(c;θz1);θc);θz2)
ControlNet加入Stable Diffusion模型的架构图: