目录
分类体系
通用条件生成
首页 科技周边 人工智能 可控图像生成最新综述!北邮开源20页249篇文献,包揽Text-to-Image Diffusion领域各种「条件」

可控图像生成最新综述!北邮开源20页249篇文献,包揽Text-to-Image Diffusion领域各种「条件」

Mar 19, 2024 pm 05:00 PM
ai 模型

在视觉生成领域迅速发展的进程中,扩散模型已经完全改变了这一领域的发展态势,其引入的文本引导生成功能标志着能力方面的深刻变革。

然而,仅依赖文本来调节这些模型并不能完全满足不同应用和场景的多样化和复杂需求。

鉴于这种不足,许多研究旨在控制预训练文本到图像(T2I)模型以支持新条件。

北京邮电大学的研究人员对T2I扩散模型的可控性生成进行了深入审查,概括了该领域的理论基础和实际进展。这项综述涵盖了最新的研究成果,为该领域的发展和应用提供了重要参考。

可控图像生成最新综述!北邮开源20页249篇文献,包揽Text-to-Image Diffusion领域各种「条件」

论文:https://arxiv.org/abs/2403.04279代码:https://github.com/PRIV-Creation/Awesome-Controllable-T2I-Diffusion-Models

我们的审查从简要介绍去噪扩散概率模型(DDPMs)和广泛使用的 T2I 扩散模型基础开始。

我们进一步探讨了扩散模型的控制机制,通过理论分析确定了在去噪过程中引入新条件的有效性。

此外,我们详细总结了该领域的研究情况,并按条件的角度将其分为特定条件生成、多条件生成以及通用可控性生成等不同类别。

可控图像生成最新综述!北邮开源20页249篇文献,包揽Text-to-Image Diffusion领域各种「条件」

图 1 利用T2I扩散模型可控生成示意图。在文本条件的基础上,加入「身份」条件来控制输出的结果。

分类体系

利用文本扩散模型进行条件生成的任务代表了一个多方面和复杂的领域。从条件角度来看,我们将这个任务分为三个子任务(参见图2)。

可控图像生成最新综述!北邮开源20页249篇文献,包揽Text-to-Image Diffusion领域各种「条件」

图 2 可控生成的分类。从条件角度来看,我们将可控生成方法分为三个子任务,包括具有特定条件的生成、具有多个条件的生成和通用可控生成。

大多数研究致力于如何在特定条件下生成图像,例如基于图像引导的生成和草图到图像的生成。

为了揭示这些方法的理论和特征,我们根据它们的条件类型进一步对其进行分类。

1. 利用特定条件生成:指引入了特定类型条件的方法,既包括定制的条件(Personalization, e.g., DreamBooth, Textual Inversion),也包含比较直接的条件,例如ControlNet系列、生理信号-to-Image

2. 多条件生成:利用多个条件进行生成,对这一任务我们在技术的角度对其进行细分。

3. 统一可控生成:这个任务旨在能够利用任意条件(甚至任意数量)进行生成。

如何在T2I扩散模型中引入新的条件

细节请参考论文原文,下面对这些方法机理进行简要介绍。

条件得分预测(Conditional Score Prediction)

在T2I扩散模型中,利用可训练模型(例如UNet)来预测去噪过程中的概率得分(即噪声)是一种基本且有效的方法。

在基于条件得分预测方法中,新颖条件会作为预测模型的输入,来直接预测新的得分。

可控图像生成最新综述!北邮开源20页249篇文献,包揽Text-to-Image Diffusion领域各种「条件」

其可划分三种引入新条件的方法:

1. 基于模型的条件得分预测:这类方法会引入一个用来编码新颖条件的模型,并将编码特征作为UNet的输入(如作用在cross-attention层),来预测新颖条件下的得分结果;

2. 基于微调的条件得分预测:这类方法不使用一个显式的条件,而是微调文本嵌入和去噪网络的参数,来使其学习新颖条件的信息,从而利用微调后的权重来实现可控生成。例如DreamBooth和Textual Inversion就是这类做法。

3. 无需训练的条件得分预测:这类方法无需对模型进行训练,可以直接将条件作用于模型的预测环节,例如在Layout-to-Image(布局图像生成)任务中,可以直接修改cross-attention层的attention map来实现设定物体的布局。

条件引导的得分评估

条件引导估的得分估计方法是通过条件预测模型(如上图Condition Predictor)反传梯度来在去噪过程中增加条件指导。

可控图像生成最新综述!北邮开源20页249篇文献,包揽Text-to-Image Diffusion领域各种「条件」

利用特定条件生成

