0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开源了!UniControl:可控视觉生成的统一扩散模型

CVer 来源:机器之心 2023-06-08 15:01 次阅读

来自 Salesforce AI、东北大学、斯坦福大学的研究者提出了 MOE-style Adapter 和 Task-aware HyperNet 来实现 UniControl 中的多模态条件生成能力。UniControl 在九个不同的 C2I 任务上进行训练,展示了强大的视觉生成能力和 zero-shot 泛化能力。

4648a2ce-056a-11ee-8a94-dac502259ad0.png

论文地址:https://arxiv.org/abs/2305.11147

代码地址:https://github.com/salesforce/UniControl

项目主页:https://shorturl.at/lmMX6

引言:Stable Diffusion 表现出了强大的视觉生成能力。然而,它们在生成具有空间、结构或几何控制的图像方面常常表现不足。ControlNet [1] 和 T2I-adpater [2] 等工作实现针对不同模态的可控图片生成,但能够在单一统一的模型中适应各种视觉条件,仍然是一个未解决的挑战。UniControl 在单一的框架内合并了各种可控的条件到图像(C2I)任务。为了使 UniControl 有能力处理多样的视觉条件,作者引入了一个任务感知的 HyperNet 来调节下游的条件扩散模型,使其能够同时适应不同的 C2I 任务。UniControl 在九个不同的 C2I 任务上进行训练,展示了强大的视觉生成能力和 zero-shot 泛化能力。作者已开源模型参数和推理代码,数据集和训练代码也将尽快开源,欢迎大家交流使用。

46520abc-056a-11ee-8a94-dac502259ad0.png

图 1: UniControl 模型由多个预训练任务和 zero-shot 任务组成

动机:现有的可控图片生成模型都是针对单一的模态进行设计,然而 Taskonomy [3] 等工作证明不同的视觉模态之间共享特征和信息,因此本文认为统一的多模态模型具有巨大的潜力。

解决:本文提出了 MOE-style Adapter 和 Task-aware HyperNet 来实现 UniControl 中的多模态条件生成能力。并且作者建立了一个新的数据集 MultiGen-20M,包含 9 大任务,超过两千万个 image-condition-prompt 三元组,图片尺寸≥512。

