CCM: Real-Time Controllable Visual Content Creation Using Text-to-Image Consistency Models

0 Abstract

Consistency Models 优点就是推理速度快,去噪只需几步即可。

control-conditioned image generative model 一般是通过在朴素 ddpm 上增加 ControlNet 训练得到。图像质量不错,与 control 信息的吻合程度也不错,唯独就是时间慢了。

所以这一篇 paper 做的事情,就是做一个 control-conditioned 的 consistency model 。

论文发现,直接把在 diffusion 上训好的 ControlNet 拼到 consistency model 上,与 control 信息吻合程度还行,但是图像质量下降。

所以论文先把 ControlNet 拼上去,然后通过一致性训练,微调 ControlNet 或者微调 ControlNet 后边新接一个 adapter,达到制作出一个 control-conditioned consistency model 的目的。

1 Introduction

这里讲了下 consistency model (CM) 的历史和常识。比如 CM 是如何训的,有两种方法(CD 和 CT,具体去看 "consistency model" 这篇笔记)。

以及有人已经用 SVD 蒸馏出了 text-conditioned consistency model 。但是没人做 text/control-conditioned consistency model ,所以我们要来做。

2 Preliminary

这里就讲了下 ddpm 和 consistency model 一些基本的公式。

去把下面四篇笔记看完就很清晰:

  1. ddpm
  2. score-based model
  3. score-based SDE
  4. consistency model

3 Method

作者干了四件事:

  1. 从 text-conditioned diffusion model 蒸馏出一个 text-conditioned consistency (Section 3.1)
  2. 把 control condition 融入 text-conditioned diffusion model,得到 text/control-conditioned diffusion model (Section 3.2)
  3. 对 text-conditioned consistency model 使用一致性训练 (CT),微调插入的 ControlNet,最终得到 text/control-conditioned consistency model (Section 3.3)
  4. 对 text-conditioned consistency model 使用一致性训练 (CT),微调插在 ControlNet 和 consistency model 中间的 adapter,最终得到 text/control-conditioned consistency model (Section 3.4)

技术点:信息融合方式(adaln, adaln-zero, cross attention, mlp, concat);consistey model 训练方式(蒸馏模型估计 score CD / 蒙特卡洛估计 score CT)。

4 Experiment

除了讲述实验参数配置和 method 里四件事的实验过程,我更关心的是文章还分析了 diffusion model 上的 ControlNet 与 consistency model 上的 ControlNet 之间的 gap 。

因为编码 control condition 的网络长下面这样:

image

实验记录了 DM 和 CM 上的 ControlNet 不同层输出的特征的相似度 \frac{<c_{dm}, c_{cm}>}{\|c_{dm}\|_2 \cdot \|c_{cm}\|_2},如下图:

image

可以看出层数越深,相似度越低。这就可以解释为什么直接把 DM 上的 ControlNet 拼到 CM 上,高层控制信息接收的还行,底层控制信息对齐效果不好的原因。

除了从余弦相似度的角度去看 gap,作者还从傅里叶变换信号的角度去看了 gap,如下图:

image

可以看到浅层(左图)是很相似的,深层(右图)它们波动相似,但幅度不同。

Appendix

讲了 consistency model 数学模型 f_\theta(x_t, t) = c_{skip}(t)x_t + c_{out}(t)F_\theta(x_t, t) 中的 c_{skip}(t), c_{out}(t) 俩系数怎么设计。观察这个数学模型,可以认为第一项就是保留原信息,第二项相当于一个修正项。

推导这俩系数,作者用了俩条件:

  1. F_\theta(x_t, t) 的方差为 1(maybe 想让修正项更加稳定?)
  2. c^2_{out}(t)c_{skip}(t) 求导数为 0 (尽可能让这两项别互相影响)

推导过程如下,很清晰:

image​​image

有 Section 3.2 弄出来的 text/control-conditioned diffusion model 的模型结构图。

有 Section 3.4 弄出来的使用 adapter 的 text/control-conditioned diffusion model 的模型结构图。

有三种不同方法(直接拼、训 ControlNet、训 adapter) 各自的效果图。

  • 算法
    436 引用 • 254 回帖 • 24 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...