Stable Diffusion中的embedding

嵌入,也称为文本反转,是在 Stable Diffusion 中控制图像样式的另一种方法。在这篇文章中,我们将学习什么是嵌入,在哪里可以找到它们,以及如何使用它们。

什么是嵌入embedding?

嵌入(Embedding)是一种在机器学习和人工智能领域中常用的技术,特别是在图像生成和风格迁移等任务中。文本反转(Textual Inversion)则是一种特定于图像生成领域的方法,它允许用户在不直接修改预训练模型的情况下,通过定义新的关键字来引入新的样式或对象。

这种方法之所以受到关注,主要是因为它提供了一种高效且灵活的方式来扩展和定制AI模型的能力。尤其是在样本图像数量有限的情况下(例如只有3到5个样本),文本反转能够显著提高模型的适应性和创造力。通过这种方式,模型能够学习并模仿特定的风格或特征,并将其应用到新的图像生成过程中。

文本反转是如何工作的?

文本反转的核心思想是将特定的文本描述与图像特征相关联。这个过程通常包括以下几个步骤:

  1. 样本收集:首先,收集一组具有相似风格或包含特定对象的样本图像。
  2. 文本描述:为每个样本图像创建一个文本描述,这个描述应该捕捉到图像的关键特征或风格。
  3. 嵌入训练:使用这些文本描述和对应的样本图像来训练一个嵌入模型。这个模型将学习如何将文本描述映射到图像特征上。
  4. 应用嵌入:一旦嵌入模型训练完成,就可以将其应用于新的图像生成任务中。当模型接收到一个与训练时相似的文本描述时,它能够生成具有相应特征或风格的图像。

嵌入的优势

嵌入技术的优势在于其灵活性和高效性。通过文本反转,用户可以在不改变原有模型结构的前提下,快速地引入新的风格或对象。这种方法特别适用于以下场景:

  • 快速原型设计:设计师和艺术家可以迅速尝试不同的风格和概念,而无需从头开始训练复杂的模型。
  • 个性化定制:用户可以根据自己的喜好和需求,定制独特的图像风格或对象。
  • 数据稀缺情况:即使在样本数量有限的情况下,也能够有效地训练模型,使其学习到新的样式或特征。

总的来说,嵌入和文本反转为图像生成领域提供了一种创新的方法,使得AI模型更加灵活和易于使用。通过这种方式,我们可以更好地利用现有的AI资源,创造出更加多样化和个性化的视觉内容。

下面转载的原始研究文章中的图表说明了它是如何工作的。

在使用稳定扩散AI模型进行图像生成时,引入新的对象或样式是一个常见的需求。为了实现这一点,文本反转(Textual Inversion)提供了一种有效的方法,允许我们在不修改模型本身的情况下,通过定义新的关键字来实现这一目标。下面是详细的步骤说明:

定义新的关键字

  1. 选择或创建新关键字:首先,你需要为想要添加到模型中的新对象或样式选择或创造一个独特的关键字。这个关键字应该是描述性的,能够清晰地表达你想要引入的新元素。
  2. 标记化:在模型中,所有的文本提示都是通过标记化(Tokenization)过程被转换成数字形式的。这个过程将文本中的每个单词或符号转换成对应的数字标记。对于你定义的新关键字,它也会被转换成一个唯一的数字标记。

生成嵌入向量

  1. 嵌入向量生成:每个标记(包括新关键字的标记)都会被进一步转换为嵌入向量。嵌入向量是高维空间中的点,它能够捕捉和表示文本的语义信息。在这个过程中,新关键字会被赋予一个独特的嵌入向量。
  2. 文本反转过程:文本反转技术的核心在于,它允许我们通过嵌入向量来查找和表示新关键字,而无需更改模型的任何其他部分。这意味着,即使模型在训练时没有直接接触过新关键字,它也能够通过嵌入向量来理解和生成与新关键字相关的图像内容。

应用新关键字

  1. 在提示中使用新关键字:在生成图像时,你可以在文本提示中包含新关键字。由于新关键字已经被标记化并转换成了嵌入向量,模型能够识别并将其作为生成图像的依据。
  2. 生成图像:当模型接收到包含新关键字的提示时,它会查找与该关键字对应的嵌入向量,并使用这个向量来生成图像。这个过程就像是在语言模型中引入了一种新的语言元素,使得模型能够理解和创造出新的概念。

通过这种方式,文本反转为我们提供了一种强大的工具,使得我们能够在不改变模型结构的前提下,灵活地引入新的对象或样式,极大地扩展了图像生成的可能性。这种方法不仅提高了模型的适应性和灵活性,也为艺术家和设计师提供了更多的创作自由。

