Stable Diffusion入门指南

SD 保姆教程,从原理功能到案例输出展示,最后简述 ControlNet 的使用技巧。

Stable Diffusion 的基本介绍

Stable Diffusion是一种基于扩散过程的图像生成模型,可以生成高质量、高分辨率的图像。它通过模拟扩散过程,将噪声图像逐渐转化为目标图像。这种模型具有较强的稳定性和可控性,可以生成具有多样化效果和良好视觉效果的图像。

Stable Diffusion对设计师的帮助

Stable Diffusion可以通过生成多样化、高质量的图像、修复损坏的图像、提高图像的分辨率和应用特定风格到图像上等方式,辅助视觉创意的实现。它为视觉艺术家、设计师等提供更多的创作工具和素材,促进视觉艺术领域的创新和发展。

Stable Diffusion与Midjourney的比较

对比了两款AI绘画软件之间的差异。简单来说,SD具有更高的可控性,而MJ更倾向于抽卡和盲盒的随机性。因此,使用SD可以更精确的控制绘画的结果,从而使用mj则更加随机化和不确定,可能会有更多惊喜和变化。

功能Stable DiffusionMidjourney
收费标准免费三档套餐,8-60美元不等
上手难度中等
配置要求8G以上显存,GPU要求高,否则会有部分功能无法使用网页端,翻墙
模型数量比较可在C站下载数千种大模型,包括后续会陆续有一些具有商业价值的模型更新数十种,但是具体输出风格产出也受提示词影响
插件/社区C站,以及一些社区,总体来说规模反馈逼MJ小,但是质量相对高ISUX已经开始在QQ频道内测,估计后续中文版会扩大影响范围
生成图片质量中等,需要选择不同的大模型,Loar不停调试产出,后期数量后高
产出速度/数量产出速度取决于GPU&显存,可以一次自定义产出批次数量,最大数量为99常规模式下一次4张,然后进行筛选,fast模式下大约1min左右
内容可控程度高,但需要配合图生图的一些模式以及ControNet中,像抽盲盒,很难把控具体形象
内容过滤没有

一、基础介绍

1.提示词

正向提示词:

生成图像时,我们可以使用正向提示词来指定想要生成的图像。正向提示词可以是脑子里想到的图片或一句话,将其拆分成不同的关键词,并用逗号隔开作为输入。

需要注意的是,相同的指令在不同的模型库和参数下,生成的输出图像可能会不一样。此外,提示词的顺序也非常重要,因为它们的顺序会影响到生成图像的权重。通常情况下,越靠前的提示词权重越大,越靠后的提示词权重越小。

反向提示词:

输入框内输入的标签内容就是你画面中不想要出现的东西,如:低质量的,缺手指,五官不齐等等

提示词拆分:

①对于使用提示词生成图像生成的小伙伴来说,当看到喜欢的图像或脑海中想到很多画面,但却不知道如何用提示词准确描述,现在有三种方法可以帮助大家快速拆分和生成图像。

Stable Diffusion 中自带反推功能,可以通过将想要拆分的图像拖入反推,点击按钮来获得生成该图像的提示词。第一次使用可能会有些慢,需要稍等片刻。需要注意的是,这些提示词需要进行后期的优化,常用的方法是通过百度翻译后进行增删改,或者输入到 GPT 中进行优化,优化后将提示词放入相应的框内进行图像输出。

②第二种方法我们可以借助三方网站:https://replicate.com/

来进行拆分,拆分好后,同第一条一样,进行一个增删改,然后我们对两种方法进行比较,通过比较后,我们可以进行词汇的筛选与合并

③利用 gpt 或文心等相关工具,将想要描述的长句输入,最后加一句描述,请将这句话拆分为 Stable Diffusion 的提示词,如果不满意可以继续恢复优化提示词,或者换一批相关描述,然后将转换好的提示词同 ①一样增删改

2. 符号的使用

正如前文所述,词汇在提示中的位置越靠前,其所占的权重就越大。为了进一步调整提示关键词的权重,我们可以通过以下语法来设置关键词的权重:在选中关键词的同时,按下键盘上的 Ctrl+⬆️ ⬇️来快速调整权重。每次调整的权重值为0.1,建议将权重值控制在0.7-1.4之间。简单来说,将每个提示词看作一个独立的个体,权重默认为1,而后面的数值就相当于在修改这个默认值。当然,我们也可以将权重调整为负数,从而在提示中产生与原意相反的影响。

