AIGC 003-Controlnet升级你的SD让图像生成更加可控!
文章目录
- 0 论文工作
- 1 论文方法
- 2 效果
0 论文工作
ControlNet 论文 (Adding Conditional Control to Text-to-Image Diffusion Models) 提出了一种名为 ControlNet 的神经网络结构,旨在为大型文本到图像扩散模型提供更精细的控制。 它允许用户通过额外的输入条件 (例如边缘图、深度图、人体姿态) 来引导图像生成过程,同时保持扩散模型原有的生成能力和图像质量。
作者提出了一个神经网络结构,控制网,以控制预先训练的大型扩散模型,以支持额外的输入条件。控制网在端到端学习过程中学习特定于任务的条件即使训练数据集很小(< 50k),学习也是鲁棒的。此外,训练一个控制网的速度和微调一个扩散模型的速度一样快,而且该模型可以在性能一般的设备上进行,作者是在3090系列上进行。或者,如果有强大的计算集群可用,该模型可以扩展到大量(数百万到数十亿)的数据。作者证明想扩散模型这样的大模型可以被Controlnet增强,以使用不同条件输入,如边缘图,语义图,关键点,深度图等。这可能会丰富控制大型扩散模型的方法,并进一步提供便利相关应用程序。
这个工作是我们在LoRA中提到的另外一种调整大模型的方法,就是超网络,用小网络控制网络。
论文链接
github
1 论文方法
ControlNet 的核心思想是将一个可训练的副本网络与冻结的预训练扩散模型相结合。 副本网络与扩散模型具有相同的架构,但参数独立训练。 它接收额外的输入条件,并通过 “零卷积” 层将其信息传递给扩散模型。lora和controlnet在形式上都像是残差的跳跃连接,在原输入输出不变的情况下增加一个额外的因子。
a. 副本网络 (ControlNet):
架构: 副本网络与预训练扩散模型具有相同的架构,例如 Stable Diffusion 中的 U-Net。
参数: 副本网络的参数独立于扩散模型进行训练,不会改变预训练模型的权重。
输入: 副本网络接收额外的输入条件,例如 Canny 边缘图、深度图、人体姿态等。
零卷积: 副本网络使用 “零卷积” 层将学习到的条件信息传递给扩散模型。零卷积层是一系列 1x1 卷积层,初始权重为零,在训练过程中逐渐学习。
b. 扩散模型:
冻结权重: 扩散模型的权重被冻结,不进行梯度更新,以保持其预训练的生成能力。
条件注入: 副本网络通过零卷积层将条件信息注入到扩散模型的编码器和解码器中。
c. 训练过程:
联合训练: 副本网络和扩散模型联合训练,以最小化条件图像和生成图像之间的差异。
损失函数: ControlNet 使用与原始扩散模型相同的损失函数,例如变分下界 (ELBO) 或其他图像相似度指标。
2. 优势:
精细控制: ControlNet 允许用户通过额外的输入条件对图像生成过程进行精细控制,例如控制物体的形状、姿势、布局等。
保持图像质量: 由于扩散模型的权重被冻结,ControlNet 能够保持预训练模型的生成能力和图像质量。
易于使用: ControlNet 的使用非常简单,只需将额外的输入条件传递给副本网络即可。
多功能性: ControlNet 可以与各种类型的条件信息一起使用,例如边缘图、深度图、语义分割图、人体姿态等。
3. 缺点:
需要额外的条件输入: ControlNet 需要用户提供额外的条件输入,这可能需要额外的预处理步骤。
计算成本: 使用 ControlNet 会增加训练和推理的计算成本,因为需要运行额外的副本网络。
并非所有条件都适用: ControlNet 的效果取决于所使用的条件类型和质量。并非所有条件都能有效地引导图像生成过程。
5. 应用:
ControlNet 已经成为文本到图像生成领域的一个重要工具,并被广泛应用于各种场景,例如:
图像编辑: 使用 ControlNet 可以对图像进行各种编辑操作,例如改变物体的形状、姿势、布局等。
风格迁移: 可以使用 ControlNet 将一种图像的风格迁移到另一种图像上,同时保持内容的一致性。
图像修复: 可以使用 ControlNet 修复损坏的图像,例如填充缺失的部分或去除不需要的物体。
动画生成: 可以使用 ControlNet 从一系列关键帧生成流畅的动画。
2 效果
可以在作者的github种看到更多效果。