在哪里可以找到embedding

下载embedding的首选位置是 Civitai

我们在C站的右上角可以有一个filter选项:

在filter中选择model types= embedding就可以找到对应的embedding了。

如何使用embedding

在 AUTOMATIC1111 中使用embedding很容易。

首先,从 Civitai 网站下载好embedding文件。下载下来的embedding文件通常是bin或者pt结尾的。

你需要把这些embedding文件放到Stable diffusion webUI根目录下面的embeddings文件夹,然后重启Stable diffusion webUI即可。

在webUI界面,你可以在Textual Inversion中找到你安装好的embedding。

要使用他,只需要点击对应的embedding, webUI会自动把对应的embedding添加到提示词中去。比如:

a girl,0lg4kury,

这里0lg4kury就是我安装的第一个embedding的名字。点击生成,看看效果:

可以看到人物还是很相似的。

这里我用了多种采样方法来进行最终图片的对比。

调整embedding的强度

之前听过我的prompt文章的朋友应该知道我们可以调整提示词强度的。

因为embedding同样也是提示词的一部分,所以我们也可以用同样的方式来调整embedding的强度。

neg embedding

有了正面的embedding,同样也有负面的embedding,下面是几个常用的负面embedding:

embedding、dreambooth 和hypernetwork的区别

文本反转(Textual Inversion)、Dreambooth 和超网络 是三种不同的技术,它们都可以用于微调Stable Diffusion模型,但各自有不同的特点和应用场景。

  1. 文本反转(Textual Inversion)

    • 文本反转是一种通过少量样本图像来训练模型的方法,它允许用户定义新的关键字来描述特定的对象或风格。
    • 这种方法不需要更改模型的结构,而是通过嵌入向量来实现新关键字的添加。
    • 嵌入向量存储在相对较小的文件中(通常小于100 kB),这使得它们易于存储和传输。
    • 文本反转适合于快速添加新概念到模型中,但可能不如其他方法那样灵活或强大。
  2. Dreambooth
    • Dreambooth是一种基于深度学习的图像风格转换技术,它使用少量图像来训练模型。
    • 它特别适合于生成高质量艺术作品,而无需用户具备专业艺术技能。
    • Dreambooth通过微调模型的权重来实现特定主题的生成,这可能导致模型过度拟合训练数据。
    • 它生成的模型文件相对较大(2-4GB),并且在使用时需要加载模型。
  3. 超网络(Hypernetwork)
    • 超网络是一种使用神经网络来生成模型参数的方法。
    • 它通过在原有模型的基础上添加一个附加网络来实现微调,这个附加网络可以学习新的生成特征。
    • 超网络生成的模型文件大小介于文本反转和Dreambooth之间(大约几十MB),这使得它在存储和传输方面比较平衡。
    • 超网络适合于生成近似内容图像,如果训练数据与目标风格高度相关,那么超网络是一个不错的选择。

总的来说,文本反转、Dreambooth和超网络各有优势和适用场景。文本反转适合快速添加新概念,Dreambooth适合个性化的高质量图像生成,而超网络则提供了一种在保留原有模型结构的同时进行微调的中间方案。用户可以根据自己的需求和资源限制来选择最合适的方法。

点我查看更多精彩内容:www.flydean.com