优点:1) 更紧凑的模型 (1.4B #params, 5.78GB checkpoint),更少的参数实现多个 tasks。2) 更强大的视觉生成能力和控制的准确性。3) 在从未见过的模态上的 zero-shot 泛化能力。

1.介绍

生成式基础模型正在改变人工智能在自然语言处理、计算机视觉音频处理和机器人控制等领域的交互方式。在自然语言处理中,像 InstructGPT 或 GPT-4 这样的生成式基础模型在各种任务上都表现优异,这种多任务处理能力是最吸引人的特性之一。此外,它们还可以进行 zero-shot 或 few-shot 的学习来处理未见过的任务。

然而,在视觉领域的生成模型中,这种多任务处理能力并不突出。虽然文本描述提供了一种灵活的方式来控制生成的图像的内容,但它们在提供像素级的空间、结构或几何控制方面往往不足。最近热门研究例如 ControlNet,T2I-adapter 可以增强 Stable Diffusion Model (SDM) 来实现精准的控制。然而,与可以由 CLIP 这样的统一模块处理的语言提示不同,每个 ControlNet 模型只能处理其训练过的特定模态。

为了克服先前工作的限制,本文提出了 UniControl,一个能同时处理语言和各种视觉条件的统一扩散模型。UniControl 的统一设计可以享受到提高训练和推理效率以及增强可控生成的优点。另一方面,UniControl 从不同视觉条件之间的固有联系中获益,来增强每个条件的生成效果。

UniControl 的统一可控生成能力依赖于两个部分,一个是 “MOE-style Adapter”,另一个是 “Task-aware HyperNet”。MOE-style Adapter 有 70K 左右的参数,可以从各种模态中学习低级特征图,Task-aware HyperNet 可以将任务指令作为自然语言提示输入,并输出任务 embedding 嵌入下游的网络中,来调制下游模型的参数来适应不同模态的输入。

该研究对 UniControl 进行预训练,以获得多任务和 zero-shot 学习的能力,包括五个类别的九个不同任务:边缘 (Canny, HED, Sketch),区域映射 (Segmentation, Object Bound Box),骨架 (Human Skeleton),几何图 (Depth, Normal Surface) 和图片编辑 (Image Outpainting)。然后,该研究在 NVIDIA A100 硬件上训练 UniControl 超过 5000 个 GPU 小时 (当前新模型仍在继续训练)。并且 UniControl 展现出了对新任务的 zero-shot 适应能力。

该研究的贡献可以概括如下:

该研究提出了 UniControl,一个能处理各种视觉条件的统一模型 (1.4B #params, 5.78GB checkpoint),用于可控的视觉生成。

该研究收集了一个新的多条件视觉生成数据集,包含超过 2000 万个图像 - 文本 - 条件三元组,涵盖五个类别的九个不同任务。

该研究进行了实验,证明了统一模型 UniControl 由于学习了不同视觉条件之间的内在关系,超过了每个单任务的受控图像生成。

UniControl 表现出了以 zero-shot 方式适应未见过的任务的能力,展现了其在开放环境中广泛使用的可能性和潜力。

2. 模型设计

4666022e-056a-11ee-8a94-dac502259ad0.png

图 2: 模型结构。为了适应多个任务,该研究设计了 MOE-style Adapter,每个任务大约有 70K 个参数,以及一个任务感知 Task-aware HyperNet(约 12M 参数)来调制 7 个零卷积层。这个结构允许在一个单一的模型中实现多任务功能,既保证了多任务的多样性,也保留了底层的参数共享。相比于等效的堆叠的单任务模型(每个模型大约有 1.4B 参数),显著地减少了模型的大小。

UniControl 模型设计确保了两个性质:

1) 克服来自不同模态的低级特征之间的不对齐。这有助于 UniControl 从所有任务中学习必要的和独特的信息。例如,当模型将分割图作为视觉条件时,可能会忽略 3D 信息。

2) 能够跨任务学习元知识。这使得模型能够理解任务之间的共享知识以及它们之间的差异。

为了提供这些属性,模型引入了两个新颖的模块:MOE-style Adapter 和 Task-aware HyperNet。

MOE-style Adapter 是一组卷积模块,每个 Adapter 对应一个单独的模态,灵感来自专家混合模型(MOE),用作 UniControl 捕获各种低级视觉条件的特征。此适配器模块具有约 70K 的参数,计算效率极高。此后视觉特征将被送入统一的网络中处理。

Task-aware HyperNet 则是通过任务指令条件对 ControlNet 的零卷积模块进行调节。HyperNet 首先将任务指令投影为 task embedding,然后研究者将 task embedding 注入到 ControlNet 的零卷积层中。在这里 task embedding 和零卷积层的卷积核矩阵尺寸是对应的。类似 StyleGAN [4],该研究直接将两者相乘来调制卷积参数,调制后的卷积参数作为最终的卷积参数。因此每个 task 的调制后零卷积参数是不一样的,这里保证了模型对于每个模态的适应能力,除此之外,所有的权重是共享的。

3. 模型训练

不同于 SDM 或 ControlNet,这些模型的图像生成条件是单一的语言提示,或如 canny 这样的单一类型的视觉条件。UniControl 需要处理来自不同任务的各种视觉条件,以及语言提示。因此 UniControl 的输入包含四部分: noise, text prompt, visual condition, task instruction。其中 task instruction 可以自然的根据 visual condition 的模态得到。

4671e92c-056a-11ee-8a94-dac502259ad0.png

有了这样生成的训练配对,该研究采用 DDPM [5] 对模型进行训练。

4. 实验结果

467b724e-056a-11ee-8a94-dac502259ad0.png

图 6: 测试集视觉对比结果。测试数据来自于 MSCOCO [6] 和 Laion [7]

与官方或该研究复现的 ControlNet 对比结果如图 6 所示,更多结果请参考论文。

5.Zero-shot Tasks 泛化

