(2024,CompAgent,LLM,提示分解,基于布局的对象组合)分而治之:语言模型可以规划和自我纠正组合文本到图像的生成

Divide and Conquer: Language Models can Plan and Self-Correct for Compositional Text-to-Image Generation

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

3. 方法

3.1 LLM 代理

3.2 无调整多概念定制

3.3 布局到图像生成

3.4 局部图像编辑

4. 结果


0. 摘要

尽管在文本生成高质量图像的模型方面取得了显著进展,但在复杂文本提示的情况下,这些方法仍然难以确保对图像的可控性,特别是在保留对象属性和关系方面。在这篇论文中,我们提出了CompAgent,这是一种无需训练的组合文本生成图像的方法,其核心是一个大型语言模型(LLM)代理。CompAgent 的基本思想是基于一种分而治之(divide-and-conquer)的方法。给定一个包含多个概念(包括对象、属性和关系)的复杂文本提示,LLM 代理首先对其进行分解,这包括提取单个对象、它们关联的属性以及预测一个连贯的场景布局。然后,这些单独的对象可以独立地被处理。随后,代理通过分析文本进行推理,规划并使用工具来组合这些孤立的对象。最后,我们将验证和人工反馈机制合并到我们的代理中,以进一步纠正潜在的属性错误并完善生成的图像。在 LLM 代理的指导下,我们提出了一个无微调多概念定制模型和一个布局到图像生成模型作为概念组合的工具,以及一个局部图像编辑方法作为与代理交互的工具进行验证。场景布局在这些工具之间控制图像生成过程,以防止在多个对象之间产生混淆。大量实验证明了我们的组合文本生成图像方法的优越性:CompAgent 在 T2I-CompBench 上实现了超过 10% 的改进,这是一个用于开放式世界组合 T2I 生成的综合基准。对各种相关任务的扩展也说明了我们的 CompAgent 在潜在应用方面的灵活性。

项目页面:https://zhenyuw16.github.io/CompAgent/

3. 方法

我们的 CompAgent 概述如图 3 所示。LLM 代理协调整个框架。它对复杂文本提示进行分解,分析文本中的属性,并设计要使用的工具的计划。最终,它调用工具来进行组合文本生成图像。

3.1 LLM 代理

我们的 LLM 代理的主要职责围绕执行任务,包括分解、规划、工具使用以及验证和反馈的实施。 

3.2 无调整多概念定制

在本节中,我们主要介绍我们的无调整多概念定制工具。其概述如图 4 所示。训练无调整定制图像生成模型通常需要进行大规模的预训练以进行主题表示学习。目前,已经有支持单概念定制的无调整方法可用。对于我们的方法,我们基于现有的单概念定制模型,BLIP-Diffusion [Li et al. 2023a],并通过引入场景布局扩展其能力,以适应多个概念。值得注意的是,我们通过融合场景布局,消除了对大规模上游预训练的需求,直接构建了一个无调整的多概念定制模型,以保持对象属性的完整性。

具体来说,对于每个概念,我们使用 BLIP-2 编码器和多模态编码器 [L i et al. 2023b] 提取其主题提示嵌入。为了全面了解准确的对象属性,我们利用与单个概念对应的多个图像中包含的信息。我们收集从这些图像中派生的所有嵌入,并计算它们的平均值,生成用于后续使用的明确定义的主题提示嵌入。它们与文本提示嵌入连接,并传递到单概念定制模型的 U-Net [L i et al. 2023a] 进行图像生成。

然而,直接聚合来自多个概念的嵌入很容易导致在图像生成过程中不同对象之间的干扰,从而产生概念混淆问题。为了避免这种情况,我们利用场景布局来调节每个对象的位置,从而减轻它们之间干扰的风险。我们采用两个级别的布局控制 - 全局和局部。

如图 4 顶部所示,我们对 COCO 数据集 [Lin et al. 2014] 的背景进行掩蔽,并通过布局到图像范式训练 ControlNet [Zhang et al. 2023]。通过残差,ControlNet 被用于控制 U-Net。它在全局级别提供强大的控制,有效区分多个对象,因此很好地避免它们之间的混淆。然而,它只能进行全局控制,无法独立控制每个单独的对象的位置。