Stable Diffusion中的embedding的更多相关文章

  1. Diffusers中基于Stable Diffusion的哪些图像操作

    目录 辅助函数 Text-To-Image Image-To-Image In-painting Upscale Instruct-Pix2Pix 基于Stable Diffusion的哪些图像操作们 ...

  2. AI绘画提示词创作指南:DALL·E 2、Midjourney和 Stable Diffusion最全大比拼 ⛵

    作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 自然语言处理实战系列:https://www.showmeai.tech ...

  3. 从 GPT2 到 Stable Diffusion:Elixir 社区迎来了 Hugging Face

    上周,Elixir 社区向大家宣布,Elixir 语言社区新增从 GPT2 到 Stable Diffusion 的一系列神经网络模型.这些模型得以实现归功于刚刚发布的 Bumblebee 库.Bum ...

  4. 基于Docker安装的Stable Diffusion使用CPU进行AI绘画

    基于Docker安装的Stable Diffusion使用CPU进行AI绘画 由于博主的电脑是为了敲代码考虑买的,所以专门买的高U低显,i9配核显,用Stable Diffusion进行AI绘画的话倒 ...

  5. 使用 LoRA 进行 Stable Diffusion 的高效参数微调

    LoRA: Low-Rank Adaptation of Large Language Models 是微软研究员引入的一项新技术,主要用于处理大模型微调的问题.目前超过数十亿以上参数的具有强能力的大 ...

  6. Stable Diffusion魔法入门

    写在前面 本文为资料整合,没有原创内容,方便自己查找和学习, 花费了一晚上把sd安装好,又花了大半天了解sd周边的知识,终于体会到为啥这些生成式AI被称为魔法了,魔法使用前要吟唱类比到AI上不就是那些 ...

  7. Window10环境下,Stable Diffusion的本地部署与效果展示

    Diffusion相关技术最近也是非常火爆,看看招聘信息,岗位名称都由AI算法工程师变成了AIGC算法工程师,本周跟大家分享一些Diffusion算法相关的内容. Window10环境下,Stable ...

  8. Stable Diffusion 关键词tag语法教程

    提示词 Prompt Prompt 是输入到文生图模型的文字,不同的 Prompt 对于生成的图像质量有较大的影响 支持的语言Stable Diffusion, NovelAI等模型支持的输入语言为英 ...

  9. 最新版本 Stable Diffusion 开源AI绘画工具之部署篇

    目录 AI绘画 本地环境要求 下载 Stable Diffusion 运行启动 AI绘画 关于 AI 绘画最近有多火,既然你有缘能看到这篇文章,那么相信也不需要我过多赘述了吧? 随着 AI 绘画技术的 ...

  10. 最新版本 Stable Diffusion 开源 AI 绘画工具之汉化篇

    目录 汉化预览 下载汉化插件一 下载汉化插件二 下载汉化插件三 开启汉化 汉化预览 在上一篇文章中,我们安装好了 Stable Diffusion 开源 AI 绘画工具 但是整个页面都是英文版的,对于 ...

随机推荐

  1. 记录--vue3中的ref,toRef,toRefs

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1. ref的使用 ref 接受一个原始值,返回一个具有响应式的对象,对象有一个value属性,其值就是所传递的原始值. ref是做的一个 ...

  2. 记录--什么时候会阻塞HTML文档渲染过程?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 HTML页面加载过程会发生什么?因为浏览器网络拉取资源是多线程的,但是dom树的操作都是在一个线程中的,所以网页资源的解析.js加载.do ...

  3. verilog之时钟信号的编写2

    verilog之时钟信号的编写2 1.时钟信号的特点 时钟信号除了可以根据时序一个个变化列举出来,还可以利用其循环的变化的特点,使用循环执行语句always来实现.这种方法实现的时钟信号可以一直执行且 ...

  4. verilog之基本结构

    verilog语法的基本结构 1.verilog的定义 verilog,一种硬件描述语言,致力于提高数字电路,尤其是大规模数字电路的描述规范.从描述就可以看出,这个语言和C不同,不是高级语言.但是,这 ...

  5. KingbaseES V8R6 运维案例 -- sys_filenode.map故障案例

    ​ 案例说明: 数据库下的sys_filenode.map文件被破坏,导致此数据库无法连接访问. Nail表(内核系统表)Relfilenode的存储机制: 经过研究发现,在数据目录里存在着pg_fi ...

  6. 论文阅读小结(B/S和C/S结构)

    论文阅读小结 一.B/S 和 C/S 软件体系结构选择 1) C/S . B/S 结构概述 C/S 结构,即 Client/Server (客户机 / 服务器 ), C/S 结构软件分为客户机和服务器 ...

  7. #树状数组,dp#洛谷 3506 [POI2010]MOT-Monotonicity 2

    题目 给出\(N\)个正整数\(a[1..N]\),再给出\(K\)个关系符号(>.<或=)\(s[1..k]\). 选出一个长度为\(L\)的子序列(不要求连续),要求这个子序列的第\( ...

  8. SQL CREATE INDEX 语句- 提高数据库检索效率的关键步骤

    SQL CREATE INDEX 语句 SQL CREATE INDEX 语句用于在表中创建索引. 索引用于比其他方式更快地从数据库中检索数据.用户无法看到索引,它们只是用于加速搜索/查询. 注意: ...

  9. 攻防世界 Mine- IDA静调或x64dbg动调 两种方式

    刷攻防世界的最后一道二星题,记录一下,大佬请飘过 题目 分析过程 我很勇,我先双击看看这是什么 是一个扫雷游戏,第一下运气好没踩雷,发现无法继续输入了:如果运气不好,会输出"您踩雷啦!&qu ...

  10. B端架构升级之路

    一.背景 随着B端业务快速发展,系统愈趋复杂.我们发起了B端架构升级专项,基于B端业务的特点,从研发规范建设.B端架构基建.系统架构升级和落地保障等多方面提升了B端的架构水平. 二.升级思路 架构是一 ...