【论文阅读】ControlNet

简介

  • 目标:加入额外的条件(例如边缘图像,深度图像)控制生成的图像

  • 现有挑战

    • 特定领域上的数据较少,而预训练模型很大,很容易出现过拟合的情况。
    • 在资源有限的情况下,只能选择pretrain- finetune的训练方式
    • 端到端的训练对于使用是很有必要的
  • idea:将预训练模型拷贝两份分别为:locked copy和trainable copy。前者保留了原始模型的能力,后者使用小样本进行微调。然后通过zero convolution将二者连接起来。
    【论文阅读】ControlNet_第1张图片

ps:这里的zero convolution是1*1卷积,初始化为0以保证一开始模型的输出与预训练模型一致,以实现在预训练模型的基础上进行微调。相比于从头训练的收敛速度是更快的

  • 方法:
    【论文阅读】ControlNet_第2张图片

    • 只copy了上采样和middle部分的block
    • 这里为了让condition匹配latent space,也使用了一个encoder(卷积)降维
  • 训练

    • 在训练的时候mask掉了50%的prompt文本,来促使controlnet通过condition map学习到更多的语义
    • 小样本训练:只在middle block有zero convolution连接,decoder部分可以去掉连接,保证训练的高效
    • 有资源的情况下:可以在训练50k步之后把stable diffusion的decoder部分的4个block参数解冻一起训练
  • 控制条件

    • Canny Edge,边缘检测图
    • Hough Line,直线检测图
    • User Scribble,用户涂鸦
    • HED Edge,边缘检测图,基于vgg的神经网络,相较于canny对语义有一定理解
    • Human Pose,人体姿态
    • Semantic Segmentation,语义分割图
    • Depth,深度图
    • Normal Maps,法线贴图,对光线方向敏感
    • Cartoon line drawing,卡通线条画
      【论文阅读】ControlNet_第3张图片
  • 注意

    • 如果出现突然收敛的情况(前面生成的不确,突然在某一步正确了),可能是陷入了局部最优解,这是最好不要继续优化更多的步,在算力允许的情况下增大batch size
    • 可以只在前面部分的step中加入controlnet控制,后面的step不加控制,能够让生成的图像更具多样性(webUI上操作很容易)
  • 优缺点

    • 优点:能够在数据量有限,计算有限(消费级显卡)的情况下fine tune一个端到端的下游模型
    • 局限:使用边缘检测的时候可能controlnet会理解错语言,不过加上正确的prompt能够在一定程度上进行纠正

你可能感兴趣的:(论文阅读,论文阅读)