模型在以下两个场景中测试 zero-shot 能力:

混合任务泛化:该研究考虑两种不同的视觉条件作为 UniControl 的输入,一个是分割图和人类骨骼的混合,并在文本提示中添加特定关键词 “背景” 和 “前景”。此外,该研究将混合任务指令重写为结合的两个任务的指令混合,例如 “分割图和人类骨骼到图像”。

新任务泛化:UniControl 需要在新的未见过的视觉条件上生成可控制的图像。为了实现这一点,基于未见过的和见过的预训练任务之间的关系估计任务权重至关重要。任务权重可以通过手动分配或计算嵌入空间中的任务指令的相似度得分来估计。MOE-style Adapter 可以与估计的任务权重线性组装,以从新的未见过的视觉条件中提取浅层特征。

可视化的结果如图 7 所示,更多结果请参考论文。

4687f992-056a-11ee-8a94-dac502259ad0.png

图 7: UniControl 在 Zero-shot tasks 上的可视化结果

6.总结

总的来说,UniControl 模型通过其控制的多样性,为可控视觉生成提供了一个新的基础模型。这种模型能够为实现图像生成任务的更高水平的自主性和人类控制能力提供可能。该研究期待和更多的研究者讨论和合作,以进一步推动这一领域的发展。

更多视觉效果

4693ca56-056a-11ee-8a94-dac502259ad0.png

46a4885a-056a-11ee-8a94-dac502259ad0.png

46bbc7d6-056a-11ee-8a94-dac502259ad0.png

46c622f8-056a-11ee-8a94-dac502259ad0.png

46de3ad2-056a-11ee-8a94-dac502259ad0.png

46e85544-056a-11ee-8a94-dac502259ad0.png

46f5df70-056a-11ee-8a94-dac502259ad0.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像
    +关注

    关注

    2

    文章

    1065

    浏览量

    40052
  • 模型
    +关注

    关注

    1

    文章

    2709

    浏览量

    47734
  • 数据集
    +关注

    关注

    4

    文章

    1179

    浏览量

    24366

原文标题:开源了!UniControl:可控视觉生成的统一扩散模型

