Textual Inversion: 一种精调Stable Diffusion模型的方法

这篇具有很好参考价值的文章主要介绍了Textual Inversion: 一种精调Stable Diffusion模型的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

最近的文本到图像Stable Diffusion (SD)模型已经证明了使用文本提示合成新颖场景的前所未有的能力。这些文本到图像的模型提供了通过自然语言指导创作的自由。然而,它们的使用受到用户描述特定或独特场景、艺术创作或新物理产品的能力的限制。很多时候,用户被迫行使她的艺术自由来生成特定的独特或新概念的图像。此外,使用新数据集为每个新概念重新训练模型非常困难且昂贵。

论文《An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion》提供了一种简单的方法来允许这些创作自由。在这篇博文中,我们正在讨论一种将我们自己的猫变成一幅画的方法,或者想象一种基于我们最喜欢的玩具使用SD的新产品。我们可以通过冻结文本到图像模型的嵌入空间中的新“单词”,仅使用对象或样式的 3-5 个图像来学习这些用户提供的新概念。
Textual Inversion: 一种精调Stable Diffusion模型的方法,stable diffusion,AIGC,人工智能,神经网络,pytorch

textual inversion工作机理

在我们之前关于SD的博客中,我们看到文本编码器模型将任何输入提示转换为嵌入,这些嵌入被馈送到扩散模型作为指导或调节。我们还可以在图 1 中看到,此过程涉及将输入提示tokenize为一组tokens,这些tokens是某些预定义字典中的索引,然后将这些tokens通过文本编码器传递以获取嵌入。每个token都链接到一个唯一的嵌入向量,可以通过基于索引的查找来检索该嵌入向量。

这些文本嵌入与潜在图像输入和 t 一起传递到下游 UNet 模型作为指导。我们还可以更改一个对象的token嵌入,并将其替换为另一个对象的token嵌入,以获得不同的图像。同样,我们可以学习特定对象或概念的新token嵌入。

在 textural inversion中,我们选择这个嵌入空间作为反演的目标。“ textural inversion”背后的想法是使用一些示例图像向文本模型教授一个新单词,并训练其嵌入接近某些视觉表示。这是通过向词汇表添加新token并使用一些代表性图像进行训练来实现的。因此,我们尝试找到代表我们新的特定概念的新嵌入向量。 textural inversion可用于将经过训练的标记添加到词汇表中,并将其与预训练的SD模型一起使用。

因此,我们指定一个占位符字符串,我们将其称为伪词,用 S* 表示,如图 1 所示,来表示我们希望学习的新概念。我们干预嵌入过程,并用新学习的嵌入 v* 替换与tokenized字符串相关的向量。因此,我们能够将新概念注入我们的词汇中。然后像任何其他单词一样对待这个伪单词,并且可以用来为生成模型组成新颖的文本查询或新句子。因此,人们可以要求“一张S在海滩上的照片”,“一幅S挂在墙上的油画”,甚至可以组成两个概念,例如“一幅S1的S2风格的画”。 ”。在此过程中我们没有对生成模型进行任何更改,因此基本生成模型可以用于我们的新概念。

论文作者将 textural inversion过程的示意图如下所示。
Textual Inversion: 一种精调Stable Diffusion模型的方法,stable diffusion,AIGC,人工智能,神经网络,pytorch

我们可以看到,我们可以从提示“A photo of S*”中获取图像,其中 S* 是一个新对象或新样式,就像我们从提示“A photo of cat”中获取图像一样。

文本嵌入

找到这些伪词的嵌入的任务被定义为反转任务之一。在这里,我们使用固定的预训练文本到图像模型和一小组描述该概念的图像。我们的目标是找到一个单词嵌入,这样“A photo of S*”形式的句子将导致从我们的小集合中重建图像。这种嵌入是通过优化过程找到的(图 4),我们将其称为“Textual Inversion”。

在Latent Diffusion Models领域,inversion是通过向图像添加噪声然后通过网络对其进行去噪来执行的,但此过程会显着改变图像内容。在文本转换中,我们反转用户提供的概念并将该概念表示为模型词汇表中的新伪词。新标记的嵌入存储在一个小型 PyTorch pickled 字典中,其密钥是经过训练的新文本token。由于我们pipeline中的编码器不知道该术语,因此我们需要手动添加它。

训练

Textual Inversion的目的是能够快速引导生成新的、用户指定的概念。我们尝试将这些新颖的概念编码为预训练的文本到图像模型的中间表示。因此,我们寻求在文本到图像模型所使用的文本编码器的词嵌入阶段表示这些概念。人们发现这个嵌入空间的表现力足以捕获基本的图像语义。