可控图像生成最新综述!北邮开源20页249篇文献,包揽Text-to-Image Diffusion领域各种「条件」

1. Personalization(定制化):定制化任务旨在捕捉和利用概念作为生成条件行可控生成,这些条件不容易通过文本描述,需要从示例图像中进行提取。如DreamBooth,Texutal Inversion和LoRA。

2. Spatial Control(空间控制):由于文本很难表示结构信息,即位置和密集标签,因此使用空间信号控制文本到图像扩散方法是一个重要的研究领域,例如布局、人体姿势、人体解析。方法例如ControlNet。

3. Advanced Text-Conditioned Generation(增强的文本条件生成):尽管文本在文本到图像扩散模型中起着基础条件的作用,但该领域仍存在一些挑战。

首先,在涉及多个主题或丰富描述的复杂文本中进行文本引导合成时,通常会遇到文本不对齐的问题。此外,这些模型主要在英语数据集上训练,导致了多语言生成能力明显不足。为解决这一限制,许多工作提出了旨在拓展这些模型语言范围的创新方法。

4. In-Context Generation(上下文生成):在上下文生成任务中,根据一对特定任务示例图像和文本指导,在新的查询图像上理解并执行特定任务。

5. Brain-Guided Generation(脑信号引导生成):脑信号引导生成任务专注于直接从大脑活动控制图像创建,例如脑电图(EEG)记录和功能性磁共振成像(fMRI)。

6. Sound-Guided Generation(声音引导生成):以声音为条件生成相符合的图像。

7. Text Rendering(文本渲染):在图像中生成文本,可以被广泛应用到海报、数据封面、表情包等应用场景。

多条件生成

可控图像生成最新综述!北邮开源20页249篇文献,包揽Text-to-Image Diffusion领域各种「条件」

多条件生成任务旨在根据多种条件生成图像,例如在用户定义的姿势下生成特定人物或以三种个性化身份生成人物。

在本节中,我们从技术角度对这些方法进行了全面概述,并将它们分类以下类别:

1. Joint Training(联合训练):在训练阶段就引入多个条件进行联合训练。

2. Continual Learning(持续学习):有顺序的学习多个条件,在学习新条件的同时不遗忘旧的条件,以实现多条件生成。

3. Weight Fusion(权重融合):用不同条件微调得到的参数进行权重融合,以使模型同时具备多个条件下的生成。

4. Attention-based Integration(基于注意力的集成):通过attention map来设定多个条件(通常为物体)在图像中的位置,以实现多条件生成。

通用条件生成

除了针对特定类型条件量身定制的方法之外,还存在旨在适应图像生成中任意条件的通用方法。

这些方法根据它们的理论基础被广泛分类为两组:通用条件分数预测框架和通用条件引导分数估计。

1. 通用条件分数预测框架:通用条件分数预测框架通过创建一个能够编码任何给定条件并利用它们来预测图像合成过程中每个时间步的噪声的框架。

这种方法提供了一种通用解决方案,可以灵活地适应各种条件。通过直接将条件信息整合到生成模型中,该方法允许根据各种条件动态调整图像生成过程,使其多才多艺且适用于各种图像合成场景。

2. 通用条件引导分数估计:其他方法利用条件引导的分数估计将各种条件纳入文本到图像扩散模型中。主要挑战在于在去噪过程中从潜变量获得特定条件的指导。

应用

引入新颖条件可以在多个任务中发挥用处,其中包括图像编辑、图像补全、图像组合、文/图生成3D。

例如,在图像编辑中,可以利用定制化方法,将图中出现猫编辑为特具有定身份的猫。其他内容请参考论文。

总结

这份综述深入探讨了文本到图像扩散模型的条件生成领域,揭示了融入文本引导生成过程中的新颖条件。

首先,作者为读者提供基础知识,介绍去噪扩散概率模型、著名的文本到图像扩散模型以及一个结构良好的分类法。随后,作者揭示了将新颖条件引入T2I扩散模型的机制。

然后,作者总结了先前的条件生成方法,并从理论基础、技术进展和解决方案策略等方面对它们进行分析。

此外,作者探索可控生成的实际应用,在AI内容生成时代强调其在其中发挥重要作用和巨大潜力。

这项调查旨在全面了解当前可控T2I生成领域的现状,从而促进这一充满活力研究领域持续演变和拓展。

以上是可控图像生成最新综述!北邮开源20页249篇文献,包揽Text-to-Image Diffusion领域各种「条件」的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
如何理解C  中的DMA操作? 如何理解C 中的DMA操作? Apr 28, 2025 pm 10:09 PM