通过这种方法,我们可以更加精确地控制提示关键词的权重,以达到更好的提示效果。同时,我们也需要注意保持提示内容的流畅性和自然性,避免过度的修改导致提示内容的语义不连贯或不符合实际情况。

3. 图像的输出

画面的信息量取决于输出图片的大小。在全身构图中,一些细节,例如脸部、饰品和复杂的纹样,只有在较大的图像中才能得到充分的展示空间,如图像太小,脸部,手部,一些细节就会被压缩成一团,无法得到充分的表现,以下图的风景为例,当画幅越大时,展示的内容越多。

二、界面部分

1. 采样迭代步数

输出画面需要的步数,每一次采样步数都是在上一次的迭代步骤基础上绘制生成一个新的图片,一般来说采样迭代步数保持在 18-30 左右即可,低的采样步数会导致画面计算不完整,高的采样步数仅在细节处进行优化,对比输出速度得不偿失。

2. 采样方法的介绍

常用的有三种,分别是 Euler a,DPM++2S a Karras 和 DDI

Euler a:

①Euler a 是一种用于控制时间步长大小的可调参数,在 Stable Diffusion 中采用 Euler 时间步长采样方法。适当的 Euler a 值能够捕捉到细节和纹理,但如果值太大会导致过度拟合,生成图像出现噪点等不良效果。

②一句话概括:采样生成速度最快,但是如果说在高细节图增加采样步数时,会产生不可控突变(如人物脸扭曲,细节扭曲等)

适合:ICON,二次元图像,小场景

下图为大家展示同提示词不同步幅

DPM++2S a Karras:

①采用 DPM++2S a Karras 采样方法生成高质量图像,该方法在每个时间步长中执行多次操作,同等分辨率下细节会更多,比如可以在小图下塞进全身,代价是采样速度更慢

②适合:写实人像,复杂场景刻画

下图展示 elura a 同提示词不同步幅下的输出图像,可以看到步幅越高,细节刻画越好

DDIM

①DDIM 采样方法可以快速生成高质量的图像,相比其他采样方法具有更高的效率,想尝试超高步数时可以使用,随着步数增加可以叠加细节

②适合:写实人像,复杂场景刻画

下图为大家展示 DDIM 同提示词不同步幅下的输出图像,可以看到随着步幅的提高,细节和丰富度逐渐提高

3. 提示词相关性

Stable Diffusion 中的提示词相关性指的是输入提示词对生成图像的影响程度。当我们提高提示词相关性时,生成的图像将更符合提示信息的样子;相反,如果提示词相关性较低,对应的权重也较小,则生成的图像会更加随机。因此,通过调整提示词相关性,可以引导模型生成更符合预期的样本,从而提高生成的样本质量。

①在具体应用中,对于人物类的提示词,一般将提示词相关性控制在 7-15 之间;

②而对于建筑等大场景类的提示词,一般控制在 3-7 左右。这样可以在一定程度上突出随机性,同时又不会影响生成图像的可视化效果。因此,提示词相关性可以帮助我们通过引导模型生成更符合预期的样本,从而提高生成的样本质量。

4. 随机种子

随机种子是一个可以锁定生成图像的初始状态的值。当使用相同的随机种子和其他参数,我们可以生成完全相同的图像。设置随机种子可以增加模型的可比性和可重复性,同时也可以用于调试和优化模型,以观察不同参数对图像的影响。

在 Stable Diffusion 中,常用的随机种子有-1 和其他数值。当输入-1 或点击旁边的骰子按钮时,生成的图像是完全随机的,没有任何规律可言。而当输入其他随机数值时,就相当于锁定了随机种子对画面的影响,这样每次生成的图像只会有微小的变化。因此,使用随机种子可以控制生成图像的变化程度,从而更好地探索模型的性能和参数的影响。

在工作产出中,如果细微调整,我们将会固定某个种子参数然后进行批量生成

三、模型部分

1. Checkpoint 的介绍

对于模型作者而言,训练模型通常指生成 Checkpoint 文件。这些文件包含了模型参数和优化器状态等信息,是训练过程中定期保存的状态快照。

