【论文笔记-ECCV 2024】AnyControl:使用文本到图像生成的多功能控件创建您的艺术作品
AnyControl:使用文本到图像生成的多功能控件创建您的艺术作品

图1 AnyControl的多控制图像合成。该研究的模型支持多个控制信号的自由组合,并生成与每个输入对齐的和谐结果。输入到模型中的输入控制信号以组合图像显示,以实现更好的可视化。
摘要:近年来,文本到图像(T2I)生成领域取得了重大进展,主要是由扩散模型的进步驱动的。语言控制使有效的内容创建成为可能,但对图像生成的细粒度控制却很困难。在很大程度上,通过结合额外的用户提供的空间条件(如深度图和边缘图),然而,多控制图像合成仍然面临着一些挑战。具体而言,现有方法在处理不同输入控制信号的自由组合方面受到限制,忽略了多个空间条件之间的复杂关系,并且通常无法保持与提供的文本提示语义对齐。这可能导致次优的用户体验。为了解决这些挑战,该研究提出了AnyControl,一个多控制图像合成框架,支持各种控制信号的任意组合。AnyControl开发了一种新颖的多控制编码器,提取统一的多模态嵌入来指导生成过程。这种方法能够全面理解用户输入,并生成高质量,通过大量的定量和定性评估,在多功能控制信号下获得可靠的结果。该研究的项目页面可在https://any-control.github.io上找到。
关键词:可控图像合成·多控制·文本到图像
主要挑战:多控制图像合成的任务在以下方面仍然具有挑战性:(1)适应输入条件的自由组合,(2)建模多个空间条件之间的复杂关系,以及(3)保持与文本提示的兼容性。该研究将这三个挑战分别称为输入灵活性、空间兼容性和文本兼容性。
输入灵活性。第一个挑战来自基于用户需求的可用控制信号的任何组合。用户提供的控制信号的数量和模态是变化的,对模型的输入灵活性提出了很高的要求。然而,现有方法通常采用固定长度的输入通道,限制了它们适应不同输入的能力。其他方法采用MoE设计来解决变数条件,这可能导致在处理不可见的输入组合时出现不可预见的伪影。
空间兼容性。第二,控制信号不是孤立的;考虑这些控制信号之间的关系是至关重要的,特别是在管理多个空间条件之间的遮挡时。不幸的是,当前的算法通常通过加权求和和手工权重来组合多个条件,容易导致不期望的混合结果,或者甚至导致低响应控制信号在处理阻塞时消失。
文本兼容性。最终,文本兼容性成为影响用户体验的一个重要因素。通常,文本管理生成图像的内容,而空间条件补偿结构信息。然而,文本和空间条件之间缺乏通信通常导致当前算法优先考虑适应空间条件,从而忽视文本提示的影响。
研究概述:综上所述,生成既满足文本提示又满足多种空间条件的全面和谐的结果是多控制图像合成的一个重大挑战,为了解决输入灵活性、空间兼容性和文本兼容性的挑战,该研究提出了AnyControl,一个支持多种控制信号任意组合的可控图像合成框架。
AnyControl的核心是Multi-Control Encoder,它在确保连贯、空间和语义对齐的多模态嵌入方面发挥着至关重要的作用。这个新颖的组件允许AnyControl从各种控制信号中提取统一的表示,从而实现真正通用和高性能的多控制图像合成框架。
具体来说,多控制编码器由多控制融合(multi-control fusion)模块和多控制对齐(multi-control alignment)模块轮流驱动,并通过一组query tokens将两者无缝地统一起来。
多控制融合模块通过query tokens聚合来自多个空间条件的兼容信息,并对query tokens和从预训练的视觉编码器中提取的空间条件视觉tokens进行交叉注意力Transformer计算,从而将丰富的空间可控信息传递给query tokens,并将其用于多控制对齐模块.
多控制对齐通过将所有其他控制信号对齐到文本信号来保证所有形式的控制信号之间的兼容性,在query tokens和文本tokens上使用自注意Transformer块。query tokens包含空间可控信息,文本tokens包含语义信息,通过query tokens和文本tokens之间的信息交换,两种tokens都能表示兼容的多模态信息。
通过交替的多控制融合和对齐块,query tokens实现了对来自多个用户输入的高度对齐和兼容信息的全面理解。这种能力使该研究的方法能够处理条件之间的复杂关系,并保持与文本提示的强兼容性。因此,这种方法促进了对生成的图像的更平滑和和谐的控制。此外,具有注意机制的Transformer块固有地擅长于适应各种控制信号,并且因此使得能够自由组合用户输入。
主要贡献:
-
AnyControl提出了一种新的多控制编码器,包括一系列替代多控制融合和对齐块,以实现对复杂的多模态用户输入的全面理解。
-
AnyControl支持用户输入的灵活组合,无论不同控制信号的数量和形式如何。
-
AnyControl产生更和谐、更自然的高质量结果,展示了多控制图像合成的最新性能。

