MuLan:模仿人类画家的多对象图像生成

在图像生成领域,处理包含多个对象及其空间关系、相对大小、重叠和属性绑定的复杂提示时,现有的文本到图像模型仍面临挑战:当文本提示中包含多个对象,并且这些对象之间存在特定的空间关系时,现有模型往往难以准确地捕捉和表现这些复杂的场景。

例如,假设有一个文本提示是“一个橙色的南瓜放在黑色的门的右边”。对于这样的提示,现有的文本到图像(T2I)模型可能无法正确地将南瓜和门的相对位置以及属性(如颜色)表现出来。这主要是因为现有模型在空间推理能力上存在限制,并且它们与扩散模型的结合并不总是能够精确地理解和处理复杂的文本提示。

自香港科技大学、加州大学洛杉矶分校、宾夕法尼亚州立大学和马里兰大学的研究团队提出了一个无需训练的多模态大型语言模型(LLM)代理。MuLan的核心思想是将复杂的文本提示分解为一系列更简单的子提示,每个子提示只关注生成提示中的一个对象。这种方法模仿了人类画家的工作方式,即先制定一个高级的计划,然后逐步绘制每个对象,并在必要时进行修正。

MuLan生成的图像与其他几种方法生成的图像的对比

方法 

MuLan模型的架构,包括三个主要组件:LLM规划、单对象扩散与注意力引导,以及VLM反馈控制

如图1所示MuLan由三个主要部分组成:

  1. LLM规划(LLM planning):这部分涉及使用大型语言模型(LLM)来规划图像生成的总体布局。LLM负责将复杂的文本提示分解为一系列更易管理的子提示,每个子提示关注生成提示中的一个对象。

  2. 单一对象扩散与注意力引导(Single-object diffusion with attention guidance):在这一步,MuLan集中于根据子提示和之前已生成的对象来生成一个单一的对象。LLM为新对象提供一个大致的布局规划,而注意力引导则确保对象在图像中的位置和形状精确,通过提供一个准确的掩码来实现。

  3. VLM反馈控制(VLM-feedback control):这是MuLan中的一个反馈循环机制,使用视觉-语言模型(VLM)来评估当前生成步骤的结果,并与原始文本提示进行对比。如果发现任何偏差或错误,VLM将提供反馈,MuLan据此调整扩散模型的超参数,以重新生成图像,确保每一步的生成结果都尽可能地符合原始提示的要求。

研究者设计的MuLan系统利用LLM的高级语言理解能力,自动地从原始文本提示中识别出各个对象,并确定它们在图像中的相对位置和顺序。这一过程模仿了人类画家在开始绘画前制定计划的方式,LLM根据预定义的空间顺序——从左到右、从下到上——来组织对象,确保生成的图像布局合理且符合人类的直观感受。

为了实现这一目标,研究者为LLM提供了一个明确的任务描述,指导模型将文本提示中的对象按照绘画的顺序进行排列。LLM根据这个描述,生成一个对象列表,这个列表决定了在图像生成过程中各个对象的创建顺序。这个过程不仅需要LLM理解文本中的对象和它们的关系,还需要它能够预测并规划出这些对象在最终图像中的布局。

研究者还为LLM设计了一套模板,用于在生成过程中对每个对象的大致位置和大小进行规划。这包括确定对象是在另一个对象的左边、右边、上方或下方,以及估计对象的数量。通过这种方式,MuLan能够在生成每个对象之前,就对它们在图像中的分布有一个初步的规划。

MuLan 利用大型语言模型(LLM)规划和注意力引导来逐步生成图像过程开始于LLM规划的粗略掩码,该掩码定义了新对象在图像中的预期位置和大小。这个掩码基于LLM对对象相对位置的规划,考虑到图像中当前可用的空间。例如,如果前一个对象已经放置在图像的左侧,LLM将决定新对象的位置,可能是在右侧或者上方,并估计对象的尺寸。

