通过「添加额外条件」来控制扩散模型,斯坦福大学最新的一项研究让图生图效果更上了一层楼。

随着大型文本 - 图像模型的出现,生成一幅吸引人的图像已经变得非常简单,用户需要做的就是动动手指输入简单的 prompt 就可以。通过一系列操作得到图像后,我们不免又会产生这样几个问题:基于 prompt 生成的图像能够满足我们的要求吗?我们应该构建怎样的架构来处理用户提出的各种要求?在特定任务中,大型模型是否还能保持从数十亿张图像中获得的优势和能力?

为了回答这些问题,来自斯坦福的研究者对各种图像处理应用进行了大量调查,并得出以下三个发现:

首先,在特定领域中可用数据实际比训练通用模型的数据要少,这主要表现在,例如在特定问题上(例如姿态理解等)最大的数据集通常低于 100k,比大规模、多模态文本图像数据集 LAION 5B 少了 5 × 10^4 数量级。这就要求神经网络鲁棒性要好,以避免模型过度拟合,并在针对特定问题时具有良好的泛化性。

其次,当使用数据驱动处理图像任务时,大型计算集群并不总是可用的。这时快速训练方法就变得很重要,这种方法在可接受的时间和内存空间内能够针对特定任务对大模型进行优化。更进一步,在后续的处理过程中可能还需要微调、迁移学习等操作。

最后,在图像处理过程中遇到的各种问题会有不同形式的定义方式。在解决这些问题时,虽然图像扩散算法可以以「程序化(procedural)」方式进行调节,例如,约束去噪过程、编辑多头注意力激活等,但这些手工制定的规则基本上是由人类指令规定的,考虑到一些特定的任务,如深度 - 图像、姿态 - 人等,这些问题本质上需要将原始输入解释为对象级或场景级的理解,这使得手工制作的程序方法不太可行。因此,想要在多个任务中给出解决方案,端到端学习是必不可少的。

基于上述发现,本文提出了一种端到端的神经网络架构 ControlNet,该架构可以通过添加额外条件来控制扩散模型(如 Stable Diffusion),从而改善图生图效果,并能实现线稿生成全彩图、生成具有同样深度结构的图、通过手部关键点还能优化手部的生成等。

image

论文地址: https://arxiv.org/pdf/2302.05543.pdf 项目地址: https://github.com/lllyasviel/ControlNet

效果展示

那么 ControlNet 效果到底如何呢?

Canny 边缘检测:通过从原始图像中提取线稿,能够生成同样构图的图像。

image

深度检测:通过提取原始图像中的深度信息,可以生成具有同样深度结构的图。

image

带有语义分割的 ControlNet:

image

使用基于学习的深度霍夫变换从 Places2 中检测直线,然后使用 BLIP 生成字幕。

image

HED 边缘检测图示。

image

人体姿态识别图示。

image

方法介绍

ControlNet 是一种神经网络架构,它可以增强具有任务特定(task-specific)条件的预训练图像扩散模型。我们先来看 ControlNet 的基本结构。

ControlNet 操纵神经网络块的输入条件,从而进一步控制整个神经网络的整体行为。这里「网络块」指的是一组神经层,它们被放在一起作为一个构建神经网络的常用单元,例如 resnet 块、多头注意力块、Transformer 块。

以 2D 特征为例,给定一个特征图 x ϵ R^h×w×c,其中 {h, w, c} 分别为高度、宽度和通道数。具有一组参数 Θ 的神经网络块 F (・; Θ) 将 x 转换为另一个特征图 y,如下公式 (1) 所示。

image

这一过程如下图 2-(a) 所示。

image

神经网络块由一种被称为「零卷积」的独特卷积层连接,即权重和偏置都零初始化的 1×1 卷积层。研究者将零卷积运算表示为 Z (・;・) ,并使用两个参数实例 {Θ_z1, Θ_z2} 组成 ControlNet 结构,如下公式 (2) 所示。

image

其中 y_c 成为该神经网络块的输出,如下图 2-(b) 所示。

图像扩散模型中的 ControlNet

研究者以 Stable Diffusion 为例,介绍了如何使用 ControlNet 控制具有任务特定条件的大型扩散模型。Stable Diffusion 是一种在数十亿张图像上训练的大型文本到图像扩散模型,本质上是一个由编码器、中间块和残差连接解码器组成的 U-net。

如下图 3 所示,研究者使用 ControlNet 来控制 U-net 的每一层。需要注意,这里连接 ControlNet 的方式在计算上是高效的:由于原始权重被锁定,原始编码器上的梯度计算不需要进行训练。并且又由于原始模型上少了一半梯度计算,可以加快训练速度并节省 GPU 内存。使用 ControlNet 训练一个 Stable Diffusion 模型只需要在每次训练迭代中增加大约 23% 的 GPU 内存和 34% 的时间(在单个 Nvidia A100 PCIE 40G 上测试)。

image