图2 AnyControl和多控件编码器。左显示了该研究的AnyControl的整体框架,它开发了一个多控件编码器,用于基于文本提示和多个空间条件提取全面的多控件嵌入。然后利用多控件嵌入来指导生成过程。右图显示了该研究的多控制编码器的详细设计,该编码器由交替的多控制融合和对齐块驱动,其中定义了query tokens,以从空间条件的文本tokens和视觉tokens中提取兼容信息。
AnyControl
Multi-Control Encoder 与ControlNet类似,在该研究的AnyControl中,该研究也锁定了预先训练好的稳定扩散模型,并设计了一个Multi-Control Encoder来理解复杂的控制信号。该研究首先获得三种类型的tokens,即文本tokens-T,视觉tokens-V和query tokens-Q。文本tokens是在文本提示时从CLIP文本编码器中提取的,而视觉tokens是从预先训练的视觉编码器获得的(例如,CLIP图像编码器)。query tokens被定义为一组可学习的参数。为了解决引言中讨论的三个挑战,即,输入灵活性,为了兼顾空间兼容性和文本兼容性,该研究设计了一种多控制编码器,它通过交替使用多控制融合块和多控制对齐块来实现。
多控制融合 多控制融合块旨在从各种空间条件中提取兼容的信息。这是通过利用交叉注意Transformer块来实现的,以促进所有空间条件的query tokens和视觉tokens之间的交互。

多控制对齐 虽然各种可控信息被集成到query tokens中,但是由于缺乏指示空间条件之间的关系的全局条件,因此推断重叠区域内的空间控制信号的优先级是具有挑战性的。幸运的是,文本提示可以用作调节生成的图像的内容的全局控制。因此,在多控制对齐块中,该研究使用自我注意力转换器(self-attention Transformer)块来促进query tokens和文本tokens之间的交互。在将文本提示编码为tokens之前,该研究在用户提供的文本的尾部添加文本任务提示,以解决不同空间条件之间的模态差异。然后该研究将query tokens-Q和文本tokens-T连接在一起,并执行自我注意力转换:

