ControlNet
✅ Control Net 是一种通过引入额外条件来控制 Diffusion Model 的网络架构。
✅ 方法:(1) 预训练好 Diffusion Model (2) 参数复制一份,原始网络 fix (3) 用各种 condition finetune 复制出来的网络参数。 (4) 两个网络结合到一起。
✅ (a) 是预训练的 diffusion model. C 是要添加的新的condition.
✅ 把 (a) 的网络复制一份,finetune copy 的网络,结果叠加。
✅ Zero Convolution:1-1 卷积层,初始的 \(w\) 和 \(b\) 都为 0.
以Stable Diffusion为例来说明ControlNet的用法。
$$ \mathcal{L} =\mathbb{E} _ {\mathbb{z}_0,t,\mathbf{c} _ t,\mathbf{c} _ f,\epsilon \sim \mathcal{N} (0,1)}[||\epsilon -\epsilon _\theta (\mathbf{z} _ t,t,\mathbf{c} _ t,\mathbf{c}_f)||^2_2] $$
where t is the time step, \(\mathbf{c} _t\) is the text prompts, \(\mathbf{c} _ f\) is the task-specific conditions
需要(x, cf, ct)的pair data。