具体地,研究者使用 ControlNet 创建了 12 个编码块和 1 个 Stable Diffusion 中间块的可训练副本。这 12 个编码块有 4 种分辨率,分别为 64×64、32×32、16×16 和 8×8,每种分辨率有 3 个块。输出被添加到 U-net 的 12 个残差连接和 1 个中间块。由于 Stable Diffusion 是典型的 U-net 结构,因此这种 ControlNet 架构很可能可以用于其他扩散模型。

训练及提升训练

给定图像 z_0,扩散算法渐进地向图像添加噪声并产生噪声图像 z_t,t 是添加噪声的次数。当 t 足够大时,图像近似于纯噪声。给定一组包括时间步长 t、文本 prompts c_t 的条件以及任务特定条件 c_f,图像扩散算法学习网络 ϵ_θ 以预测添加到噪声图像 z_t 的噪声,如下公式 (10) 所示。

image

在训练过程中,研究者随机将 50% 的文本 prompts c_t 替换为空字符串,这有利于 ControlNet 从输入条件 map 中识别语义内容的能力。

此外,研究者还讨论了几种改进 ControlNets 训练的策略,特别是在计算设备非常有限(如笔记本电脑)或非常强大(如具有可用大规模 GPU 的计算集群)的极端情况下。

更多技术细节请参阅原论文。

7 Papers & Radios | 一块GPU跑ChatGPT体量模型;AI绘图又一神器ControlNet
7 Papers & Radios | 一块GPU跑ChatGPT体量模型;AI绘图又一神器ControlNet
NeurIPS 2022 | 最强斗地主AI!网易互娱AI Lab提出基于完美信息蒸馏的方法
NeurIPS 2022 | 最强斗地主AI!网易互娱AI Lab提出基于完美信息蒸馏的方法
《花雕学AI》33:如何用XMind制作AI思维导图、鱼骨图和组织结构图
XMind是一款专业的思维导图软件,它不仅可以制作思维导图,还可以制作其他多种视图模式,如鱼骨图、组织结构图等。XMind具有强大的功能和灵活的操作,可以让我们轻松地创建和编辑各种图形。 本文将介绍如何用XMind制作AI思维导图、鱼骨图和组织结构图。AI是人工智能的简称,它是一门涉及计算机科学、数学、心理学等多个领域的学科,它旨在让机器具有智能的能力,如感知、理解、推理、决策等。AI是一个广泛而复杂的领域,需要我们有清晰而系统的思维方式来掌握和运用。通过本文,你将学习到如何用XMind来梳理AI相关的知识和思路,分析AI相关的问题和原因,展示AI相关的组织和关系。 人工智能AI图像风格迁移(StyleTransfer),基于双层ControlNet(Python3.10)
图像风格迁移(Style Transfer)是一种计算机视觉技术,旨在将一幅图像的风格应用到另一幅图像上,从而生成一幅新图像,该新图像结合了两幅原始图像的特点,目的是达到一种风格化叠加的效果,本次我们使用Stable-Diffusion结合ControlNet来实现图像风格迁移效果。
【OpenVI-AIGC系列之通义文生图1.0实战篇】用AI画兔子喜迎新春,AIGC有什么魔力?
AIGC指的是AI Generated Content,即由AI创作的内容,是继UGC(User Generated Content用户创造内容,如抖音b站等平台)、PGC(Professional Generated Content专业生产内容,如腾讯视频等)之后的新型内容生产方式。由于AIGC生成内容版权可以属于用户,在后续二创、不同平台内容分发方面优势明显。 up主们纷纷使用AIGC进行短视频内容创作,能绘画天马行空的场景、栩栩如生的人物。对于普通人来说,这些新技术可以提供更好的创意平台和更丰富的视觉体验,使个人更容易创建和分享自己的艺术作品,从而激发更多的创意和想象力。
登峰造极,师出造化,Pytorch人工智能AI图像增强框架ControlNet绘画实践,基于Python3.10
人工智能太疯狂,传统劳动力和内容创作平台被AI枪毙,弃尸尘埃。并非空穴来风,也不是危言耸听,人工智能AI图像增强框架ControlNet正在疯狂地改写绘画艺术的发展进程,你问我绘画行业未来的样子?我只好指着ControlNet的方向。本次我们在M1/M2芯片的Mac系统下,体验人工智能登峰造极的绘画艺术。
苏宁基于 AI 和图技术的智能监控体系的建设
苏宁通过 CMDB、调用链等数据构建软硬件知识图谱,在此基础上通过历史告警数据构建告警知识图谱,并最终应用知识图谱进行告警收敛和根因定位。本文主要包括运维知识图谱构建、知识图谱存储、告警收敛及根因定位等内容。
全球名校AI课程库(18)| Stanford斯坦福 · 从语言到信息课程『From Languages to Information』
聚焦文本类数据与信息挖掘应用,课程主题内容涉猎非常广,包含算法+应用,对于帮助构建NLP中的全域概念、理解不同应用板块的算法非常有帮助。
全球名校AI课程库(20)| Stanford斯坦福 · 图机器学习课程『Machine Learning with Graphs』
课程对于graph方向的数据挖掘、机器学习(神经网络)有全面的知识覆盖。如果想学习非结构化的图数据上的各类算法,这是最权威的课程之一。