(2023|NIPS,MUSE,掩蔽适配器,基于反馈的迭代训练)StyleDrop:任意风格的文本到图像生成

news2024/9/27 17:26:16

StyleDrop: Text-to-Image Generation in Any Style

公和众和号:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料)

目录

0. 摘要

3. StyleDrop:文本到图像合成的风格调整

3.1 基础:Muse [4],用于文本到图像合成的掩蔽 Transformer

3.2 文本到图像生成式视觉 Transformer 的参数高效微调

3.2.1 构建文本提示

3.3 带有反馈的迭代训练

3.4 从两个 θ 进行抽样

4. 实验

5. 结论

S. 总结

S.1 主要贡献

S.2 方法


0. 摘要

预训练的大型文本到图像模型通过适当使用文本提示合成令人印象深刻的图像。然而,自然语言中固有的歧义和分布外效应使得难以利用特定设计模式、纹理或材料的图像样式进行合成。在本文中,我们引入了 StyleDrop,一种通过文本到图像模型实现忠实于特定风格的图像合成的方法。所提出的方法非常灵活,捕捉用户提供的风格的细微差别和细节,如配色方案、明暗效果、设计模式以及局部和全局效果。它通过微调极少量的可训练参数(总模型参数的不到1%)并通过迭代训练与人工或自动反馈改善质量,高效地学习新的风格。更好的是,即使用户只提供了所需风格的单个图像,StyleDrop 也能够呈现令人印象深刻的结果。广泛的研究表明,在风格调整文本到图像模型的任务上,基于 Muse [4] 实现的 StyleDrop 比基于 Imagen [31] 或 Stable Diffusion [29] 实现的 DreamBooth [30] 和 textual inversion [8] 表现更为出色。更多结果可以在我们的项目网站上找到:https://styledrop.github.io

StyleDrop 受 eyedropper(又称颜色选择器)的启发,使用户能够从各种来源快速选择颜色。同样,StyleDrop 允许用户快速、轻松地从单个(或很少)参考图像中 ‘挑选’ 风格,构建一个用于以该风格生成图像的文本到图像模型。

3. StyleDrop:文本到图像合成的风格调整

3.1 基础:Muse [4],用于文本到图像合成的掩蔽 Transformer

Muse [4] 是一种基于掩蔽生成式图像 Transformer 或 MaskGIT [5] 的最新文本到图像合成模型。它包含两个合成模块,用于基础图像生成(256×256)和超分辨率(512×512或1024×1024)。每个模块由文本编码器 T、生成器 G、采样器 S、图像编码器 E 和解码器 D 组成。文本编码器 T 将文本提示 t 映射到连续的文本嵌入空间。生成器 G 处理文本嵌入 e 以生成 logits。采样器 S 通过迭代解码 [5, 4] 从 logits 中绘制视觉标记序列 v,该过程以文本嵌入 e 和从前几步解码的视觉标记为条件进行几步 Transformer 推断。最后,解码器 D 将离散标记序列映射到像素空间。总之,给定文本提示 t,图像 I 的合成过程如下:

其中,n 是一个负面提示,λ 是一个引导尺度,k 是合成步骤。𝑙_k是 logits,从中采样出下一组视觉标记v_(k+1)。有关迭代解码过程的详细信息,请参阅 [5, 4]。编码器 T 使用T5-XXL [26],而 E 和 D 使用 VQGAN [7, 37]。G 在大量的(图像,文本)对 (x,t) 上使用掩蔽视觉标记建模损失 [5] 进行训练:

其中,M 是一个掩蔽操作符,将掩蔽应用于 v_i 处的视觉标记。CE_m 是通过仅对未掩蔽的标记求和计算的加权交叉熵。

3.2 文本到图像生成式视觉 Transformer 的参数高效微调

现在我们提出了一个用于生成式视觉 Transformer  参数高效微调的统一框架。所提出的框架不限于特定的模型和应用,可以轻松应用于文本到图像(例如,Muse [4]、Paella [27]、Parti [38]、RQ-Transformer [18])和文本到视频(例如,Phenaki [33]、CogVideo [11])Transformer 的微调,使用各种 PEFT 方法,如提示微调 [20]、LoRA [13] 或适配器微调 [12],如 [32] 中所述。尽管如此,我们专注于Muse [4],一种非自回归(NAR)文本到图像 Transformer,使用适配器微调 [12]。

与 [32] 一样,我们的兴趣在于适配 Transformer 生成器 G,而其余部分(E、D、T)保持不变。令