接下来,MuLan使用稳定扩散模型在由注意力掩码定义的边界框内生成对象。注意力引导在这一步骤中发挥了至关重要的作用,它确保了对象在生成过程中能够被精确地定位。就是说MuLan利用反向引导方法,通过调整扩散模型的输入潜在表示,来引导对象在图像中的正确位置生成。

MuLan还考虑了对象间的重叠问题。在生成新对象时,如果LLM判断存在与前一个对象的重叠,MuLan会计算几个候选的粗略掩码,这些掩码对应不同的重叠比例。然后,MuLan会使用这些掩码生成几个候选图像,并通过计算输入提示与生成图像之间的一致性得分来选择最佳图像。

最后,MuLan通过视觉-语言模型(VLM)进行反馈控制,以确保生成的每个对象都与原始文本提示保持一致。如果在任何生成阶段检测到错误,VLM将提供反馈,MuLan据此调整扩散模型的参数,重新生成对象。

MuLan在第n阶段生成单个对象objn时的流程,包括LLM规划粗糙掩码、注意力引导和单对象扩散

MuLan在生成每个对象后,会利用VLM对生成的图像进行评估。VLM的作用是提供对当前生成步骤的反馈,确保图像中的对象与原始文本提示保持一致。如果VLM检测到生成的对象与预期不符,比如对象的位置、大小或属性与文本描述不匹配,它将向MuLan提供反馈,指出需要调整的地方。

基于VLM的反馈,MuLan可以调整扩散模型的超参数,对图像进行重新生成。这个过程可以重复进行,直到生成的图像满足文本提示的要求。这种自适应的反馈和调整机制是MuLan系统的核心特点之一,它使得系统能够持续优化生成结果,提高图像的准确性和真实性。

除了与VLM的交互外,MuLan还考虑了人类用户的参与。在实际应用中,人类用户可能希望对生成过程进行监督或提出特定要求。MuLan的设计允许人类用户在生成过程中提供输入,比如调整文本提示或对生成的图像给出评价。这种用户交互可以进一步提高生成图像的满意度,并使MuLan更加灵活和适应不同的应用场景。

如何根据前一个生成的对象objn−1的精确掩码来计算当前对象objn的粗糙掩码

 实验

研究者为了评估MuLan框架,构建了一个由不同基准测试组成的提示数据集。这个数据集专注于生成包含多个对象、空间关系和属性绑定的复杂提示。研究者首先从T2I-CompBench收集了所有复杂的空间提示,并通过ChatGPT生成了约400个具有不同对象、空间关系和属性绑定的提示,使提示集包含约600个提示。为了进一步评估框架在极其复杂和困难的提示上的能力,研究者手动添加了SDXL无法生成的提示,形成了包含200个提示的困难提示数据集。

作为一个无需训练的框架,MuLan可以集成到任何现有的扩散模型中。研究者评估了两种稳定扩散模型与MuLan框架的结合效果,包括Stable Diffusion v1.4和最先进的Stable Diffusion XL。为了验证MuLan的优越性,研究者将其与先前的可控生成方法和通用T2I生成方法进行了比较,包括Structure Diffusion、Promptist、原始的Stable Diffusion v1.4、原始的SDXL和最近的SOTA扩散模型PixArt-α。

MuLan使用GPT-4作为LLM规划器,并使用LLaVA-1.5作为VLM检查器提供反馈。研究者还进行了消融研究,以展示VLM提供的反馈控制在所提出的框架中的重要性,以及不同VLM的影响。研究者发现在注意力引导过程中使用的注意力块至关重要,这些块可以被分类为近输入块、近中间块和近输出块。在主要实验中,研究者使用了近中间块,并展示了不同块的消融结果。

由于提示数据集包含具有复杂组成的文本,研究者设计了一个问卷,全面调查生成图像与相应输入文本之间的一致性。问卷由三个方面组成 - 对象完整性、属性绑定的正确性以及空间关系的准确性。对于每个问题,研究者只设置了两个选项(是或否),没有歧义。研究者使用问卷询问最新一代的多模态大型语言模型(GPT-4V)和人类评估者对生成图像的质量进行评估。