DMA在C 中是指DirectMemoryAccess,直接内存访问技术,允许硬件设备直接与内存进行数据传输,不需要CPU干预。1)DMA操作高度依赖于硬件设备和驱动程序,实现方式因系统而异。2)直接访问内存可能带来安全风险,需确保代码的正确性和安全性。3)DMA可提高性能,但使用不当可能导致系统性能下降。通过实践和学习,可以掌握DMA的使用技巧,在高速数据传输和实时信号处理等场景中发挥其最大效能。

C  中的chrono库如何使用? C 中的chrono库如何使用? Apr 28, 2025 pm 10:18 PM

使用C 中的chrono库可以让你更加精确地控制时间和时间间隔,让我们来探讨一下这个库的魅力所在吧。C 的chrono库是标准库的一部分,它提供了一种现代化的方式来处理时间和时间间隔。对于那些曾经饱受time.h和ctime折磨的程序员来说,chrono无疑是一个福音。它不仅提高了代码的可读性和可维护性,还提供了更高的精度和灵活性。让我们从基础开始,chrono库主要包括以下几个关键组件:std::chrono::system_clock:表示系统时钟,用于获取当前时间。std::chron

怎样在C  中测量线程性能? 怎样在C 中测量线程性能? Apr 28, 2025 pm 10:21 PM

在C 中测量线程性能可以使用标准库中的计时工具、性能分析工具和自定义计时器。1.使用库测量执行时间。2.使用gprof进行性能分析,步骤包括编译时添加-pg选项、运行程序生成gmon.out文件、生成性能报告。3.使用Valgrind的Callgrind模块进行更详细的分析,步骤包括运行程序生成callgrind.out文件、使用kcachegrind查看结果。4.自定义计时器可灵活测量特定代码段的执行时间。这些方法帮助全面了解线程性能,并优化代码。

量化交易所排行榜2025 数字货币量化交易APP前十名推荐 量化交易所排行榜2025 数字货币量化交易APP前十名推荐 Apr 30, 2025 pm 07:24 PM

交易所内置量化工具包括:1. Binance(币安):提供Binance Futures量化模块,低手续费,支持AI辅助交易。2. OKX(欧易):支持多账户管理和智能订单路由,提供机构级风控。独立量化策略平台有:3. 3Commas:拖拽式策略生成器,适用于多平台对冲套利。4. Quadency:专业级算法策略库,支持自定义风险阈值。5. Pionex:内置16 预设策略,低交易手续费。垂直领域工具包括:6. Cryptohopper:云端量化平台,支持150 技术指标。7. Bitsgap:

怎样在C  中处理高DPI显示? 怎样在C 中处理高DPI显示? Apr 28, 2025 pm 09:57 PM

在C 中处理高DPI显示可以通过以下步骤实现:1)理解DPI和缩放,使用操作系统API获取DPI信息并调整图形输出;2)处理跨平台兼容性,使用如SDL或Qt的跨平台图形库;3)进行性能优化,通过缓存、硬件加速和动态调整细节级别来提升性能;4)解决常见问题,如模糊文本和界面元素过小,通过正确应用DPI缩放来解决。

C  中的实时操作系统编程是什么? C 中的实时操作系统编程是什么? Apr 28, 2025 pm 10:15 PM

C 在实时操作系统(RTOS)编程中表现出色,提供了高效的执行效率和精确的时间管理。1)C 通过直接操作硬件资源和高效的内存管理满足RTOS的需求。2)利用面向对象特性,C 可以设计灵活的任务调度系统。3)C 支持高效的中断处理,但需避免动态内存分配和异常处理以保证实时性。4)模板编程和内联函数有助于性能优化。5)实际应用中,C 可用于实现高效的日志系统。

给MySQL表添加和删除字段的操作步骤 给MySQL表添加和删除字段的操作步骤 Apr 29, 2025 pm 04:15 PM

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,删除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段时,需指定位置以优化查询性能和数据结构;删除字段前需确认操作不可逆;使用在线DDL、备份数据、测试环境和低负载时间段修改表结构是性能优化和最佳实践。

C  中的字符串流如何使用? C 中的字符串流如何使用? Apr 28, 2025 pm 09:12 PM

C 中使用字符串流的主要步骤和注意事项如下:1.创建输出字符串流并转换数据,如将整数转换为字符串。2.应用于复杂数据结构的序列化,如将vector转换为字符串。3.注意性能问题,避免在处理大量数据时频繁使用字符串流,可考虑使用std::string的append方法。4.注意内存管理,避免频繁创建和销毁字符串流对象,可以重用或使用std::stringstream。

See all articles