是 Transformer 生成器 G 的修改版本(视觉标记空间 x 文本嵌入空间 x θ 参数空间),它将可学习参数 θ ∈ Θ 作为额外输入。这里,θ 代表了提示微调的可学习软提示或适配器微调的权重的参数。图 2 直观描述了带适配器微调的 ^G。

对 Transformer ^G 的微调涉及学习新引入的参数 θ,而 G 的现有参数(例如,自注意力和交叉注意力层的参数)保持不变,学习目标如下:

其中,D_tr 包含一些用于微调的(图像,文本)对。与 DreamBooth [30] 不同,其使用相同的文本提示表示一组训练图像,我们对每个输入图像使用不同的文本提示,以更好地解耦内容和风格之间的联系。一旦训练完成,类似于方程(2)中的过程,我们从 ^G(·, ·, θ) 的生成分布中合成图像。具体而言,在每个解码步骤 k,我们生成 logits 𝑙_k 如下:

其中,λ_A 通过对比两个生成分布来控制对目标分布的适应水平,一个是经过微调的 ^G(v_k, T(t), θ),另一个是未经微调的 G(v_k, T(t));而 λ_B 通过对比正面(t)和负面(n)文本提示来控制文本对齐。

3.2.1 构建文本提示

为了训练 θ,我们需要用于风格参考的(图像,文本)对组成训练数据集

在许多情景中,我们可能只会得到图像作为风格参考。在这种情况下,我们需要手动添加文本提示。

我们提出了一种简单的模板方法来构建文本提示,包括对内容(例如,对象、场景)的描述,后跟描述风格的短语。例如,我们使用 “猫” 来描述表格 1 中的对象,并附加 “水彩画” 作为风格描述符。在文本提示中同时包含内容和风格的描述至关重要,因为这有助于解耦内容和风格,并让学习的参数 θ 建模风格,这是我们的主要目标。虽然我们发现使用罕见的标记标识符 [30] 代替风格描述符(例如,“水彩画”)同样有效,但具有这样描述性的风格描述符提供了额外的风格属性编辑灵活性,这将在第 4.4.2 节和图 7 中展示。

3.3 带有反馈的迭代训练

虽然我们的框架是通用的,即使在小训练集上也能很好地工作,但从单个图像生成的经过风格调整的模型的生成质量有时可能不理想。第 3.2.1 节中的文本构建方法有助于提高质量,但我们仍然发现对内容的过拟合是一个问题。如图 3 的红色框中所示,同一座房子在背景中被渲染,很难完全避免内容泄漏。然而,我们看到许多渲染的图像成功地将风格与内容解耦,如图 3 的蓝色框所示。

对于这种情况,我们利用了这一在成功时具有高准确度的发现,并引入了 StyleDrop 的迭代训练(iterative training,IT),使用在较早阶段训练的 StyleDrop 合成的图像来改善 recall(更好的解耦)。我们选择了一个简单的解决方案:构建一个新的训练集,其中包含几十个成功的(图像,文本)对(例如,图 3 中的蓝色框中的图像),同时使用方程(3)中的相同目标。迭代训练导致了立即的改善,减少了内容泄漏,如图 3 中的绿色框所示。关键问题是如何评估合成图像的质量。

CLIP 分数 [25] 测量图像与文本的对齐程度。因此,可以通过测量 CLIP 分数(即视觉和文本 CLIP 嵌入的余弦相似性)来评估生成图像的质量。我们选择具有最高 CLIP 分数的图像,并将此方法称为带有 CLIP 反馈(CLIP feedback,CF)的迭代训练。在我们的实验中,我们发现使用 CLIP 分数来评估合成图像的质量是一种提高 recall(即文本保真度)的有效方式,而不会失去太多风格保真度。另一方面,CLIP 分数可能与人类意图 [19, 35] 不完全一致,也无法捕捉微妙的风格属性。

人类反馈(Human Feedback,HF)是将用户意图直接注入到合成图像质量评估中的更直接的方式。HF 在 LLM 微调与强化学习中被证明是强大而有效的 [24]。在我们的情况下,HF 可以用来补偿 CLIP 分数无法捕捉微妙风格属性的问题。经验上,选择少于十张图像就足够进行迭代训练,每种风格大约只需要 3 分钟。如第 4.4.4 节和图 9 所示,对于一些应用,如插图设计,HF 对于正确反映设计者意图而捕捉微妙差异至关重要。然而,由于人类选择偏见,风格可能会漂移或减少。