研究者使用GPT-4V对不同方法和不同基础模型生成的图像进行了评估结果显示,MuLan框架在与其他可控生成方法和T2I生成方法相比时,能够实现最佳性能。特别是在属性绑定和空间关系的两个“更难”方面,MuLan能够以较大优势超越其他方法。

不同方法生成的图像在GPT-4V评估和人类评估下的性能对比
由不同方法生成的图像的更多定性结果
不同注意力块对扩散生成过程中性能的影响

研究者从提示数据集中随机抽取了50个提示,用于消融研究中的所有实验。研究者发现,近中间块在生成控制和性能方面能够实现最佳结果,通常包含最丰富的语义信息。

VLM反馈控制是MuLan中提供反馈和调整生成过程以确保每个阶段正确生成的关键组件。研究者展示了通过从整个框架中移除反馈控制的重要性。结果显示,如果没有反馈控制,结果会大大恶化,因为没有保证或适应性调整每个生成阶段,这验证了VLM提供的反馈控制对于处理复杂提示至关重要。

有无VLM反馈控制在MuLan性能上的差异
在MuLan中使用不同VLM对性能的影响

实验表明,MuLan优于先前的方法,展示了MuLan作为可控扩散生成新范式的潜力。

在MuLan模型中使用不同视觉-语言模型(VLM)对整体性能的影响

尽管MuLan取得了显著的成果,但仍存在需要在未来工作中进一步解决的局限性。由于整个生成包含多个阶段,根据对象的数量,它将比单阶段生成方法需要更长的时间。另一方面,LLM规划器可能会错误地解析输入提示,导致错误的分解。这可以通过首先通过LLM重写输入提示来解决,以便于后续处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式c语言4——类型修饰符

register,将变量保存在寄存器中,使得访问速度增加 const是常量,static是静态量,volatile是

从0-1实现一个前端脚手架

https://gitee.com/childe-jia/kfc-cli.git gitee完整地址 介绍 为什么需要脚手架? 脚手架本质就是一个工具,作用是能够让使用者专注于写代码,它可以让我们只用一个命令就生成一个已经配置好的项目,而不用我们再花时间去配置和安…

zabbix 与 grafana 对接

一.安装 grafana 1.初始化操作 初始化操作 systemctl disable --now firewalld setenforce 0 vim /etc/selinux/config SELINUXdisabled 2.上传数据包并安装 cd /opt grafana-enterprise-9.4.7-1.x86_64.rpm #上传软件包 yum localinstall -y grafana-enterprise-9.4.7-1…

Javascript常见数据结构和设计模式

在JavaScript中,常见的数据结构包括两大类:原始数据类型(Primitive Types)和对象类型(Object Types)。对象类型又可以进一步细分为多种内置对象、数组、函数等。下面是一些JavaScript中常见的数据结构&…

PyFluent入门之旅(4)算例求解

在网格划分完成或已有网格的情况下,可以进行算例的求解。 1. 切换/打开求解器 一般启动求解器前有两种情况: 已启动FluentMeshing并生成了网格,需要在不退出FluentMeshing的情况下直接切换至Fluent求解器。已经有现成的网格文件&#xff0…

检测到弱密码:并非所有密码套件均支持完全前向保密解决方案