对于使用者而言,可以将 Checkpoint 文件理解为一种风格滤镜,例如油画、漫画、写实风等。通过选择对应的 Checkpoint 文件,您可以将 Stable Diffusion 模型生成的结果转换为您所选择的特定风格。需要注意的是,一些 Checkpoint 文件可能需要与特定的低码率编码器(如 Lora)配合使用,以获得更好的效果。

在下载 Checkpoint 文件时,您可以查看相应的模型简介,通常作者会提供相应的文件和说明事项,以帮助您更好地使用和理解该文件。

总之,Checkpoint 文件是 Stable Diffusion 模型训练过程中定期保存的状态快照,使用者可以将其理解为一种风格滤镜,用于将模型输出结果转换为特定的风格。在使用 Checkpoint 文件时,需要注意文件的匹配和相应的使用说明。

2. VAE 的介绍

可以将 VAE 理解为对模型的滤镜加微调,不同的 VAE 可能有一些细节上的差异,但不会影响输出的效果。

它可以增强模型的表现,有些模型文件已经自带了 VAE 效果,因此不需要盲目地去挂载,可以选择自动模式来简化日常使用。

3. embedding 的介绍

如果你有做过 UI 的经验,那么你应该知道组件的概念。在 Stable Diffusion 中,embedding 技术就可以被理解为一种组件,它可以将输入数据转换成向量表示,方便模型进行处理和生成。

举个例子,如果我们想要生成一个开心的皮卡丘,通常需要输入很多描述词,如黄毛、老鼠、长耳朵、腮红等等。但是,如果引入皮卡丘的 embedding,我们只需要输入两个词:皮卡丘和开心。皮卡丘的 embedding 打包了所有皮卡丘的特征描述,这样我们就不用每次输入很多单词来控制生成的画面了。

在日常使用中,embedding 技术通常用于控制人物的动作和特征,或者生成特定的画风。相比于其他模型(如 LORA),embedding 的大小只有几十 KB,而不是几百兆或几 GB,除了还原度对比 lora 差一些但在存储和使用上更加方便。

总之,embedding 技术将输入数据转换为向量表示,为模型的处理和生成提供了便利。通过使用 embedding,我们可以更加轻松地生成符合预期的样本,而不需要手动输入大量的描述词汇。

4. LORA 的介绍

LORA 与 embedding 在本质上类似,因为携带着大量的训练数据,所以 LORA 对人物和细节特征的复刻更加细腻

使用技巧:

通常来说,每个 LORA 模型都有对应的底膜和触发词汇。我们可以查看 LORA 作者产出的相关图片,从中获取模型信息,并从中选择一些提示词和排除词来指定生成图像的方向。需要注意的是,每个 LORA 模型对输出图像的权重设置是非常重要的。权重设置越大,对画面的影响因素就越浅。通常情况下,权重应该控制在 0.7-1 之间。如果权重过高,会大幅度影响出图的质量。

为了获得最佳效果,我们可以根据不同的 LORA 模型选择适当的提示词和排除词,并在设置权重时进行调整。同时,我们还可以参考其他作者的经验和技巧,以便更好地利用 LORA 生成图像。

四、图生图

简介:

是一种生成图像的方法,它可以通过对已有的图像进行修改或变形,生成新的图像。在 Stable Diffusion 中,我们可以将垫图的图像看作是一张“初始图像”,通过多次迭代,对其进行修改和变形,逐步生成与垫图风格类似想要的图片。

需注意的是图生图相对于文生图多出两个功能

重绘幅度:

指的是每次迭代中图像被重新绘制的程度或幅度,也就是新生成的图像与上一次迭代生成的图像之间的差异程度。

它的取值范围在 0 到 1 之间。当 值等于 0 时,新生成的图像与上一次迭代生成的图像完全一致,即没有重新绘制;

当值等于 1 时,新生成的图像与上一次迭代生成的图像完全不同,即完全重新绘制。

需要注意的是,重绘幅度的大小会影响生成图像的质量和逼真程度。当重绘幅度较小时,生成的图像可能会比较模糊或粗糙;

当重绘幅度较大时,生成的图像可能会出现明显的噪点或瑕疵。

缩放模式:

