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.rhkb.cn/news/371385.html

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

相关文章

土豆炒肉做法

菜单:土豆、葱、铁辣子、纯瘦肉、淀粉、生抽、酱油、刀、案板、十三香、盐巴、擦板 流程: 洗土豆,削皮,擦成条,用凉水过滤两遍淀粉,顺便放个燥里洗肉,切成条,按照生抽、酱油、淀粉、…

Maven依赖管理项目构建工具

目录 文章目录 目录一、Maven简介1、为什么学习Maven1.1、Maven是一个依赖管理工具1.2、Maven是一个构建工具1.3、结论2. Maven介绍3. Maven软件工作原理模型图(了解)二、Maven安装和配置1. Maven安装2. Maven环境配置3. Maven功能配置4. IDEA配置本地Maven软件三、基于IDEA创…

银行信用卡风险大数据分析与挖掘2024

银行信用卡风险大数据分析与挖掘 使用excel数据挖掘功能完成 一、信用卡客户信用等级影响因素分析与挖掘 基于客户信用记录表 1. 数据预处理 浏览数据 客户等级占比,其中优质客户占比较少,风险客户很多,分析影响客户信用等级的原因 年…

spring boot读取yml配置注意点记录

问题1:yml中配置的值加载到代码后值变了。 现场yml配置如下: type-maps:infos:data_register: 0ns_xzdy: 010000ns_zldy: 020000ns_yl: 030000ns_jzjz: 040000ns_ggglyggfwjz: 050000ns_syffyjz: 060000ns_gyjz: 070000ns_ccywljz: 080000ns_qtjz: 090…

ASRock Creator系列GPU:为AI推理及多GPU系统打造,采用16针电源接口的Radeon RX 7900系列显卡

ASRock 正在筹备推出专为人工智能推理和多GPU系统设计的AMD GPU——Creator系列显卡。这一系列显卡采用双槽位、吹风式设计,并配备16针电源连接器,首发产品包括基于Navi 31架构的AMD Radeon RX 7900XTX和RX 7900 XT型号。这些原属于WS系列的显卡最初在20…

C++初学者指南-5.标准库(第一部分)--迭代器

C初学者指南-5.标准库(第一部分)–迭代器 Iterators 文章目录 C初学者指南-5.标准库(第一部分)--迭代器 Iterators1.默认正向迭代器2.反向迭代器3.基于迭代器的循环4.示例:交换相邻的一对元素5.迭代器范围6.迭代器范围中的元素数量7. 总结:迭代器 指向某…

Sequelize 操作 MySQL 数据库

安装 npm install --save sequelize安装驱动程序: npm install --save mysql2连接到数据库 要连接到数据库,必须创建一个 Sequelize 实例. 这可以通过将连接参数分别传递到 Sequelize 构造函数或通过传递一个连接 URI 来完成: const {Sequelize} re…

【C++知识点总结全系列 (06)】:STL六大组件详细总结与分析- 配置器、容器、迭代器、适配器、算法和仿函数

STL六大组件目录 前言1、配置器(1)What(2)Why(3)HowA.调用new和delete实现内存分配与销毁B.STL Allocator (4)allocator类A.WhatB.HowC.allocator的算法 2、容器(1)What(2)Which(有哪些容器)(3)序列容器(顺序容器)A.WhichB.array&…

Vue+Xterm.js+WebSocket+JSch实现Web Shell终端

一、需求 在系统中使用Web Shell连接集群的登录节点 二、实现 前端使用Vue&#xff0c;WebSocket实现前后端通信&#xff0c;后端使用JSch ssh通讯包。 1. 前端核心代码 <template><div class"shell-container"><div id"shell"/>&l…

web缓存代理服务器

一、web缓存代理 web代理的工作机制 代理服务器是一个位于客户端和原始&#xff08;资源&#xff09;服务器之间的服务器&#xff0c;为了从原始服务器取得内容&#xff0c;客户端向代理服务器发送一个请求&#xff0c;并指定目标原始服务器&#xff0c;然后代理服务器向原始…