交替融合和对齐 为了确保所有控制信号的信息对齐和兼容,该研究交替使用多控制融合和对齐块进行多轮。值得注意的是,该研究使用多级视觉tokens进行细粒度的空间控制。具体来说,在每一轮中,交叉注意Transformer块中消耗的视觉tokens从预训练的视觉编码器的不同级别中提取,考虑到空间条件在控制层次上的多样性,即布局控制(如分割图)和结构控制(如边缘图),因此,多级视觉标记对于不同深度的多控制融合块是必要的。
AnyControl的优势 query tokens充当桥梁,无缝地将两种类型的块联合起来。经过几个回合后,query tokens保留对齐良好的组合信息,作为用户输入的统一多模态表示。该设计使AnyControl能够在遮挡的情况下进行多控制图像合成,生成具有高空间和文本兼容性的高质量和谐结果。该研究的多控制编码器共享一个类似的想法Q-Former,然而,AnyControl包含许多用于多控件图像合成的专用设计,如附加的文本任务提示,跨所有条件的额外共享位置嵌入和多层次视觉tokens的使用。在实现中,为了节省计算成本,该研究在每两个自注意块之后插入交叉注意块。该研究的AnyControl的另一个天然优势在于输入的灵活性。AnyControl利用具有注意力机制的Transformer块,在容纳用户输入的自由组合方面具有天然的优势。以往的方法要么采用定长输入通道设计,要么采用MoE结构设计,如图3所示。前者限制了用户输入的自由度,而后者,即MoE设计,支持将灵活的输入与手工制作的加权求和相结合,从而导致费力地调整组合权重。
图3 三种多控制方式。不同颜色的方块表示不同的条件类型,虚线方块表示零张量。(a)采用输入卷积层的固定长度通道,然后是几个卷积块作为Multi-Control Encoder。(b)采用MoE设计,即对每种控制信号分别构造编码器,然后通过加权求和得到嵌入。©与它们不同的是,AnyControl采用注意机制来适应条件的数量和形式的变化。“SAB”和“CAB”分别表示自我和交叉注意块。

数据集
该研究采用训练数据集MultiGen进行中提出的多控制图像合成。该数据集基于美学评分在6分以上的LAION[37]。去除低分辨率图像,最终保留280万张图像。采用不同的方法提取控制信号。不幸的是,训练时的空间条件与推理时的空间条件的组合存在领域差距,即在训练时,从同一幅图像中提取的所有空间条件都是完全对齐的,而从用户那里接受的多个空间条件则不是这样。用户提供的条件通常有多个图像源,因此提取的空间条件并不总是对齐的,有时在重叠区域有遮挡,这就要求模型根据目标场景的深度正确排列处理空间条件。为了消除这种差异,该研究收集了未对齐数据的子集,如图4所示。具体来说,该研究利用Open images数据集和MSCOCO数据集中对象丰富的图像来制作合成数据。给定图像和前景对象的蒙版,该研究使用补图工具用蒙版区域恢复背景图像。该研究丢弃对象太小或太大的图像,最终产生0.44M图像作为补充的未对齐训练数据。

在合成未对齐数据集的制作过程中,该研究利用面积比为[0.1,0.4]的groudtruth对象掩模来勾勒前景对象,而过小或过大的对象将导致不希望恢复的背景图像。PowerPaint是一个多任务绘制模型,支持文本引导的对象绘制、上下文感知的图像绘制以及对象删除。在这里,该研究采用“对象移除”模式来进行非对齐数据的构建。图11显示了合成未对齐数据的更多可视化效果。

实验细节
训练策略 在利用未对齐数据进行训练时,该研究将前景目标和所绘制的背景图像的空间条件组合在一起,同时将原始图像作为目标。在训练过程中,对于空间条件完全对齐的数据,该研究为每个训练样本随机选取两个条件;对于合成的未对齐数据,该研究分别为前景对象和背景嵌入图像随机选择一个条件。该研究以0.05的速率随机丢弃所有条件,使分类器能够自由引导,并且以0.05的速率随机丢弃文本提示,让模型只从纯空间条件中学习
网络 AnyControl的详细结构如图10所示。该研究基于1.5版本的Stable Diffusion来构建AnyControl。与ControlNet类似,该研究在完全冻结稳态扩散模型的预训练权值的同时,对UNet编码块进行可训练拷贝,以适应控制信息。在该研究的多控制编码器中,query tokens的数量设置为256,从而可以提取详细的可控信息。与query tokens长度相同的附加位置嵌入由所有输入空间条件共享。该研究将QFormer的预训练权值作为Multi-Control Encoder的初始化,除了query tokens和附加的位置嵌入是随机初始化的。
超参数 该研究在8个A100 GPU卡上训练AnyControl,每个GPU上的批处理大小为8。该研究训练模型总共90K次迭代,初始学习率为1e-5。在推理过程中,该研究将classifier-free guidance scale设置为7.5。在所有的实验中,该研究都采用了50个时间步长的DDIM采样器。