Textual Inversion是通过一类名为Latent Diffusion Models的特定生成模型以及最近引入的一类在自编码器的隐空间中运行的去噪扩散概率模型 (DDPM) 来实现的。LDMs 由 2 个核心组件组成:

  • 自编码器:编码器学习将图像 x 映射到空间潜在代码 z = E(x)。随后,解码器 D 将潜在映射回图像,使得 D(E(x)) = x
  • 扩散模型——经过训练可以对正态分布变量进行去噪。扩散模型可以以类标签、文本、语义图或其他图像到图像翻译任务为条件。令 c θ ( y ) c_θ(y) cθ(y) 为将条件输入 y 映射到条件向量的模型。LDM 损失由下式给出:
    Textual Inversion: 一种精调Stable Diffusion模型的方法,stable diffusion,AIGC,人工智能,神经网络,pytorch

其中 t 是时间步长, z t z_t zt 是到时间 t 降噪的隐图像表示, ε ε ε是未缩放的噪声样本, ε ( θ ) ε (θ) ε(θ) 是去噪网络。我们的目标是正确去除添加到图像潜在表示中的噪声。训练时, c ( θ ) c(θ) c(θ) ε ( θ ) ε (θ) ε(θ) 联合优化以最小化 LDM 损失。我将在未来的博文中提供用于训练和推理的代码。

Textual Inversion

为了找到这些新的嵌入,我们使用一小组图像(通常是 3-5 张),它们描述了跨多种设置(例如不同的背景或姿势)的目标概念。我们通过直接优化找到 v*,通过最小化从小集合中采样的图像的 LDM 损失(如图 3 所示)。我们随机抽取中性上下文文本,如“S* 的照片”、“S* 的演绎”等来调节生成。

我们的优化目标可以定义为:
Textual Inversion: 一种精调Stable Diffusion模型的方法,stable diffusion,AIGC,人工智能,神经网络,pytorch

这个目标是通过重新使用与原始隐扩散模型相同的训练方案来实现的,同时保持 c ( θ ) c(θ) c(θ) ε ( θ ) ε (θ) ε(θ) 固定。这是一项重建任务,学习到的嵌入有望捕获新颖概念特有的精细视觉细节。

Textual Inversion的应用

Textual Inversion可用于一系列应用,主要包括以下内容:

  • 图像多样化
  • 文本引导合成
  • 风格转移
  • 概念合成
  • 偏差减少
  • 下游应用

我们将在下一节中讨论这些应用程序及其用例:

图像多样化

Textual Inversion: 一种精调Stable Diffusion模型的方法,stable diffusion,AIGC,人工智能,神经网络,pytorch
Textual Inversion可用于使用单个伪词创建对象的变体,如图 5 所示。它能够使用单个词嵌入捕获对象的更精细的细节。

文本引导合成

Textual Inversion: 一种精调Stable Diffusion模型的方法,stable diffusion,AIGC,人工智能,神经网络,pytorch

Textual Inversion可用于通过将学习的伪词与新的条件文本结合起来来创建新颖的场景。从图 6 中生成的图像中我们可以看到,可以利用伪词和新条件文本中的语义概念来创建新场景。由于该模型是使用预先训练的大规模文本到图像合成模型构建的,因此单个伪词可以重复使用多代。

风格迁移

Textual Inversion: 一种精调Stable Diffusion模型的方法,stable diffusion,AIGC,人工智能,神经网络,pytorch
这是Textual Inversion最典型的用例之一,其中用户可以绘制特定艺术家的独特风格并将其应用到新的创作中。Textual Inversion模型也可以找到代表特定未知风格的伪词。我们可以为模型提供一小组具有共享风格的图像,并用诸如“风格 S* 的绘画”之类的风格替换训练文本。应该指出的是,这与传统的风格转移方法不同。

概念合成

Textual Inversion: 一种精调Stable Diffusion模型的方法,stable diffusion,AIGC,人工智能,神经网络,pytorch
Textual Inversion还可用于组合合成,其中在指导文本中使用多个学习的概念。可以看出,该模型可以同时对多个新概念或伪词进行推理。但它未能将两个概念并列放置。造成这种情况的原因可能是训练样本仅包含来自单个概念的图像。

偏差减少

Textual Inversion: 一种精调Stable Diffusion模型的方法,stable diffusion,AIGC,人工智能,神经网络,pytorch

从文本到图像生成的图像由于用于训练它们的训练数据而存在偏差。因此,这些偏差也可以在生成的样本中看到,如图 9 所示。可以看出,Textual Inversion可以通过合并更具包容性的数据集来减少训练数据集中的偏差,从而产生更具包容性的生成。

下游应用

Textual Inversion: 一种精调Stable Diffusion模型的方法,stable diffusion,AIGC,人工智能,神经网络,pytorch
Textual Inversion生成的伪词也可以用于构建LDMs上的下游模型。例如,Blended Latent Diffusion,其中可以通过基于掩模的混合过程来完成基于本地文本的图像编辑,可以与学习的伪词一起进行调节,而不需要对原始模型进行太多改变。

Textual Inversion的概念很重要,原因有以下两个:

  • 我们可以通过在自然语言指令的指导下合成用户提供的概念的新颖场景来生成个性化文本到图像。
  • 生成模型背景下的“Textual Inversion”的想法旨在在文本编码器的嵌入空间中找到新的伪词,该伪词可以捕获新概念的高级语义和精细视觉细节。