拉伸:不改变宽高比的前提下将图片拉伸,宽度高度充满画面空间的 100%

裁剪:保留宽高比的基础上,然后裁剪掉超出去的部分,使用时我们可以提前调整好输出图片的宽高比例

填充:它指在缩放图像时,将原始图像放置在目标尺寸的中心位置,多出去的部分用一定的颜色值(通常为黑色)填充周围的空白区域。

直接缩放:

①指对图像进行简单的缩放处理,即直接将原始图像缩放到目标尺寸。

②在 Stable Diffusion 中,如果生成的图像尺寸与原始图像尺寸不一致,就需要进行缩放处理。直接缩放是一种简单粗暴的缩放方式,它直接将原始图像缩放到目标尺寸,不进行任何额外的处理。这种缩放方式的优点是简单快速,但缺点是可能会导致图像失真或模糊,特别是当缩放比例较大时。

1. 图生图

主要用来做图片放大和造型背景的变化,或者三次元改二次元时用的,通常配合着 ControlNet 来使用

2. 绘图

通过手动绘制或修改图像的局部区域,来指导生成器生成更加符合用户期望的图像,使用时可以利用绘图工具,如笔刷、橡皮擦等,对图像的局部区域进行修改。修改后的图像会被作为下一次迭代的初始图像,从而影响后续的图像生成过程。

通过绘图,可以更加精细地控制生成图像的细节和特征,从而获得更符合预期输出

3. 局部重绘

也称为上传蒙版法,提前在作图软件里用画笔涂抹好需要重新绘制的区域,黑色区域表示需要修复的区域,白色区域表示不需要修复的区域

(注意:因此只需要在需要修复的区域涂黑色,其他区域可以涂白或保留原始颜色。上传蒙版的话也只需在绘图软件里把需要修复的区域涂黑即可)

局部重绘的目的是尽可能地保留原始图像的结构和纹理特征,使修复后的图像更加自然和真实。

4. 批量处理

指使用已有的图像生成新的图像。而图生图的批量处理是指同时对多张输入图像进行图生图操作,生成对应的多张输出图像。

最后

随着 AI 技术的快速发展,图像生成领域的大型模型正在成为研究的热点,但是由于该领域的相对新颖和复杂性,相关的教程和资源目前还相对匮乏。希望本文可以帮助大家快速入门 Stable Diffusion,并为您提供一些有用的参考资料。

相信在不久的将来,一些真正具有商业价值的大模型将会涌现出来,为设计和其他领域带来更多的创新和效益,最后,希望大家能不断探索和学习,掌握更多的技能和知识,为设计赋能!

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

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

相关文章

大厂面试题:两道来自京东的关于MyBatis执行器的面试题

大家好,我是王有志。 今天给大家带来两道来自于京东关于的 MyBatis 面试题: MyBatis 提供了哪些执行器(Executor)?它们有什么区别?Mybatis 中如何指定 Executor 的类型? MyBatis 提供了哪些执…

自然语言处理的发展历程

1.自然语言处理发展的7个阶段 序号阶段时间贡献代表人物1起源期1913-1956思考使用图灵算法计量模型来描述自然语言,描述词语及词语之间的关系。这一阶段停留在理论层面做探索图灵、马尔可夫、香农2基于规则的形式语言理论期1957-1970形式语言理论的提出&#xff0c…

深度学习系列66:试穿模型IDM-VTON上手

1. 模型概述 如图,总体流程为: 输入为:衣服的编码xg;人物noise的编码xt;人物身上衣物的mask和人体pose分割(densepose);衣服部分经过两部分网络:1)高级语义网络IP-Adapter&#xff…

3122.使矩阵满足条件的最少操作次数

