ControlNeXt: Powerful and Efficient Control for Image and Video Generation(2024,8)
进一步在ControlNet上进行了改进,主要针对一下两点
- 对于每一个模块添加一个Zero-Conv也会占用很多显存.
- Zero-Conv两个模态的输出的mean、var具有差异,导致收敛很慢.

针对1,使用一个轻量级的ResBlock进行替换,并且微调很小一部分参数,来替代原来的网络.

针对2,使用了Cross-Normalization,就是将在ResNet添加一个Normlization,来学习一个Mean、Var和原来输出类似的参数.具体如下:
首先对于输入 x x x,计算原始模型的 μ , σ \mu,\sigma μ,σ
μ m = 1 n ∑ i = 1 n x m , i , σ m 2 = 1 n ∑ i = 1 n ( x m , i − μ m ) 2 . \boldsymbol{\mu}_m=\frac1n\sum_{i=1}^n\boldsymbol{x}_{m,i} ,\\\boldsymbol{\sigma}_m^2=\frac1n\sum_{i=1}^n(\boldsymbol{x}_{m,i}-\boldsymbol{\mu}_m)^2 . μm=n1i=1∑nxm,i,σm2=n1i=1∑n(xm,i−μm)2.
然后使用这两个参数来进行Normlization.
x ^ c = x c − μ m σ m 2 + ϵ ∗ γ , \hat{\boldsymbol{x}}_c=\frac{\boldsymbol{x}_c-\boldsymbol{\mu}_m}{\sqrt{\boldsymbol{\sigma}_m^2+\boldsymbol{\epsilon}}}*\gamma, x^c=σm2+ϵxc−μm∗γ,
需要注意的是,只有scale参数 γ \gamma γ,而没有shift参数.
676

被折叠的 条评论
为什么被折叠?



