文本到图像的革新:自动化Prompt优化的UF-FGTG框架

news2024/9/22 4:07:53

在文本到图像合成领域,已经能够由文本描述直接生成图像。然而,尽管这一技术带来了无限的可能性,它仍然面临着一个关键挑战:如何设计出能够引导模型生成高质量图像的提示(prompts)。尤其是对于初学者而言,他们可能缺乏必要的经验和对关键词的熟悉度,难以手动输入能够满足模型要求的提示,而且用户输入的提示和模型训练时使用的提示之间存在差异。这种用户输入的提示与模型偏好的提示之间存在的差异,常常导致生成的图像与预期效果有所偏差。

针对这一问题,来自复旦大学和同济大学的研究团队构建了一个新颖的粗粒度-细粒度提示数据集(Coarse-Fine Granularity Prompts dataset, CFP),并在此基础上,提出了一个用户友好的细粒度文本生成框架(User-Friendly Fine-Grained Text Generation framework, UF-FGTG),旨在自动化地优化提示,使其更贴合模型的偏好。通过这一框架不仅提高了图像的生成质量,还增加了结果的多样性,使得即使是初学者也能够轻松地生成符合个人需求的图像。

(a) 展示了在文本到图像训练数据集中的提示词长分布与新手用户提供的提示之间存在不一致性,导致模型优选的提示与新手用户提示之间的错位
(b) 展示了所提出的 UF-FGTG 不断重写提示,使用户可以根据他们的需求选择感兴趣的结果,直到满意为止

用户友好的细粒度文本生成框架

UF-FGTG框架的核心是提示细化器(Prompt Refiner),它由细粒度文本编码器(Fine-Grained Text Encoder)和文本解码器(Text Decoder)组成。这个框架的目的是将用户输入的粗粒度提示转换为模型偏好的细粒度提示。在训练过程中,框架利用与图像相关的损失函数来指导文本生成,确保生成的提示能够引导模型生成高质量的图像。为了增加生成结果的多样性,研究者们还引入了一个自适应特征提取模块(Adaptive Feature Extraction Module)。

用户友好的细粒度文本生成框架(UF-FGTG)的架构

如图2,框架的核心部分主要包含以下几个关键组件:

  1. Prompt Refiner(提示细化器):这是文本生成网络的核心,负责将粗粒度的提示转换为细粒度的提示。提示细化器由两个主要部分组成:细粒度文本编码器(ET)和文本解码器(DE)。

  2. Fine-Grained Text Encoder (ET)(细粒度文本编码器):细粒度文本编码器是提示细化器的第一部分,它的任务是将输入的粗粒度提示转换成细粒度的提示特征。这一转换过程受到细粒度文本(TF)的监督,细粒度文本是模型训练过程中用于指导和优化编码器输出的目标文本。

  3. Text Decoder (DE)(文本解码器):文本解码器接收来自细粒度文本编码器的特征,并将其转换回文本形式,生成最终的细粒度提示。这个解码过程同样受到细粒度文本的监督,确保生成的提示既符合模型的偏好,也具有多样性。

  4. Stable Diffusion Model ϵθ(稳定扩散模型):在训练过程中,稳定扩散模型用于生成与细粒度提示相对应的图像。这个模型的输出作为反馈,帮助进一步指导和优化文本编码器和解码器,以生成模型偏好的提示。

  5. Adaptive Feature Extraction Module (N)(自适应特征提取模块):这个模块负责从图像中提取特征,并将其与文本编码器生成的特征相结合。通过这种方式,自适应特征提取模块确保了生成的提示不仅符合模型的偏好,而且能够引导模型生成多样化的图像。

  6. Inference Process(推理过程):在实际应用中,即用户希望生成图像时,只需要使用提示细化器。用户输入一个粗粒度的提示,提示细化器将其转换为一个细粒度的、模型偏好的提示,然后这个提示被用于文本到图像模型来生成图像。

文本到图像扩散模型,如Stable Diffusion,由三部分组成:自动编码器、文本条件UNet去噪模型和CLIP细粒度文本编码器。自动编码器将图像转换到低维潜在空间,而文本编码器接受文本提示并生成特征表示。去噪模型则利用这些特征来生成图像。UF-FGTG框架利用这个模型的变体来生成细粒度提示。