【NTN 卫星通信】Starlink基于终端用户的测量以及测试概述

1 概述 收集了一些starlink的资料&#xff0c;是基于终端侧部署在野外的一些测试以及测量结果。 2 低地球轨道卫星网络概述 低地球轨道卫星网络(lsn)被认为是即将到来的6G中真正实现全球覆盖的关键基础设施。本文介绍了我们对Starlink端到端网络特征的初步测量结果和观测结果&…

win11自动删除文件的问题,安全中心提示

win11自动删除文件的问题&#xff0c;解决方法&#xff1a; 1.点击任务栏上的开始图标&#xff0c;在显示的应用中&#xff0c;点击打开设置。 或者点击电脑右下角的开始也可以 2.点击设置。也可以按Wini打开设置窗口。 3.左侧点击隐私和安全性&#xff0c;右侧点击Windows安全…

尚品汇-(十四)

&#xff08;1&#xff09;提交git 商品后台管理到此已经完成&#xff0c;我们可以把项目提交到公共的环境&#xff0c;原来使用svn&#xff0c;现在使用git 首先在本地创建ssh key&#xff1b; 命令&#xff1a;ssh-keygen -t rsa -C "your_emailyouremail.com" I…

【SVN的使用-源代码管理工具-命令行的使用 Objective-C语言】

一、接下来,我们来说一个终端的命令行的使用, 1.我们说,你的电脑里边呢,有终端, 在Mac里边,你想新建一个txt,应该怎么写,对,打开文本编辑, 打开这个东西,写点儿东西,然后保存一下,保存的时候,你还要去选择格式, 现在,如果我们用命令行,可以更方便一些, 2.首…

数据结构(其一)--基础知识篇

1. 数据结构三要素 1.1 数据结构的运算 即&#xff0c;增删改查 1.2 数据结构的存储结构 2. 数据类型&#xff0c;抽象数据类型 数据类型&#xff1a; &#xff08;1&#xff09;. 原子类型&#xff1a;bool、int... &#xff08;2&#xff09;. 结构类型&#xff1a;类、…

【vue组件库搭建06】组件库构建及npm发包

一、格式化目录结构 根据以下图片搭建组件库目录 index.js作为入口文件&#xff0c;将所有组件引入&#xff0c;并注册组件名称 import { EButton } from "./Button"; export * from "./Button"; import { ECard } from "./Card"; export * fr…

ubuntu常用命令

常用命令 netstatpsps -auxps -eLf netstat netstat -tunlp这个命令用来显示网络连接、路由表和网络接口统计信息。 Proto (协议): 显示连接使用的协议&#xff0c;通常是 “tcp” 或 “udp”。 Recv-Q (接收队列): 表示接收缓冲区中未被进程读取的数据包数量。一般情况下&am…

qt6 通过http查询天气的实现

步骤如下&#xff1a; cmakelist 当中&#xff0c;增加如下配置 引入包 访问远端api 解析返回的数据 cmakelist 当中&#xff0c;增加如下配置&#xff0c;作用是引入Network库。 引入包 3、访问远端api void Form1::on_pushButton_clicked() {//根据URL(http://t.weather.…

【Linux】在线求助命令--help,man page , info page

我们知道Linux有很多的命令&#xff0c;那LInux要不要背命令&#xff1f; 答案是背最常用的那些就行了 那有的时候我们想查询一些命令的详细用法该怎么办呢&#xff1f; 这里我给出3种方法 1.--help --help的使用方法很简单啊 要查询的命令 --help 我们看个例子 这里我只…

利用 Hexo 搭建个人博客

〇、前言 本文将会讨论&#xff0c;如何将 CSDN 上的博客&#xff0c;拉取到本地&#xff0c;然后PicGo、Hexo、Github 等工具建立个人博客&#xff0c;环境为 Ubuntu 20.04。 一、利用 Hexo 预备工作 首先安装 Node.js、npm、git工具。 > node -v v12.22.9 > npm -…