文章出处:【微信号:CVer,微信公众号:CVer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于扩散模型的图像生成过程

    等很难用文本指定。   最近,谷歌发布了MediaPipe Diffusion插件,可以在移动设备上运行「可控文本到图像生成」的低成本解决方案,支持现有的预训练扩散模型及其低秩自适应(
    的头像 发表于 07-17 11:00 2125次阅读
    基于<b class='flag-5'>扩散</b><b class='flag-5'>模型</b>的图像<b class='flag-5'>生成</b>过程

    如何在PyTorch中使用扩散模型生成图像

    除了顶尖的图像质量,扩散模型还带来了许多其他好处,包括不需要对抗性训练。对抗训练的困难是有据可查的。在训练效率的话题上,扩散模型还具有可伸缩性和并行性的额外好处。
    发表于 11-22 15:51 339次阅读
    如何在PyTorch中使用<b class='flag-5'>扩散</b><b class='flag-5'>模型</b><b class='flag-5'>生成</b>图像

    鲁班,视觉生成引擎的应用

    Â使用场景lÂ技术框架和生产流程lÂ关键算法lÂ业务进展lÂ案例展示lÂ鲁班(新零售UED、淘宝技术部以及达摩院MIT共创的典型案例)lÂ前景展望 、定义、目标和愿景视觉生成的定义:可控
    发表于 04-28 15:36

    视觉词袋模型生成方法

    构建视觉词典是视觉词袋模型中的关键步骤,目前大多数视觉词典是基于k-means及其改进算法聚类生成。但由于k-means聚类的局限性以及样本
    发表于 03-20 15:09 1次下载
    <b class='flag-5'>视觉</b>词袋<b class='flag-5'>模型</b><b class='flag-5'>生成</b>方法

    扩散模型在视频领域表现如何?

    在视频生成领域,研究的一个重要里程碑是生成时间相干的高保真视频。来自谷歌的研究者通过提出一个视频生成扩散模型来实现这一里程碑,显示出非常有希
    的头像 发表于 04-13 10:04 1328次阅读

    如何改进和加速扩散模型采样的方法2

      事实上,扩散模型已经在深层生成性学习方面取得了重大进展。我们预计,它们可能会在图像和视频处理、 3D 内容生成和数字艺术以及语音和语言建模等领域得到实际应用。它们还将用于药物发现和
    的头像 发表于 05-07 14:38 2702次阅读
    如何改进和加速<b class='flag-5'>扩散</b><b class='flag-5'>模型</b>采样的方法2

    蒸馏无分类器指导扩散模型的方法

    去噪扩散概率模型(DDPM)在图像生成、音频合成、分子生成和似然估计领域都已经实现了 SOTA 性能。同时无分类器(classifier-free)指导进一步提升了
    的头像 发表于 10-13 10:35 868次阅读

    基于文本到图像模型可控文本到视频生成

    的文本到视频模型需要大量高质量的视频和计算资源,这限制了相关社区进一步的研究和应用。为了减少过度的训练要求,我们研究了一种新的高效形式:基于文本到图像模型可控文本到视频生成。这个任务
    的头像 发表于 06-14 10:39 597次阅读
    基于文本到图像<b class='flag-5'>模型</b>的<b class='flag-5'>可控</b>文本到视频<b class='flag-5'>生成</b>

    英特尔研究院发布全新AI扩散模型,可根据文本提示生成360度全景图

    for 3D)模型,这一全新的扩散模型使用生成式AI创建3D视觉内容。LDM3D是业界领先的利用扩散
    的头像 发表于 06-25 09:19 285次阅读

    英特尔研究院发布全新AI扩散模型,可根据文本提示生成360度全景图

    英特尔研究院宣布与Blockade Labs合作发布LDM3D(Latent Diffusion Model for 3D)模型,这一全新的扩散模型使用生成式AI创建3D
    的头像 发表于 06-30 19:50 239次阅读

    如何加速生成2 PyTorch扩散模型

    加速生成2 PyTorch扩散模型
    的头像 发表于 09-04 16:09 834次阅读
    如何加速<b class='flag-5'>生成</b>2 PyTorch<b class='flag-5'>扩散</b><b class='flag-5'>模型</b>

    CLE Diffusion:可控光照增强扩散模型

    本文提出了新型的可控光照增强框架,主要采用了条件扩散模型来控制任意区域的任意亮度增强。通过亮度控制模块(Brightness Control Module)将亮度信息信息融入Diffusion网络中,并且设计了和任务适配的条件控
    的头像 发表于 09-11 17:20 489次阅读
    CLE Diffusion:<b class='flag-5'>可控</b>光照增强<b class='flag-5'>扩散</b><b class='flag-5'>模型</b>

    DDFM:首个使用扩散模型进行多模态图像融合的方法

    近来去噪扩散概率模型 Denoising diffusion probabilistic model (DDPM)在图像生成中获得很多进步,通过对一张noise-corrupted图像恢复为干净图像的
    的头像 发表于 09-19 16:02 1695次阅读
    DDFM:首个使用<b class='flag-5'>扩散</b><b class='flag-5'>模型</b>进行多模态图像融合的方法

    基于DiAD扩散模型的多类异常检测工作

    现有的基于计算机视觉的工业异常检测技术包括基于特征的、基于重构的和基于合成的技术。最近,扩散模型因其强大的生成能力而闻名,因此本文作者希望通过扩散
    的头像 发表于 01-08 14:55 442次阅读
    基于DiAD<b class='flag-5'>扩散</b><b class='flag-5'>模型</b>的多类异常检测工作

    机器人基于开源的多模态语言视觉模型

    ByteDance Research 基于开源的多模态语言视觉模型 OpenFlamingo 开发了开源、易用的 RoboFlamingo 机器人操作
    发表于 01-19 11:43 131次阅读
    机器人基于<b class='flag-5'>开源</b>的多模态语言<b class='flag-5'>视觉</b>大<b class='flag-5'>模型</b>