3.4 从两个 θ 进行抽样

对于个性化合成多个个人资产(personal assets)的文本到图像扩散模型已经进行了广泛的研究[17, 22, 10]。在本节中,我们展示了如何以简单的方式将 DreamBooth 和 StyleDrop 结合起来,从而使风格和内容都能够个性化。这通过从两个修改后的生成分布中进行抽样来实现,其中一个受到风格 θ_s 的引导,另一个受到内容 θ_c 的引导,它们分别是在风格和内容的参考图像上独立训练的适配器参数。与现有的作品 [17, 10] 不同,我们的方法不需要在多个概念上联合训练可学习参数,从而通过预训练适配器获得更大的组合能力,这些适配器分别在个体主题和风格资产上进行了单独训练。

我们的整体抽样过程遵循方程(1)的迭代解码,不同之处在于我们在每个解码步骤中如何采样logits。设 t 为文本提示,c 为没有风格描述符的文本提示。我们计算第 k 步的 logits 如下:

其中,γ 平衡了 StyleDrop 和 DreamBooth——如果 γ 为 0,我们得到 StyleDrop,如果为 1,则为DreamBooth。通过适当设置 γ(例如,0.5∼0.7),我们可以得到 ‘以我的风格呈现的我的内容’ 的图像(见图 5)。 

4. 实验

对比模型: 基于 Muse 的 StyleDrop,基于 Imagen 的 DreamBooth,基于 Stable Diffusion 的文本反演(textual inversion)和 DreamBooth 的 LoRA 实现。 

评估指标:人类反馈 (human feedback,HF), CLIP 反馈 (CLIP feedback,CF), 第一轮模型 (first round model,R1) 

在人类评估和定量评估中,StyleDrop(SDRP)表现突出。

从图 4 可以清楚地看出,StyleDrop 在 Muse 上明显优于其他方法。

从图 5(a) 我们可以看出,仅凭文本提示无法生成我们期望风格的图像。从图 5(b) 来看,虽然StyleDrop 能够得到正确的风格,但它生成的对象与参考主题不一致。从两个分布中采样的方法成功地捕捉了对象和风格,如图 5(c) 所示。

5. 结论

我们提出了 StyleDrop,一种通过使用少量用户提供的该风格的图像和文本描述来实现任何风格合成的新方法。基于 Muse [4],使用适配器调整 [12] 构建,StyleDrop 在文本到图像合成中实现了显著的风格一致性。训练 StyleDrop 在可学习参数数量(例如 <1%)和所需的样式样本数量(例如1)方面都很高效。

限制。视觉风格当然比我们在论文中探讨的更为多样化。对视觉风格进行更多研究,包括但不限于形式属性(例如使用颜色、构图、明暗)、媒体(例如线描、蚀刻、油画)、历史和时代(例如文艺复兴绘画、中世纪马赛克、装饰艺术)以及艺术风格(例如立体派、极简主义、波普艺术)等方面,将拓宽研究范围。尽管我们在某种程度上展示了生成视觉转换器在少样本迁移学习方面优于扩散模型,但这并不是最终结论。我们将深入研究文本到图像生成模型留作未来工作。

社会影响。如图 4 所示,StyleDrop 可用于提高艺术总监和平面设计师在以自己的风格生成各种视觉资产时的生产力和创造力。StyleDrop 使得从仅有一张种子图像开始,轻松复制许多个性化视觉资产成为可能。我们意识到潜在的问题,比如在没有艺术家同意的情况下复制个别艺术家的风格的能力,并敦促对我们技术的负责任使用。

S. 总结

S.1 主要贡献

本文介绍 StyleDrop,通过微调极少量的可训练参数并通过迭代训练与人工或自动反馈改善质量,高效地学习新的风格。更好的是,即使用户只提供了所需风格的单个图像,StyleDrop 也能够呈现令人印象深刻的结果。通过将 DreamBooth 和 StyleDrop 结合起来,使风格和内容都能够个性化。

S.2 方法

StyleDrop 的核心在于适配 Transformer 生成器 G。

它修改 Transformer 的生成器 G,将可学习参数 θ 作为额外输入,而 G 的现有参数(例如,自注意力和交叉注意力层的参数)保持不变,学习目标如下:

其中,D_tr 包含一些用于微调的(图像,文本)对,CE 是交叉熵,^G 是用于生成视觉标记的微调的生成器,M 是对视觉标记进行掩蔽的掩蔽操作符,E 是把图像编码为视觉标记的图像编码器,T 是把文本映射为文本嵌入的文本编码器。 

