【Stable Diffusion】(基础篇六)—— embedding

embedding

本系列博客笔记主要参考B站nenly同学的视频教程,传送门:B站第一套系统的AI绘画课!零基础学会Stable Diffusion,这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili

除了大模型和VAE之外,SD中还有embedding模型和lora模型,这两种模型体积都很小,他们对于画面的调节能力不和大模型一样,但也可以实现画风改变和特殊物品形象的精确定义,本文将带你了解emdedding。

在Stable Diffusion(SD)环境中,Embedding(嵌入)是一种用于微调模型以理解和生成特定概念或风格的技术。这种技术通常涉及训练模型来关联特定的文本提示与视觉表示,使得当模型接收到这些提示时,它能生成与之相关联的图像。比如说我们要画一个猫又,大模型中有关于猫、人、妖怪的信息,但是AI并不知道猫又的具体概念,我们添加一个“猫又”的embedding,就相当于在大模型这一本字典中,给猫、人、妖怪这几个描述添加书签,让ai在看到猫又这个词的时候,就去找这几页信息,并将其汇总起来,这样就可以画出猫又了。embedding体积小的秘密也在于此,因为它本身并不需要描述猫又是什么,它只需要记录一些标签信息即可。

embedding的存放位置为SD根目录下的/embeddings,embeddings需要使用特定的“咒语”进行召唤使用,通常在下载的model card中有提供

特定形象

就像上面提出的例子,embedding可以帮助我们快速实现找到合适的物品或人物形象,在实际使用中,可以精确到某个具体的人物,比如在C站中我们可以找到一个守望先锋中D.VA的embedding

在这里插入图片描述

下载好后,在使用的时候,我们需要注意一下embedding不像大模型一样需要特别调用,但需要注意model card中给我们提供的参考激活词,只需要在提示词框中写入激活词即可使用embedding。

在model card的下方也会给出更详细的参数设置建议

在这里插入图片描述

【示例】在相同的参数下和随机种子下,对比添加embedding和没有embedding的效果

masterpiece, 1girl, brown hair, brown eyes, smile, standing, dynamic pose, outdoors, city background, (masterpiece:1,2), best quality, highres, original, extremely detailed wallpaper, perfect lighting,(extremely detailed CG:1.2), drawing, paintbrush,
Negative prompt: NSFW, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, (ugly:1.331), (duplicate:1.331), (morbid:1.21), (mutilated:1.21), (tranny:1.331), mutated hands, (poorly drawn hands:1.5), blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs, (disfigured:1.331), (missing arms:1.331), (extra legs:1.331), (fused fingers:1.61051), (too many fingers:1.61051), (unclear eyes:1.331), lowers, bad hands, missing fingers, extra digit,bad hands, missing fingers, (((extra arms and legs))),
Steps: 20, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 4195426981, Size: 500x500, Model hash: 038ba203d8, Model: 二次元:AbyssOrangeMix2_sfw, Clip skip: 2, Version: v1.5.2

在这里插入图片描述

在这里插入图片描述

上述描述我们使用的都是非常宽泛的描述,在生成D.VA的时候,我们除了激活词之外,还可以使用更多有关D.VA的角色信息描述,如果不会描述的话,我们可以使用提示词反推工具,在图生图界面的右侧,有一些根据图片反推提示词的方法,你只需要导入一张dva的图片,然后反推得出其中的提示词,再使用这些进行文生图就会得到更好的效果。推荐使用DB,速度更快。AI反推得出的提示词并不准确,我们应该筛选合理的内容。

在这里插入图片描述

让我们给文生图添加上这些筛选后的反推的提示词时,得到的效果就更好了

1girl, d.va_\(overwatch\), headphones, bodysuit, solo, long_hair, hand_on_hip, brown_hair, breasts, facial_mark, pilot_suit, brown_eyes, animal_print, cowboy_shot, bangs, medium_breasts, white_gloves, bunny_print, swept_bangs, white_background

在这里插入图片描述

错误肢体负面embedding

embedding还可以帮助我们快速地使用一些形式化固定好的提示词,如经常使用到的一些负面提示词,在每次作画时都一样。

比如非常火的badhand可以用于解决AI不会画手的一大难题,可以理解为这个embedding是一个常见错误手部合集,你只需要将这个embedding在负面提示词中激活就可以省去每次自己写负面提示词的功夫,但是注意阅读作者给出的介绍,有一些embedding相关的参数设置和模型推荐。

在这里插入图片描述

### Stable Diffusion 基础概念和原理 #### 什么是Stable DiffusionStable Diffusion 是一种用于图像生成和编辑的深度学习模型,其核心机制依赖于扩散模型(diffusion models)[^1]。这种类型的模型旨在通过逐步向随机噪声中加入结构化信息来创建新的数据样本。 #### 扩散过程详解 在Stable Diffusion框架下,扩散过程可以被理解为一系列迭代步骤,在这些步骤中,初始输入——通常是纯噪音图片——逐渐演变成为具有特定特征的目标图像。此过程中涉及到两个主要阶段: - **前向传播(Forward Process)**: 将原始清晰图象转换成完全无序的状态(即加噪),这一步骤是可逆且已知概率密度函数的; - **反向传播(Reverse Process)**: 则是从高斯白噪声出发,利用神经网络预测每一步去噪后的潜在表示,最终恢复出高质量的真实世界对象或场景表示[^2]。 #### 架构组成 为了实现上述功能,Stable Diffusion采用了多模块化的架构设计,其中包括但不限于以下几个重要组成部分: - **Text Encoder**: 负责编码文本提示词,使得模型能够根据给定的文字描述生成相应的视觉内容。这一部分通常采用预训练的语言模型作为基础构建[^3]; ```python from transformers import CLIPTextModel, CLIPTokenizer tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14") text_encoder = CLIPTextModel.from_pretrained("openai/clip-vit-large-patch14") prompt = "a photograph of an astronaut riding a horse" inputs = tokenizer(prompt, return_tensors="pt") outputs = text_encoder(**inputs) last_hidden_state = outputs.last_hidden_state ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值