注: 博文中的大部分图片均取自原始论文。文章来源地址https://www.toymoban.com/news/detail-770023.html

参考

  • Gal, R., Alaluf, Y., Atzmon, Y., Patashnik, O., Bermano, A. H., Chechik, G., & Cohen-Or, D. (2022). An image is worth one word: Personalizing text-to-image generation using textual inversion. arXiv preprint arXiv:2208.01618.
  • https://huggingface.co/docs/diffusers/

到了这里,关于Textual Inversion: 一种精调Stable Diffusion模型的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Stable Diffusion】Stable Diffusion各类模型描述

    Stable Diffusion 是一种新型的生成模型,它可以用于生成高质量的图像、文本和音频等多种形式的数据。目前已经出现了许多基于 Stable Diffusion 模型的变种,下面简单介绍其中几种比较流行的模型: 模型链接:https://huggingface.co/stabilityai DDIM 是 Stable Diffusion 的第一个应用,它采用

    2024年02月16日
    浏览(34)
  • 精调llama模型

    github地址:https://github.com/facebookresearch/llama-recipes github:https://github.com/facebookresearch/llama

    2024年02月04日
    浏览(22)
  • Stable Diffusion教程之使用Stable Diffusion改进图像分割模型

    作为 ML 工程师,Edge Analytics和Infinity AI的团队非常熟悉与为计算机视觉应用程序获取高质量标记图像相关的挑战。随着生成图像模型的发布,例如来自Stability AI的开源Stable Diffusion,我们探索了使用生成模型来提高特定语义分割模型的性能。 Stable Diffusion是 Stability AI 在今年早些

    2024年02月10日
    浏览(29)
  • 番外篇Diffusion&Stable Diffusion扩散模型与稳定扩散模型

    本篇文章为阅读笔记,,主要内容围绕扩散模型和稳定扩散模型展开,介绍了kl loss、vae模型的损失函数以及变分下限作为扩展部分。扩散模型是一种生成模型,定义了一个逐渐扩散的马尔科夫链,逐渐项数据添加噪声,然后学习逆扩散过程,从噪声中构建所需的数据样本。稳

    2024年02月03日
    浏览(41)
  • [论文解析] Null-text Inversion for Editing Real Images using Guided Diffusion Models

    code links: https://null- textinversion.github.io/. 在本文中,我们引入了一种精确的反演技术,从而方便了直观的基于文本的图像修改。 我们提出的反演包含两个新的关键组成部分: (i)扩散模型的关键反演。我们为每个时间戳使用单个关键噪声向量,并围绕它进行优化。我们证明了

    2024年02月16日
    浏览(53)
  • stable diffusion模型讲解

    AI模型最新展现出的图像生成能力远远超出人们的预期,直接根据文字描述就能创造出具有惊人视觉效果的图像,其背后的运行机制显得十分神秘与神奇,但确实影响了人类创造艺术的方式。 AI模型最新展现出的图像生成能力远远超出人们的预期,直接根据文字描述就能创造

    2024年02月08日
    浏览(33)
  • Stable Diffusion模型测试

    ` AI图像生成异常火爆,听说鹅厂都开始用AI图像生成做前期设定了,小厂更是直接用AI替代了原画师的岗位。这一张张丰富细腻、风格各异、以假乱真的AI生成图像,背后离不开Stable Diffusion算法。 Stable Diffusion是stability.ai开源的图像生成模型,可以说Stable Diffusion的发布将AI图像

    2024年02月16日
    浏览(36)
  • Stable Diffusion模型原理

    在Stable Diffusion诞生之前,计算机视觉和机器学习方面最重要的突破是 GAN(Generative Adversarial Networks 生成对抗网络)。GAN让超越训练数据已有内容成为可能,从而打开了一个全新领域——现在称之为生成建模。 然而,在经历了一段蓬勃发展后,GAN开始暴露出一些瓶颈和弊病,

    2024年02月03日
    浏览(55)
  • 扩散模型 - Stable Diffusion

    ​ Stable Diffusion 是由 Stability AI 开发的 开源 扩散模型。Stable Diffusion 可以完成多模态任务,包括:文字生成图像(text2img)、图像生成图像(img2img)等。 4.1 Stable Diffusion 的组成部分 ​ Stable Diffusion 由两部分 组成 : 文本编码器:提取文本 prompt 的信息 图像生成器:根据文本

    2024年02月11日
    浏览(46)
  • 在中文LLaMA模型上进行精调

    最近在开源项目ymcui/Chinese-LLaMA-Alpaca的基础上完成了自己的中文模型精调工作,形成了两个工具共享给大家。ymcui/Chinese-LLaMA-Alpaca 如果用于精调,首先要准备精调数据,目标用途如果是问答,需要按问答格式准备数据。因此写了第一个工具,用于从xlsx文件中读取数据,并按形

    2024年02月13日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包