构建文本提示。

  • ​在许多情景中,可能只会得到图像作为风格参考,因此需要手动添加文本提示。
  • 构建文本提示使用一种简单的模板:对内容(例如,对象、场景)的描述,后跟描述风格的短语。
  • 相比于罕见的标记标识符,风格描述符提供了额外的风格属性编辑灵活性。

基于反馈迭代训练。

  • CLIP 反馈可提高文本保真度,且不会失去太多风格保真度。
  • 人类反馈作为 CLIP 的补充,可以捕捉微妙的风格属性。

分布组合

  • 以线性组合将 DreamBooth 和 StyleDrop 结合起来,从而使风格和内容都能够个性化。
  • 这通过从两个修改后的生成分布中进行抽样来实现,其中一个受到风格 θ_s 的引导,另一个受到内容 θ_c 的引导,它们分别是在风格和内容的参考图像上独立训练的适配器参数。

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

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

相关文章

Java-网络爬虫(二)

文章目录 前言一、WebMagic二、使用步骤1. 搭建 Maven 项目2. 引入依赖 三、入门案例四、核心对象&组件1. 核心对象SipderRequestSitePageResultItemsHtml&#xff08;Selectable&#xff09; 2. 四大组件DownloaderPageProcessorSchedulerPipeline 上篇&#xff1a;Java-网…

浅析Attention

本质&#xff1a; Attention机制的本质来自于人类视觉注意力机制。人们在看东西的时候一般不会从头看到尾全部都看&#xff0c;往往只会根据需求观察注意特定的一部分。简单来说&#xff0c;就是一种权重参数的分配机制&#xff0c;目标是协助模型捕捉重要信息。 原理&#x…

自监督深度学习技术

一、定义 自监督学习&#xff08;SSL&#xff09;是机器学习的一种范式&#xff0c;用于处理未标记数据以获取有用的表示&#xff0c;以帮助下游学习任务。SSL方法最显著的特点是它们不需要人类标注的标签&#xff0c;这意味着它的训练完全基于由未标记的数据样本组成的数据集…

在做题中学习(43):长度最小的子数组

LCR 008. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;同向双指针-------滑动窗口算法 解释&#xff1a;本是暴力枚举做法&#xff0c;因为全部是正整数&#xff0c;就可以利用单调性和双指针解决问题来节省时间 思路&#xff1a; 如上面图&am…

IIS+SDK+VS2010+SP1+SQL server2012全套工具包及安装教程

前言 今天花了两个半小时安装这一整套配置&#xff0c;这个文章的目标是将安装时间缩短到1个小时 正文 安装步骤如下&#xff1a; VS2010 —> service pack 1 —>SQL server2012 —> IIS —> SDK 工具包链接如下&#xff1a; https://pan.baidu.com/s/1WQD-KfiUW…

[Linux] 一文理解HTTPS协议:什么是HTTPS协议、HTTPS协议如何加密数据、什么是CA证书(数字证书)...

之前的文章中, 已经分析介绍过了HTTP协议. HTTP协议在网络中是以明文的形式传输的. 无论是GET还是POST方法都是不安全的. 为什么不安全呢? 因为: HTTP协议以明文的形式传输数据, 缺乏对信息的保护. 如果在网络中传输数据以明文的形式传输, 网络中的任何人都可以轻松的获取数据…

Java:File类详解

文章目录 1、概述2、创建File实例3、常用方法3.1 获取功能的方法3.2 绝对路径和相对路径3.3 判断功能的方法3.4 创建删除功能的方法3.5 文件过滤功能的方法 4、文件夹的遍历5、综合练习5.1 创建文件夹5.2 查找文件&#xff08;不考虑子文件夹&#xff09;5.3 查找文件&#xff…

RK3568平台开发系列讲解(Linux系统篇)Linux 内核打印

🚀返回总目录 文章目录 一、方法一:dmseg 命令二、方法二:查看 kmsg 文件三、方法三:调整内核打印等级一、方法一:dmseg 命令 在终端使用 dmseg 命令可以获取内核打印信息,该命令的具体使用方法如下所示: 首先在串口终端使用 “dmseg”命令,可以看见相应的内核打印信息…