提示细化器是UF-FGTG框架的核心组件,负责将粗粒度的提示转换为细粒度的提示。它由细粒度文本编码器、文本解码器和一个领域适配器组成。细粒度文本编码器基于CLIP模型,能够将粗粒度提示的特征转换为模型偏好的特征。领域适配器和文本解码器则将这些特征转换为人类可读的细粒度提示。

细粒度文本编码器使用CLIP模型,将输入的文本提示转换为特征表示。这个编码器不仅能够理解文本的内容,还能够通过训练过程中的图像相关损失函数,学习生成模型偏好的提示。

文本解码器使用T5模型,将细粒度文本编码器生成的特征转换为最终的文本提示。这个过程涉及到一个特征域适配器,它将CLIP文本特征映射到T5模型的特征空间。

为了确保生成的图像具有多样性,研究者们提出了自适应特征提取模块。这个模块通过动态权重网络来预测图像表示的软动态权重,从而自动学习图像特征的最合适和最相关表示。

UF-FGTG框架使用一个综合损失函数,它是不同组件损失函数的加权和。这些损失函数包括图像相关损失、文本特征转换损失和CLIP增强损失,共同优化文本生成过程。

通过这些组件和策略,UF-FGTG框架能够自动化地优化文本提示,使其更符合模型的偏好,从而提高文本到图像合成的质量和多样性。

实验

研究者们选择了NVIDIA A100 GPU来进行模型的训练和推理。他们使用了AdamW优化器,设置学习率为5e-5,并采用批量大小为16进行训练。模型的初始化采用了与Stable Diffusion-v2.1相一致的OpenCLIP,确保了模型训练的兼容性和有效性。文本编码器、领域适配器和自适应特征提取模块在CFP数据集上进行了100个epoch的训练。

在生成策略方面,研究者们采用了结合Top-p和Top-K的策略来生成细粒度提示,其中p设置为0.95,K设置为50。这样的策略有助于在生成过程中平衡多样性和相关性。图像生成阶段则使用了Stable Diffusion-v2.1模型,设置了CFG scale为7,并采用Euler Ancestral sampler进行50步的去噪处理。

定性比较实验中,研究者们展示了不同模型生成的图像结果。他们将UF-FGTG框架与GPT-2、FLAN-T5、GPT-3.5和GPT-4等传统语言模型进行了比较。结果表明,UF-FGTG能够生成视觉上更具吸引力的图像,并且能够更好地理解模型偏好的提示格式。相比之下,传统语言模型在生成图像时往往难以把握模型偏好的提示结构,导致生成的图像与原始内容有较大偏差。

由不同模型(FLAN-T5、GPT-2、GPT-3.5、GPT-4和UF-FGTG)生成的提示以及由 Stable Diffusion-v2.1 生成的相应图像

定量比较部分,研究者们使用了多个非参考图像质量评估指标,包括NIMA、MUSIQ、DB-CNN和TReS等,来评估生成图像的质量和美学。实验结果显示,UF-FGTG在所有六个评估指标上均优于其他方法,平均改进率达到了5%。这表明UF-FGTG不仅能够生成高质量的图像,还能够生成具有较高美学价值的图像。

不同方法在图像质量和美学评估中的性能。表格列出了使用不同评估指标(如NIMA-TID、MUSIQ-KonIQ等)对GPT-2、FLAN-T5、GPT-3.5、GPT-4和UF-FGTG等方法生成的图像进行评分的结果

在消融研究中,研究者们进一步探讨了不同组件和损失函数对模型性能的影响。他们发现,文本特征转换损失和自适应特征提取模块对于文本到图像任务中的文本生成至关重要。通过调整提示长度,研究者们发现过长的提示可能会导致图像质量和美学评估得分下降,这可能是由于过拟合造成的。实验结果表明,长度为6的提示能够产生最具泛化性能的结果。自适应特征提取模块的引入显著提高了生成结果的多样性,使得模型能够生成风格更加多样化的图像。

在 UF-FGTG 框架中,文本到图像模型(Lmse)和自适应特征提取模块(Lclip)的影响。通过改变配置,研究了不同损失函数对模型性能的影响
自适应特征提取模块如何增加生成结果的多样性。没有这个模块时,模型倾向于以单一风格生成结果;而有了这个模块,模型能够生成多样化的结果

应用

研究者们探讨了UF-FGTG框架在实际应用中的潜力和灵活性。他们提出了两种推荐的文本生成推理策略,这些策略独立于模型的训练阶段,并且能够与原始的Stable Diffusion模型无缝协作进行图像生成。

