T2I-Adapter:学习适配器为文本到图像扩散模型挖掘更多可控能力

本文主要是介绍T2I-Adapter:学习适配器为文本到图像扩散模型挖掘更多可控能力,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、研究动机
  • 二、T2I-Adapter的特点
  • 三、模型方法
    • (一)关于stable diffusion
    • (二)适配器设计
      • 1、结构控制
      • 2、空间调色板
      • 3、多适配器控制
    • (三)模型优化
      • 训练期间的非均匀时间步采样


一、研究动机

  • T2I模型,也就是文本到图像模型(text-to-image model)具备强大的生成能力,能够学习到复杂的内部结构和语义信息。但是仅仅依靠文本提示并不能充分利用模型学到的知识,尤其是在需要灵活准确的控制(例如颜色和结构)时。

文本很难为图像合成提供结构指导,导致在一些复杂场景下结果随机且不稳定。这并不是由于生成能力差,而是因为文本无法提供准确的生成指导以充分将 SD 的内部知识与外部控制相结合。
在这里插入图片描述

  • 因此文章提出了 T2I-Adapter,这是一种简单而小型的模型,可以为预训练的文本到图像(T2I)模型提供额外的指导,同时不影响其原始网络拓扑和生成能力。

借助 T2I-Adapter,我们可以生成原始 T2I 模型(例如stable diffusion)难以准确生成的更具想象力的结果。可以使用各种指导,例如颜色、深度、草图、语义分割和关键姿势。我们可以使用 T2I-Adapter 进一步实现本地编辑和可组合指导。
在这里插入图片描述

二、T2I-Adapter的特点

  • 即插即用:不会影响现有 T2I 扩散模型(例如稳定扩散)的原始网络拓扑和生成能力。
  • 简单、小型:可以轻松地插入到现有的 T2I 扩散模型中,训练成本较低,并且在扩散过程中只需要一次推理。它们是轻量级的,具有 ∼ 77 M 参数和 ∼ 300 M 存储空间。
  • 灵活性:可以针对不同的控制条件训练各种适配器,包括空间颜色控制和精细结构控制。
  • 可组合:可以方便地组合多个适配器来实现多条件控制。
  • 可推广:经过训练后,只要从相同的 T2I 模型进行微调,它们就可以直接用于自定义模型。
    在这里插入图片描述

三、模型方法

(一)关于stable diffusion

Stable Diffusion 是一个两阶段扩散模型,包含一个自动编码器和一个 UNet 降噪器。在第一阶段,SD 训练了一个自动编码器,它可以将图像 X0 转换为潜在空间,然后重建它们。在第二阶段,SD训练了一个改进的UNet降噪器来直接在潜在空间中执行降噪。

SD的优化过程:

  • Z t Z_t Zt表示第 t 步的噪声特征图
  • C代表条件信息
  • θ指的是UNet降噪器的函数
    在这里插入图片描述

在推理过程中, 输入潜在图 Z T Z_T ZT 由随机高斯分布生成。给定 Z T Z_T ZT ϵ θ \epsilon_θ ϵθ 在每个步骤 t以 C 为条件 预测噪声估计。通过减去它,噪声特征图变得逐渐清晰。经过 T 次迭代后,最终结果 Z 0 Z_0 Z0作为干净的潜在特征,被输入到自动编码器的解码器中以执行图像生成。

在条件部分, SD 利用预先训练的 CLIP 文本编码器将文本输入嵌入到标记 y 的序列中。然后利用交叉注意力模型将 y 结合到去噪过程中:

在这里插入图片描述

(二)适配器设计

T2I 适配器由四个特征提取块和三个用于改变特征分辨率的下采样块组成。
在这里插入图片描述
原始条件输入的分辨率为512×512,利用像素 unshuffle 操作将其下采样到 64 × 64。在每个尺度中,利用一个卷积层和两个残差块(RB)来提取条件特征 Fck。最终形成多尺度条件特征Fc = {Fc1, Fc2, Fc3, Fc4}。注意,Fc的维度与UNet降噪器的编码器中的中间特征Fenc = {Fe1nc, Fe2nc, Fe3nc, Fe4nc}相同。然后在每个尺度上添加 Fc 和 Fenc。
在这里插入图片描述