为了分别进行个体对象的局部布局控制,我们进一步建议根据场景布局编辑交叉注意力图,这是因为交叉注意力图直接影响生成图像的空间布局 [Hertz et al. 2023]。具体而言,我们收集每个对象词及其属性词的交叉注意力图。我们在与对象存在的区域添加正常数 𝛼+,同时在其余区域添加负常数 𝛼−。与 ControlNet 相比,交叉注意力编辑实现了明显较弱的布局控制,但可以独立管理每个对象的位置。因此,当与 ControlNet 协同集成时,它有效地控制整个图像的总体布局。最终,在布局的指导下,不同的对象可以互相区分,避免混淆问题,实现多概念定制。

3.3 布局到图像生成

为了保证对象之间的关系,我们直接从场景布局生成图像。虽然我们之前采用的 ControlNet 和交叉注意力编辑方法确实可以解决布局到图像的问题,但它们的特点是对布局施加了太强的约束。一旦场景布局偏离了对对象关系的精确描述,就变得难以确保对这些关系的准确表示。因此,我们通过反向传播限制框损失(box-constrained loss) [Xie et al. 2023] 的潜在更新策略进行从布局生成图像。它对布局提供相对宽松的控制,因此可以灵活地确保对象之间的关系。

3.4 局部图像编辑

为了纠正具有错误属性的对象,我们引入了我们的局部图像编辑工具,如图 5 所示。通过向我们的LLM 代理查询进行验证,我们可以确定哪些对象属性是错误的并需要修改。我们利用 Grounding DINO [Liu et al. 2023c] 和 SAM [Kirillov et al. 2023] 的组合来分割对象。生成的分割掩模用于交叉注意力编辑,为图像编辑提供位置指导。需要编辑的图像通过 DDIM 反演重新转换为潜在,作为后续图像生成过程的初始潜在。具有正确属性特征的对象的图像已经在先前生成过。这些图像与文本提示一起,以类似于先前定制模型的方式进行处理,作为 U-Net 的条件输入。图像生成的过程通常遵循先前的多概念定制,其中图像 DDIM 反演作为初始潜在。分割掩模用作交叉注意力编辑的指导,而不使用 ControlNet。通过这种方式,具有错误属性的对象可以得到有效替代和纠正。

4. 结果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Golang 流媒体服务器lalserver使用指南

目录 安装 使用 1.推流 2.播放 官方地址 安装 1.下载源码 wget https://github.com/q191201771/lal/releases/download/v0.36.7/lal_v0.36.7_linux.zipunzip lal_v0.36.7_linux.zip cd lal_v0.36.7_linux 2.启动 ./bin/lalserver -c ./conf/lalserver.conf.json 使用 …

C语言第十三弹---VS使用调试技巧

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 VS调试技巧 1、什么是bug 2、什么是调试(debug)? 3、Debug和Release​编辑​ 4、VS调试快捷键 4.1、环境准备 4.2、调试…

java.util.LinkedHashSet cannot be cast to java.util.List 的解决方案

出现 “java.util.LinkedHashSet cannot be cast to java.util.List” 的错误,通常是因为你试图将一个 LinkedHashSet 对象直接强制转换为 List 类型。在 Java 中,LinkedHashSet 和 List 是两种不同的集合类型,不能直接进行转换。LinkedHashS…

小白水平理解面试经典题目LeetCode 455 Assign Cookies【Java实现】

455 分配cookies 小白渣翻译: 假设你是一位很棒的父母,想给你的孩子一些饼干。但是,你最多应该给每个孩子一块饼干。 每个孩子 i 都有一个贪婪因子 g[i] ,这是孩子满意的 cookie 的最小大小;每个 cookie j 都有一个…

sv program module

为了避免races,在验证中引入program; Similarities between program and module block A program block can instantiate another program block in the way how the module is instantiated another module block.Both can have no or more inputs, …

知识推理的多重途径

目录 前言1 逻辑及推理简介2 演绎推理:Top-Down Logic2.1 肯定前件假言推理2.2 否定后件假言推理2.3 演绎推理的逻辑链条 3 归纳推理:Bottom-Up Logic3.1 从特例到一般3.2 逐步推导的过程 4 溯因推理:结果的可解释逻辑4.1 推断过程的回溯4.2 …

vue 使用echarts-gl实现3d旋转地图

之前也有使用过echarts开发项目中涉及到的地图功能,当时使用geo来实现地图轮廓,看上去有种3d的感觉。最近闲来无事看了一份可视化大屏的UI设计图,感觉3d旋转地图挺好玩的,今天就来尝试实现下。 首先安装下echarts和echarts-gl依赖…

关于paddleocr的predict_system按高度顺序画图