周赛第三题,知道要用动态规划,但是不知道怎么回到子问题 显然根据题意我们需要让每一列都相同,但是相邻列不能选择同一种数字,观察到数据nums[i]介于0-9,我们就以此为突破口. 首先我们用count[n][10], count[i][j]记录第i1列值为j的元素个数,转移方程如下: dfs(i,pre) max(dfs…

pytest-xdist:远程多主机 - 分布式运行自动化测试

简介:pytest-xdist插件使用新的测试执行模式扩展了pytest,最常用的是在多个CPU之间分发测试以加快测试执行,即 pytest -n auto同时也是一个非常优秀的分布式测试插件,分别支持ssh和socket两种方式实现master和worker的远程通讯。…

游戏新手村20:游戏落地页广告页如何设计

在互联网营销中,着陆页(Landing Page,有时被称为首要捕获用户页)就是当潜在用户点击广告或者搜索引擎搜索结果页后显示给用户的网页,LandingPage对于游戏广告的转化率和重要性就不言而喻了。 网页游戏LP页面 上图就是我们大家在浏览网站时不小心蹦出或者主动点击某…

python学习笔记12:小数类型的角度到度分秒的转换

目录 实现方式1 实现方式2 本博客讲述了两种计算方式及其代码的实现,并在最后对比了两种方法的结果差异。 比较结果显示,不同的实现方式之间可能存在数值误差。 实现方式1 具体计算步骤如下: 数值取整数部分得到度 108.5745800204 -->…

IIS中搭建.Net Core项目,步骤详解

一、准备服务器 1)安装IIS 这个比较简单,百度一下就行 2)安装 .NET Core 运行时 下载地址:下载 .NET(Linux、macOS 和 Windows) 因为我是本地开发,所以我下载的是SDK 安装成功之后显示如下: 检查是否安装…

万兆以太网MAC设计(6)IP协议报文格式详解以及IP层模块设计

文章目录 前言:IPv4报文协议格式二、IP_RX模块设计2.1、模块接口2.2、模块工作过程 三、IP_TX模块设计3.1、模块接口3.2、模块工作过程 四、仿真4.1、发送端4.2、接受端 前言:IPv4报文协议格式 参考:https://sunyunqiang.com/blog/ipv4_prot…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-5

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

txt大文件拆分(批量版)

之前的python程序只能拆分单个文件,这里重新加了个文件夹拆分的功能(打包好的exe文件在文章末尾) 使用步骤:运行代码–>把文件放到input文件夹里–>命令行界面回车–>output文件夹输出文件 outputPath "./output&q…

曲线「三分」

明明做作业的时候遇到了 n 个二次函数Si(x)ax^2bxc ,他突发奇想设计了一个新的函数F(x)max{Si(x)},i1,2……n 。 明明现在想求这个函数在 的最小值,要求精确到小数点后四位,四舍五入。 输入格式 输入包含 T组数据,每组第一行一…

神经网络的优化器

神经网络的优化器是用于训练神经网络的一类算法,它们的核心目的是通过改变神经网络的权值参数来最小化或最大化一个损失函数。优化器对损失函数的搜索过程对于神经网络性能至关重要。 作用: 参数更新:优化器通过计算损失函数相对于权重参数的…

【蓝桥杯省赛真题38】python字符串拼接 中小学青少年组蓝桥杯比赛 算法思维python编程省赛真题解析

目录 python字符串拼接 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python字符串拼接 第十三届蓝桥杯青少年组python编程省赛真题 一、题目…

MySQL8.0 msi版本安装教程

MySQL8.0 msi 版本安装教程 1> 官网下载安装包 2> 安装MySQL 2.1双击打开下载的安装包,进入到下面这个页面,选择 Custom 选项,之后,点击next 说明: 2.2 选择所需产品,更改安装位置(当然也可以默认安…

性能分析与调优(超详细)

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 常看到性能测试书中说,性能测试不单单是性能测试工程…

免费ChatGPT合集——亲测免费

1、YesChat 无需登录 网址:YesChat-ChatGPT4V Dalle3 Claude 3 All in One Freehttps://www.yeschat.ai/ 2. 讯飞星火 要登录 讯飞星火大模型-AI大语言模型-星火大模型-科大讯飞 3.通义千问 要登录 通义我是通义,一个专门响应人类指令的…

Unity打开Android文件管理器并加载文件

1、在AssetStore商店中加入免费插件 2、调用代码 3、使用UnityWebRequest加载路径数据

【算法】组合回溯专题

组合总数 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被…

新能源车载芯片分析

新能源汽车市场正迸发出巨大的活力,传统主机厂和新势力都纷纷推出各种车型,打起了价格战,各种新技术让人眼花缭乱。当前,战场硝烟弥漫,新能源汽车公司犹如春秋时期的各诸侯国。车载芯片作为新能源汽车的关键组成部分&a…