关于人工智能:ControlNet-控制扩散模型的魔法

2次阅读

共计 1518 个字符,预计需要花费 4 分钟才能阅读完成。

出品人:Towhee 技术团队

作者:王翔宇

从去年以来 AIGC 的技术一直冲击人们的想象力,针对图片的扩散模型(midjourney 和 stable diffusion)曾经能够在给于 prompt 下生成十分吸引人的图像,然而如果心愿以别的模式(文本可能不能齐全的管制图像内容,比方一个简单的人物姿势)来去进行输出的话,能不能在现有的大模型(例如 Stable Diffusion)进行一些革新?

这篇文章对这个问题进行了一些探讨并提出了 ControlNet 来进行解决。作者心愿可能额定训练一些参数,在放弃原有大模型的参数状况下(不产生灾难性忘记,摈弃已学习的简单语义常识)。

ControlNet,是一种端到端的神经网络架构,用于管制大型图像扩散模型(例如 Stable Diffusion),以学习工作特定的输出条件。ControlNet 将大型扩散模型的权重分为“可训练正本”和“锁定正本”:锁定正本保留了从数十亿图像中学到的网络能力,而可训练正本则通过对工作特定数据集的训练来学习条件管制。可训练和锁定的神经网络模块通过一种称为“零卷积”的独特卷积层连贯,其中卷积权重以一种学习的形式从零逐步增长到优化的参数。因为保留了生产就绪的权重,训练在不同规模的数据集上具备鲁棒性。因为零卷积不会给深层特色减少新的噪声,与从头开始训练新层相比,训练速度与微调扩散模型的速度相当快。

作者应用不同条件的各种数据集(如 Canny 边缘、Hough 线、用户草图、人体关键点、宰割图、形态法线、深度等)训练了多个 ControlNet。

ControlNet(管制网络)通过操纵神经网络块的输出条件来进一步管制整个神经网络的整体行为。在这里,” 网络块 ” 是指作为常常应用的单元组合在一起构建神经网络的一组神经层,例如 ”resnet” 块、”conv-bn-relu” 块、多头注意力块、Transformer 块等。Θ 示意原始神经网络中的参数,c 为进行管制的输出,作者将 Θ 中的所有参数锁定,并将其复制为一个可训练的正本 Θc。复制的 Θc 应用内部条件向量 c 进行训练。在本文中,作者将原始参数和新参数称为 ” 锁定正本 ” 和 ” 可训练正本 ”。制作这样的正本而不是间接训练原始权重的动机是为了防止在数据集较小时过拟合,并保留从数十亿张图像中学习到的大型模型的生产就绪品质。

其中 Z 表神经网络块通过一种称为 ” 零卷积 ” 的独特卷积层连贯,即 1×1 卷积层,其权重和偏置都初始化为零。通过这种零卷积设计,能够使得 ControlNet 在训练之初齐全等价于初始网络,取得一个更好的初始化。接下来,作者依据 Stable Diffusion 设计了一个 ControlNet。

接下来,作者利用现有的一些图像处理办法构建了多种多样的输出,将图像处理为(图像处理后果,原始图像)的图像对,这些办法包含了 Canny Edge,Hough Line,HED Boundary,Human Pose,只有你有任意的图像处理办法,你都能够应用它来形成图像对,训练出你心愿的图像生成模型,如下就是一个例子,通过输出姿势来生成高质量的图像,从而能够更加细粒度的管制生成图像的内容。

当初 ControlNet 曾经成为了 Stable Diffusion 相当火爆的一个插件,能够利用它生成出更加合乎你须要的图片。

[1]https://arxiv.org/pdf/2302.05543.pdf
[2]https://github.com/lllyasviel/ControlNet


  • 如果在应用 Milvus 或 Zilliz 产品有任何问题,可增加小助手微信“zilliz-tech”退出交换群
  • 欢送关注微信公众号“Zilliz”,理解最新资讯。

本文由 mdnice 多平台公布

正文完
 0