第一种策略是模型同时生成三个结果,每个结果基于前一个提示进一步扩展六个token,这个过程会迭代进行,直到用户对生成的图像感到满意为止。这种方法允许用户从多个变体中选择最符合他们需求的图像。

第二种策略是模型生成更全面的提示,将最大token数设置为20或50。这种方法的目标是生成更为详细和丰富的提示,以期引导Stable Diffusion模型产生更高质量的图像。

研究者们还展示了UF-FGTG框架作为一个即插即用模块在Stable Diffusion中的应用。他们训练了一个能够将粗粒度提示映射到细粒度提示特征空间的细粒度文本编码器。这使得该编码器能够完全替代原始Stable Diffusion模型中仅用于编码的文本编码器。

通过这种方式,即使是输入提示扩展到一定长度,模型也能够生成如“4k分辨率”、“高度详细”和“最佳质量”等提示,虽然这些提示在语义上不够明确,但它们能够提高生成图像的质量。这表明UF-FGTG框架能够将用户输入的任何提示一致地投影到与细粒度提示对齐的特征空间中,从而提升图像生成的整体质量。

UF-FGTG框架可以作为文本到图像合成任务中的一个独立模块,也可以轻松集成到现有的文本到图像生成模型中,为用户提供了一个强大的工具,以实现更高效和个性化的图像生成。

论文链接:https://arxiv.org/abs/2402.12760

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

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

相关文章

【国产开源可视化引擎Meta2d.js】铅笔

铅笔 铅笔是可以任意涂鸦的绘图小工具 在线体验: 乐吾乐2D可视化 示例: // 开始铅笔绘画 meta2d.drawingPencil();// 鼠标抬起结束// 停止铅笔绘画(关闭铅笔绘画状态) meta2d.stopPencil(); 国产开源 乐吾乐潜心研发&#xff…

4 回归: 比赛代码,时间窗口特征

看到了不错的代码我就想收集一下 。 这是2024科大讯飞电力需求预测挑战赛的baseline。你可以在AI and competition里获取更多比赛的baseline。本次比赛官网如下:电力需求预测挑战赛。目前该baseline在比赛中相对靠前。 AI-and-competition/202407科大讯飞电力需求预测baseli…

数据防泄密软件精选|6款好用的数据防泄漏软件强推

某科技公司会议室,CEO张总、CIO李总、信息安全主管王经理正围绕最近发生的一起数据泄露事件展开讨论。 张总(忧虑): 大家,这次的数据泄露事件对我们来说是个沉重的打击。客户信息的外泄不仅损害了我们的信誉,还可能面…

自动化测试高级控件交互方法:TouchAction、触屏操作、点按,双击,滑动,手势解锁!

在自动化测试领域中,TouchAction 是一种非常强大的工具,它允许我们模拟用户在设备屏幕上的各种触摸事件。这种模拟不仅限于简单的点击操作,还包括滑动、长按、多点触控等复杂的手势。 点按与双击 点按和双击是触屏设备上最基本的操作之一。…

ViewPager

作用 实现翻页的效果。 1、在activity_main.xml中创建ViewPager <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"…

产品经理-的职业发展(9)

找一份好工作&#xff0c;就是为了获得更好的职业发展&#xff0c;下面分别给大家介绍下大、中、小型公司的职业发展路径 中小型公司 中小型公司的规模往往相对不大&#xff0c;又处于飞速发展过程中&#xff0c;培养体系和晋升标准都不够成熟&#xff0c;所以实际的职业发展路…

如何将heic转jpg格式?四种图片格式转换方法【附教程】

如何把heic转jpg格式&#xff1f;heic是用于存储静态图像和图形的压缩格式&#xff0c;旨在以更小的文件大小保持高质量的图像。HEIC格式自iOS 11和macOS High Sierra&#xff08;10.13&#xff09;内测开始&#xff0c;被苹果设置为图片存储的默认格式&#xff0c;广泛应用于i…

C++进阶-二叉树进阶(二叉搜索树)

1. 二叉搜索树 1.1 二叉搜索树概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 1.若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值2.若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于…

代码随想录(day1)二分法

if语句的基本语法 if 要判断的条件: 条件成立的时候&#xff0c;要做的事举例&#xff1a; if nums[middle]<target:leftmiddle1 while语句的基本语法&#xff1a; while 判断条件(condition)&#xff1a;执行语句(statements)举例&#xff1a; while left<right:midd…