结果展示


研究不足
虽然在AnyControl中不限制空间条件的输入数量,但容易导致过多空间条件下的混色缺失问题。观察图9所示,当空间条件的数量过大时,例如在本例中为8。可能的原因是:1)CLIP文本编码器在理解概念众多的复杂文本提示时能力有限;2)交叉注意变压器块中过多的视觉标记导致softmax的精度降低,从而削弱了精确多控制理解中的AnyControl。

其他内容
手工重量调整器 如图12所示,手工制作权值的多控制方法,即Multi-ControlNet,通常需要根据合成结果进行一系列费力的权值调整,而该研究的方法可以自动推断组合权值并提取统一的多控制嵌入,从而产生和谐的结果。

多层次视觉Tokens 尽管来自预训练的视觉编码器的最后一个transformer块的视觉tokens已经聚合了丰富的信息,但它们还不够。
该研究逐渐使视觉tokens从最深的层次到最浅的层次细粒度可控信息。该研究对从视觉编码器到多控制编码器所使用的视觉tokens的水平进行了消融实验。表4表明,从中间层集成更多的可视化tokens会增加FID,并在第4层遇到性能饱和。
深的层次到最浅的层次细粒度可控信息。该研究对从视觉编码器到多控制编码器所使用的视觉tokens的水平进行了消融实验。表4表明,从中间层集成更多的可视化tokens会增加FID,并在第4层遇到性能饱和。