1、结构控制

T2I-Adapter 具有良好的泛化性,可以支持各种结构控制,包括草图、深度图、语义分割图和关键姿势。这些模式的条件图直接输入到特定于任务的适配器中以提取条件特征Fc。
在这里插入图片描述

2、空间调色板

除了结构之外,颜色也是图像的基本组成部分,主要涉及两个方面:色调和空间分布。文章设计了一个空间调色板来粗略地控制生成图像的色调和颜色分布

  • 文章使用了高双三次下采样来去除图像的语义和结构信息,同时保留足够的颜色信息。
  • 然后应用最近的上采样来恢复图像的原始大小。
  • 最后,色调和颜色分布由几个空间排列的色块来表示。
    根据经验,文章利用 64× 下采样和上采样来完成这个过程。训练过程利用颜色图作为C,通过FAD生成Fc。

3、多适配器控制

除了使用单个适配器作为条件外,T2I 适配器还支持多个条件。此策略不需要额外的培训。从数学上讲,这个过程可以定义为:
在这里插入图片描述

(三)模型优化

优化时固定SD中的参数,只优化T2I适配器。每个训练样本都是一个三元组,包括原始图像 X 0 X_0 X0、条件图 C C C和文本提示 y y y。优化过程与SD类似。具体来说,给定图像 X 0 X_0 X0,首先通过自动编码器的编码器将其嵌入到潜在空间 Z 0 Z_0 Z0。然后从 [ 0 , T ] [0, T ] [0,T] 中随机采样一个时间步 t t t,并将相应的噪声添加到 Z 0 Z_0 Z0,产生 Z t Z_t Zt。从数学上讲,我们的 T2I 适配器通过以下方式进行优化:
在这里插入图片描述

训练期间的非均匀时间步采样

扩散模型中的时间嵌入是采样的重要条件。如果将时间嵌入引入适配器,能够增强其引导能力,但是这种设计需要适配器参与每次迭代,进而使得适配器不再轻量化。因此文章采用了合适的训练策略来弥补这个弱点:

  • 将DDIM推理采样平均分为3个阶段,即开始、中期和后期。
  • 向三个阶段中的每个阶段添加指导信息。可以发现中后期添加引导对结果影响不大。表明生成结果的主要内容是在早期采样阶段就确定的。因此,如果t是从后面的部分采样的,则在训练期间将忽略指导信息。

因此,为了加强adapter的训练,采用非均匀采样来增加采样早期t下降的概率。这里,文章利用三次函数(即 t = ( 1 − ( t T ) 3 ) × T , t ∈ U ( 0 , T ) t = (1 − ( \frac{t} {T} )^3) × T, t ∈ U (0, T ) t=(1(Tt)3)×T,tU(0,T))作为 t 的分布。

在这里插入图片描述

均匀采样和三次采样的比较如下图所示,包括颜色引导和关键姿势引导。可以发现t的均匀采样存在指导性弱的问题,尤其是在颜色控制方面。三次采样策略可以纠正这个弱点。
在这里插入图片描述

这篇关于T2I-Adapter:学习适配器为文本到图像扩散模型挖掘更多可控能力的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/928715

相关文章

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Linux使用cut进行文本提取的操作方法

《Linux使用cut进行文本提取的操作方法》Linux中的cut命令是一个命令行实用程序,用于从文件或标准输入中提取文本行的部分,本文给大家介绍了Linux使用cut进行文本提取的操作方法,文中有详... 目录简介基础语法常用选项范围选择示例用法-f:字段选择-d:分隔符-c:字符选择-b:字节选择--c

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选