【LLM】二、python调用本地的ollama部署的大模型

系列文章目录 往期文章&#xff1a; 【LLM】一、利用ollama本地部署大模型 目录 文章目录 前言 一、ollama库调用 二、langchain调用 三、requests调用 四、相关参数说明&#xff1a; 总结 前言 本地部署了大模型&#xff0c;下一步任务便是如何调用的问题&#xff0c…

前端vue打印后端对象为[object,object]

今天给自己项目进行编写前端页面时&#xff0c;惊讶的发现&#xff0c;自己进行打印后端传递的对象&#xff0c;一直显示未[object,object]&#xff0c;如下图所示&#xff1a; 感觉很奇怪&#xff0c;于是我猜测是不是自己获取的返回数据的问题&#xff0c;在进行添加了datat…

顶会FAST24最佳论文|阿里云块存储架构演进的得与失-4.EBS不同架构性能提升思路

3.1 平均延迟与长尾延迟 虚拟磁盘&#xff08;VD&#xff09;的延迟是由其底层架构决定的&#xff0c;具体而言&#xff0c;取决于请求所经历的路径。以EBS2为例&#xff0c;VD的延迟受制于两跳网络&#xff08;从BlockClient到BlockServer&#xff0c;再至ChunkServer&#x…

顾客排队购买蛋挞问题(算法与数据结构设计)

课题内容和要求 顾客排队买蛋挞问题。有N个顾客排队&#xff0c;每人最多买M个。烘焙员每次烘焙1到K个蛋挞放入盘中&#xff0c;顾客只能购买盘中的蛋挞&#xff0c;未达到M个需重新排队。输出每个顾客购买情况和完成顺序。 例如—— 输入&#xff1a;N9&#xff0c;K5&#x…

游戏软件缺少d3dx9_42.dll怎么修复?五种方法助你轻松解决

D3DX9_42.dll的丢失是一种常见的操作系统异常问题&#xff0c;由于日常使用电脑时的不当操作&#xff0c;可能会导致一些dll文件的丢失&#xff0c;D3DX9_42.dll就是其中之一。对于这种情况&#xff0c;我们可以通过谨慎的修复来解决。以下是一种科学的解决D3DX9_42.dll丢失的方…

【面试题】串联探针和旁挂探针有什么区别?

在网络安全领域中&#xff0c;串联探针和旁挂探针&#xff08;通常也被称为旁路探针&#xff09;是两种不同部署方式的监控设备&#xff0c;它们各自具有独特的特性和应用场景。以下是它们之间的主要区别&#xff1a; 部署方式 串联探针&#xff1a;串联探针一般通过网关或者…

刷题(day01)

1、leetcode485.最大连续1的个数 给定一个二进制数组 nums &#xff0c; 计算其中最大连续 1 的个数。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,0,1,1,1] 输出&#xff1a;3 解释&#xff1a;开头的两位和最后的三位都是连续 1 &#xff0c;所以最大连续 1 的个数是 3.…

Linux环境部署Python Web服务

“姑娘&#xff0c;再见面就要靠运气了&#xff0c;可别装作不认识&#xff0c;那句“好久不见”可干万别打颤…” 将使用 Python 编写的后端 API 部署到 Linux 环境中&#xff0c;可以按照以下详细步骤操作。本文将涵盖环境准备、API 编写、使用 Gunicorn 作为 WSGI 服务器、配…

C#反射基本应用

1、反射 反射是.NET Framework的一个特性&#xff0c;它允许在运行时获取类型的信息以及动态创建对象&#xff0c;调用方法&#xff0c;以及访问字段和属性。 2、代码 using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy…

运维锅总详解系统设计原则

本文对CAP、BASE、ACID、SOLID 原则、12-Factor 应用方法论等12种系统设计原则进行分析举例&#xff0c;希望对您在进行系统设计、理解系统运行背后遵循的原理有所帮助&#xff01; 一、CAP、BASE、ACID简介 以下是 ACID、CAP 和 BASE 系统设计原则的详细说明及其应用举例&am…

【小鸡案例】表单focus和blur事件用法

input中有2个属性&#xff0c;一个是focus获取焦点&#xff0c;一个是blur失去焦点。获取焦点就是我们点击输入框时输入框被选中&#xff1b;失去焦点即点击输入框以外的区域&#xff0c;今天就用这两种属性做一个点击输入框的动画效果。 先写个输入框&#xff0c;代码如下&am…