静态网页设计——科学家网(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a;https://www.bilibili.com/video/BV1wg4y1Q7qm/?vd_source5f425e0074a7f92921f53ab87712357b 源码&#xff1a;https://space.bilibili.com…

[C#]C# OpenVINO部署yolov8-pose姿态估计模型

【源码地址】 github地址&#xff1a;https://github.com/ultralytics/ultralytics 【算法介绍】 Yolov8-Pose算法是一种基于深度神经网络的目标检测算法&#xff0c;用于对人体姿势进行准确检测。该算法在Yolov8的基础上引入了姿势估计模块&#xff0c;通过联合检测和姿势…

HarmonOS 通用组件(Checkbox)

本文中 我们来说 通用组件中的 Checkbox 我们先搭起一个基本的架子组件 Entry Component struct Index {build() {Row() {Column() {Row() {}}.width(100%)}.height(100%)} }我们可以在Row 行组件中加入代码 Checkbox({name: "age"}) Text("年龄")这样 就…

JDK 11:崭新特性解析

JDK 11&#xff1a;崭新特性解析 JDK 11&#xff1a;崭新特性解析1. HTTP Client&#xff08;标准化&#xff09;示例代码 2. 局部变量类型推断的扩展示例代码 3. 新的字符串方法示例代码 4. 动态类文件常量示例代码 5. Epsilon 垃圾收集器使用方式 结语 JDK 11&#xff1a;崭新…

第三十八周周报:文献阅读 +BILSTM+GRU+Seq2seq

目录 摘要 Abstract 文献阅读&#xff1a;耦合时间和非时间序列模型模拟城市洪涝区洪水深度 现有问题 提出方法 创新点 XGBoost和LSTM耦合模型 XGBoost算法 ​编辑 LSTM&#xff08;长短期记忆网络&#xff09; 耦合模型 研究实验 数据集 评估指标 研究目的 洪…

stable diffusion 基础教程-文生图

置顶大模型插件资源链接 你如果没有魔法上网,请自取 百度云盘链接:链接:https://pan.baidu.com/s/1_xAu47XMdDNlA86ufXqAuQ?pwd=23wi 提取码:23wi 有疑问加微:mincarver 界面介绍 参数解释 参数解释Sampling method扩散去噪算法的采样模式,不同采样模式会带来不一样的效…

opencv期末练习题(6)附带解析

滑动块调整图像灰度 import cv2 import numpy as np """ 滑动块调整图像灰度1. 读取图片&#xff0c;并转为灰度图 2. 定义启动滑块和阈值滑块 3. 只有启动滑块的值为1时&#xff0c;拖动阈值滑块才生效 4. 根据阈值滑块的值实时对图像进行二值化操作 "&qu…

【文件操作】

目录 为什么使用文件什么是文件二进制文件和文本文件文件的打开和关闭文件的顺序读写文件的随机读写文件读取结束的判定文件缓冲区 1. 为什么使用文件 如果没有文件&#xff0c;我们写的程序数据时存储在电脑内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;…

VS Code 如何调试Python文件

VS Code中有1,2,3处跟Run and Debug相关的按钮&#xff0c; 1 处&#xff1a;调试和运行就不多说了&#xff0c;Open Configurations就是打开workspace/.vscode下的lauch.json文件&#xff0c;而Add Configuration就是在lauch.json文件中添加当前运行Python文件的Configuratio…

C语言编译器(C语言编程软件)完全攻略(第二十七部分:VS安全函数问题(C语言安全函数)是怎么回事?如何解决?)

介绍常用C语言编译器的安装、配置和使用。 二十七、VS安全函数问题&#xff08;C语言安全函数&#xff09;是怎么回事&#xff1f;如何解决&#xff1f; 在 VS&#xff08;Visual Studio&#xff09;下编译C语言程序&#xff0c;如果使用了 scanf()、gets()、strcpy()、strca…

在IDEA中使用git分支进行开发然后合并到Master分支,2022.1.x版本

在实际开发过程中&#xff0c;为了避免因为在开发中出现的问题以及方便发布版本&#xff0c;如果是多版本发布的情况相下&#xff0c;我们通常需要采用分支进行开发&#xff0c;这个时候&#xff0c;我们就需要了解git分支的相关知识点了&#xff0c;本篇博客也是博主在实际公司…

linux高级管理——Squid代理

一、squid服务基础&#xff1a; 1.1缓存代理的概述&#xff1a; 代理的工作机制 当客户机通过代理来请求Web页面时&#xff0e;指定的代理服务器会先检查自己的缓存&#xff0c;如果缓存中已经有客户机需要的页面&#xff0c;则直接将缓存中的页面内容反馈给客户机:如果缓存中…