关于paddleocr的predict_system按高度顺序画图,(coco格式) 增加adjust_res函数: 实现代码: def adjust_res(res):res_cp deepcopy(res)res_cp sorted(res_cp, keylambda x: x[bbox][1], reverseFalse)return res …

Android Studio项目——TCP客户端

目录 一、TCP客户端UI 1、UI展示 2、xml代码 二、TCP客户端数据发送 三、TCP客户端数据接收 一、TCP客户端UI 1、UI展示 2、xml代码 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.…

【算法专题】贪心算法

贪心算法 贪心算法介绍1. 柠檬水找零2. 将数组和减半的最少操作次数3. 最大数4. 摆动序列(贪心思路)5. 最长递增子序列(贪心算法)6. 递增的三元子序列7. 最长连续递增序列8. 买卖股票的最佳时机9. 买卖股票的最佳时机Ⅱ(贪心算法)10. K 次取反后最大化的数组和11. 按身高排序12…

leetcode514. 自由之路【线性dp】

原题链接&#xff1a;leetcode514. 自由之路 题目描述 电子游戏“辐射4”中&#xff0c;任务 “通向自由” 要求玩家到达名为 “Freedom Trail Ring” 的金属表盘&#xff0c;并使用表盘拼写特定关键词才能开门。 给定一个字符串 ring &#xff0c;表示刻在外环上的编码&…

CHS_03.2.3.2_2+进程互斥的硬件实现方法

CHS_03.2.3.2_2进程互斥的硬件实现方法 知识总览中断屏蔽方法TestAndSet指令Swap指令 知识回顾 进程互斥的四种软件实现方法 知识总览 这个小节我们会介绍另外的三种进程互斥的硬件实现方法 那么 这个小节的学习过程当中 大家需要注意理解各个方法的原理 并且要稍微的了解各个…

OpenGL ES 渲染 NV21、NV12 格式图像有哪些“姿势”?

使用2个纹理实现 NV21 格式图像渲染 前文提到渲染 NV21 格式图像需要使用 2 个纹理,分别用于保存 Y plane 和 UV plane 的数据,然后在片段着色器中分别对 2 个纹理进行采样,转换成 RGB 数据。 OpenGLES 渲染 NV21或 NV12 格式图像需要用到 GL_LUMINANCE 和 GL_LUMINANCE_A…

更改远程桌面网关端口和远程Web应用程序端口

很多玩Home-Lab的小伙伴会使用远程桌面网关&#xff08;Remote Desktop Gateway&#xff09;来安全远程家庭内网的计算机&#xff0c;但由于国内电信法律法规的原因&#xff0c;普通家庭宽带并不能使用默认的443端口&#xff08;TCP&#xff09;和3391端口&#xff08;UDP&…

Shell中sed编辑器

1.简介 sed是一种流编辑器&#xff0c;流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据&#xff0c;这些命令要么从命令行中输入&#xff0c;要么存储在一个 命令文本文件中。 2.sed编辑器的工作流程 sed…

【高效开发工具系列】Wolfram Alpha

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

linux离线升级openssh方法

检查openssh版本&#xff1a; 升级前openssh 版本为7.4 openssl 版本为1.0.2k Openssh9.6 所需openssl >1.1.1 因此openssl也需要升级。 为了防止升级失败&#xff0c;无法使用SSH登录&#xff0c;首先安装telnet 预防。查看是否安装了telnet 客户端及服务 未安装tel…

npm安装下载修改镜像源

问题描述一 npm install 时&#xff0c;报错&#xff1a;npm ERR! network request to https://registry.npmjs.org/postcss-pxtorem failed, reason: connect ETIMEDOU&#xff0c;这是因为默认npm安装会请求国外的镜像源&#xff0c;导致下载缓慢容易断开请求下载失败的 np…

高效集成|聚道云软件连接器实现薪人薪事与每刻报销无缝对接

一、客户介绍 某石油天然气有限公司是一家在石油天然气领域拥有深厚实力和丰富经验的公司。在技术方面&#xff0c;该公司始终保持领先地位&#xff0c;拥有高素质、专业化的技术团队&#xff0c;不断引进和吸收国际先进技术&#xff0c;加强自主创新&#xff0c;为公司的持续…

C语言菜鸟入门·判断语句(if语句、if...else语句、嵌套if语句)详细介绍

目录 1. if语句 2. if...else语句 3. if...else if...else 语句 4. 嵌套if语句 C 语言把任何非零和非空的值假定为 true&#xff0c;把零或 null 假定为 false。 语句描述if语句一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。if...else语句一个 if 语句 后可跟…
最新文章