相关文章:
【论文笔记-ECCV 2024】AnyControl:使用文本到图像生成的多功能控件创建您的艺术作品
AnyControl:使用文本到图像生成的多功能控件创建您的艺术作品 图1 AnyControl的多控制图像合成。该研究的模型支持多个控制信号的自由组合,并生成与每个输入对齐的和谐结果。输入到模型中的输入控制信号以组合图像显示,以实现更好的可视化。 …...
计算机毕业设计 ——jspssm519Springboot 的幼儿园管理系统
作者:程序媛9688 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等。 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题)…...
山东大学软件学院人工智能导论实验之知识库推理
目录 实验目的: 实验代码: 实验内容: 实验结果 实验目的: 输入相应的条件,根据知识库推理得出相应的知识。 实验代码: def find_data(input_process_data_list):for epoch, data_process in enumerat…...
【Uniapp-Vue3】点击将内容复制到剪切板
具体使用方法在官网: uni-app官网https://uniapp.dcloud.net.cn/api/system/clipboard.html大致使用方法如下: // value是需要复制的值 function copyValue (value) { uni.setClipboardData({data: value,success: res>{// 复制成功逻辑},fail:err&…...
英伟达 Isaac Sim仿真平台体验【2】
一、产品基础信息 仿真平台:NVIDIA Isaac Sim 4.1.0硬件配置:NVIDIA RTX 4090 2 (24GB显存)核心特性: Omniverse内核的多GPU物理加速原生PyTorch/TensorFlow集成支持基于USD的场景构建体系 二、GPU加速仿真实战 ▶ 多球体跌落测试 操作步…...
低代码与开发框架的一些整合[3]
1.基本说明 审批流程是企业内部运营的运行流程,与业务板块进行关联,在企业数智化过程中启动业务串联的作用,与AI业务模型及业务agent整合后,将大大提升企业的运行效率以及降低运营风险。 近期对开源的近40个携带流程平台的项目进…...
deepseek-r1-centos-本地服务器配置方法
参考: 纯小白 Centos 部署DeepSeek指南_centos部署deepseek-CSDN博客 https://blog.csdn.net/xingxin550/article/details/145574080 手把手教大家如何在Centos7系统中安装Deepseek,一文搞定_centos部署deepseek-CSDN博客 https://blog.csdn.net/soso67…...
C语言实现通讯录项目
一、通讯录功能 实现一个可以存放100个人的信息的通讯录(这里采用静态版本),每个人的信息有姓名、性别、年龄、电话、地址等。 通讯录可以执行的操作有添加联系人信息、删除指定联系人、查找指定联系人信息、修改指定联系人信息、显示联系人信…...
Effective Java读书笔记 draft
一、创建和销毁对象 1、静态工厂方法代替构造器 class Person{//构造器public Person(){}//静态工厂方法public static Person getInstance(){return new Person();} } 优势:1、有名字,代码更容易阅读理解;2、不用每次被调用时都创建新对…...
DeepSeek 助力 Vue 开发:打造丝滑的滑块(Slider)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
wordpress使用CorePress主题设置项总结
宝塔面板设置 软件商店中安装的软件有:(宝塔网站加速3.1)(Nginx 1.18.0)(MySql 5.6.50)(PHP-5.6)(phpMyAdmin 4.4)(Python项目管理器 …...
逆向pyinstaller打包的exe软件,获取python源码(6)
在ailx10:逆向pyinstaller打包的exe软件,获取python源码(3)中,我们逆向出了主程序,但是对其依赖的其他python文件并没有给出逆向方法,实际上非常简单,在PYZ-00.pyz_extracted 文件夹中,只要逆向…...
蓝桥杯 五子棋对弈
五子棋对弈 问题描述 “在五子棋的对弈中,友谊的小船说翻就翻?” 不!对小蓝和小桥来说,五子棋不仅是棋盘上的较量,更是心与心之间的沟通。这两位挚友秉承着"友谊第一,比赛第二"的宗旨ÿ…...
【单片机】MSP430MSP432入门
文章目录 0 前言1 开发方式选择2 CCS和开发相关软件3 Keil开发MSP4324 IAR for 430开发MSP4305 总结 0 前言 最近因为想学DSP,所以把之前卸载的CCS给装回来了,手头也还有之前电赛剩下的MSP430和MSP432的板子,由于年代久远,想着花点…...
货车一键启动无钥匙进入手机远程启动的正确使用方法
一、移动管家货车无钥匙进入系统的使用方法 基本原理:无钥匙进入系统通常采用RFID无线射频技术和车辆身份识别码识别系统。车钥匙需要随身携带,当车钥匙靠近货车时,它会自动与货车的解码器匹配。开门操作:当靠近货车后࿰…...
自学c++之类、对象、封装
class 类名{int a;//属性 public://权限操作; } 1、权限 public(公共权限)类内可以访问,类外可以访问protected(保护权限)类内可以访问,类外不可以访问(儿子可以访问父亲中的保护内容…...
在VSCode中安装jupyter跑.ipynb格式文件
个人用vs用的较多,不习惯在浏览器单独打开jupyter,看着不舒服,直接上教程。 1、在你的环境中pip install ipykernel 2、在vscode的插件中安装jupyter扩展 3、安装扩展后,打开一个ipynb文件,并且在页面右上角配置内核 …...
SQL_优化
1 SQL优化 (1) 数据读取 ①分区裁剪:使用时只读取需要的分区. ②列裁剪:读取操作(select、where、join、group by、sort by等),不读取不需要的列,减少IO消耗. (2) 数据筛选 ①分区先过滤,区分度大的字段先过滤. ②不在筛选字段上使用函数和表达式. (3) 分组聚合 ①使用窗口函数…...
Neo4j使用neo4j-admin导入csv数据方法
在neo4j desktop里创建project,创建dbms,创建database。 将csv文件放入如下import路径中,然后就可以使用相对路径来使用csv了。 在neo4j desktop中打开Terminal 键入导入数据语句: neo4j-admin database import full --nodes&qu…...
Node.js 登录鉴权
目录 Session express-session 配置 express-session 函数 ts 要配置声明文件 express-session.d.ts express-session 使用 express-session 带角色 Token 什么是 JWT token jsonwebtoken 使用 jsonwebtoken 带角色 Session express 使用 express-session 管理会话&…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