问题 检测到弱密码:并非所有密码套件均支持完全前向保密(弱密码套件 - ROBOT 攻击:服务器支持易受攻击的密码套件) 背景介绍 HTTP 协议自身没有加密机制,但可以通过与 TLS (Transport Layer Security) / SSL (Secur…

【AI资讯】快手 可灵web端上线

可灵 AI – 新一代 AI 创意生产力平台 快手 可灵web端上线了,目前登录即可用,感兴趣可以试试。

90元搭建渗透/攻防利器盒子!【硬件篇】

前言 以下内容请自行思考后进行实践。 使用场景 在某些情况下开软件进行IP代理很麻烦,并不能实现真正全局,而且还老容易忘记,那么为了在实景工作中,防止蓝队猴子封IP,此文正现。 正文 先说一下实验效果&#xff1…

53-1 内网代理3 - Netsh端口转发(推荐)

靶场还是用上一篇文章搭建的靶场 :52-5 内网代理2 - LCX端口转发(不推荐使用LCX)-CSDN博客 一、Netsh 实现端口转发 Netsh是Windows自带的命令行脚本工具,可用于配置端口转发。在一个典型的场景中,如果我们位于公网无法直接访问内网的Web服务器,可以利用中间的跳板机通过…

【LeetCode】十三、分治法:多数元素 + 最大子序列和

文章目录 1、分治法2、leetcode169:多数元素3、leetcode53:最大子序和 1、分治法 分治一般都搭配递归使用: 用分治法的一个应用——归并排序:将一组数不停的一分为二,直到分到每组只有一个数的时候 分到每组只有一个数…

Python28-7.5 降维算法之t-分布邻域嵌入t-SNE

t-分布邻域嵌入(t-distributed Stochastic Neighbor Embedding,t-SNE)是一种用于数据降维和可视化的机器学习算法,尤其适用于高维数据的降维。t-SNE通过将高维数据嵌入到低维空间(通常是二维或三维)中&…

Edge浏览器油猴插件的安装与使用

油猴 (又称篡改猴或Tampermonkey) 是最流行的浏览器扩展之一。它允许用户自定义并增强网页的功能。用户脚本是小型 JavaScript 程序,可用于向网页添加新功能或修改现有功能。使用油猴,您可以轻松在任何网站上创建、管理和运行这些用户脚本。 1.插件的安…

【数据结构与算法】希尔排序

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法》 期待您的关注 ​

关于新装Centos7无法使用yum下载的解决办法

起因 之前也写了一篇类似的文章,但感觉有漏洞,这次想直接把漏洞补齐。 问题描述 在我们新装的Centos7中,如果想要用C编程,那就必须要用到yum下载,但是,很多新手,包括我使用yum下载就会遇到一…

mupdf加载PDF显示中文乱码

现象 加载PDF显示乱码,提示非嵌入字体 non-embedded font using identity encoding调式 在pdf-font.c中加载字体 调试源码发现pdf文档的字体名字居然是GBK,估计又是哪个windows下写的pdf生成工具生成pdf 字体方法: static pdf_font_desc * load_cid…

用QFramework重构飞机大战(Siki Andy的)(下01)(06-0? 游戏界面及之后的所有面板)

GitHub // 官网的 全民飞机大战(第一季)-----框架设计篇(Unity 2017.3) 全民飞机大战(第二季)-----游戏逻辑篇(Unity 2017.3) 全民飞机大战(第三季)-----完善…

Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇

Nginx七层(应用层)反向代理 HTTP反向代理proxy_pass篇 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of thi…

Python3极简教程(一小时学完)中

异常 在这个实验我们学习 Python 的异常以及如何在你的代码中处理它们。 知识点 NameErrorTypeError异常处理(try..except)异常抛出(raise)finally 子句 异常 在程序执行过程中发生的任何错误都是异常。每个异常显示一些相关…

fasttext工具介绍

fastText是由Facebook Research团队于2016年开源的一个词向量计算和文本分类工具。尽管在学术上并未带来巨大创新,但其在实际应用中的表现却非常出色,特别是在文本分类任务中,fastText往往能以浅层网络结构取得与深度网络相媲美的精度&#x…

Maven一键配置阿里云远程仓库,让你的项目依赖飞起来!

文章目录 引言一、为什么选择阿里云Maven仓库?二、如何设置Maven阿里云远程仓库?三、使用阿里云Maven仓库的注意事项总结 引言 在软件开发的世界里,Maven无疑是一个强大的项目管理工具,它能够帮助我们自动化构建、依赖管理和项目…