Stable Diffusion入门修炼手册

简介

作为新入门的新手,通常安装完Stable Diffusion之后,一打开界面,在文生图输入girl或者dog,结果出来的画面比较糟糕,看起来像素很低,画面不清晰,人物也不怎么美,等等其他问题,总之就觉得自己生成的图片怎么跟别人差距那么大?是不是大家也曾经这样过来过?

在这里插入图片描述

今天就来教会大家,如何正确使用Stable Diffusion,掌握基础知识,能正确做出优秀的作品来,首先,先来个基本公式

  1. 一个优秀的作品=CheckPoint大模型+vae+优秀的prompt+embeding+Lora
  2. 一个4k优秀的作品=CheckPoint大模型+vae+优秀的prompt+embeding+Lora+Controlnet(Tile)增加细节+放大算法

在这里插入图片描述
在这里插入图片描述

主要角色

在这里插入图片描述

1、checkpoint(大模型)

这是我们常说的模型,也可以说是底模,必须指定一个才能作画,它是用来控制大整个画面的风格走势的。比如:写实风格,漫画风格等等,文件名后缀一般为.ckpt和.safetensors,模型大小为2G到8G不等。

checkpoint文件放置路径:\models\Stable-diffusion

2、Lora模型

它也是模型之一,它可以使用也可以不使用,它的出现只为了解决大模型能够微调的一种技术,它的作用主要用于雕刻人物、动漫角色、物品的特征、控制画风、固定特征动作等等。文件名后缀一般为.safetensors,大小在20mb到300mb不等,部分Lora会需要触发词来使用,否则效果不明显。

Lora放置路径:\models\lora

3、embedding

这是我们说的prompt集合,它可以用一个特殊表达式词语来代表一连串的关键词,让填写prompt更简单。举个例子,如果我们想要生成一个皮卡丘,通常需要输入很多描述词,如黄毛、老鼠、长耳朵、腮红等等。但是,如果在我们的embedding库中,已经引入皮卡丘的embedding,我们只需要输入皮卡丘。皮卡丘的embedding打包了所有皮卡丘的特征描述,这样我们就不用每次输入很多单词来控制生成的画面了。

embedding文件放置路径:\models\embedding

4、VAE

Vae也是模型之一,但它的作用只是给画面加载一个滤镜的效果,为了就是修正最终输出的图片色彩,如果不加载VAE可能会出现图片特别灰的情况。一般我们直接选用自动模型就可以了,它会自动帮我们解决这类问题。当然也有些特殊情况需要用到VAE来对色彩进行调节。文件后缀一般为.downloading、.safetensors、.ckpt、.pt

VAE文件的放置路径:\models\vae

prompt的使用

prompt的好坏会决定出图的质量,所以为什么有咒语这一说,因为需要很长的prompt来告诉AI具体要的是什么。于是咒语的优化和书写尤为重要,不过不用担心,市场上现在网站上已经出了很多优秀作品,他们的prompt是开源的,可以复制之后来学习,积累自己的prompt词。

  • propmt:正向提示词,表示在画面中需要出现的元素
  • negative propmt:负面提示词,表示在画面中不想要出现的元素

1、增加权重

增加权重会让Stable Diffusion出图的时候,会优先考虑画当前的关键词,当权重超过2.0之后,会让图片重复出现当前关键词,导致Stable Diffusion发挥失常

  • (tag):1.1倍
  • ((tag)):1.1x1.1=1.21倍,每套一层括号,额外x1.1倍
  • {tag}:1.05倍
  • {{tag}}:1.05x1.05=1.1025倍,每套一层大括号,额外x1.05倍

当然权重也不是越高越好的

在这里插入图片描述

2、减少权重

减少权重会让Stable Diffusion出图的时候,只是作为参考使用,当权重低于0.5的时候表示当前的关键词可有可无

  • [tag]:0.9倍
  • [[tag]]:0.9x0.9=0.81倍,每套一层括号,额外x0.9倍

3、精准权重

  • (tag:1.2):1.2倍
  • (tag:0.9):0.9倍

4、使用Lora

lora的使用是一个表达式,如下:

  • lora:bg:1.2:使用bg的Lora模型,权重为1.2
  • lora:bg:1.2,lora:bgV2:1.5:同样的多个Lora的使用也是可以的

在这里插入图片描述

市场上开源的Lora风格还是很多,像图上的盲盒风格(第一个),电影风格(最后一个)

5、使用embedding

embedding的使用非常简单,跟书写prompt一样,直接写到提示词上即可,前提是要下载好当前的embedding模型,不需要任何表达式。embedding最常用的例子就是生成的人物的时候,要求必须是完整的2个眼睛1个鼻子2个耳朵1个嘴巴5个手指,同样的也能在负面提示词中增加embedding,还是同样的人物,不能出现坏手,3个手指,4个手指等

在这里插入图片描述

很明显可以看出,在NP(negative prompt)中使用EasyNegative模型和没有使用NP的区别

  • 没有EasyNegative:手部明显画的很粗糙,不太像是人的手
  • 使用EasyNegative:手部比较正常,细节也是正常可观

prompt的进阶玩法

进阶玩法能更加精准控制prompt生成我们想要的图

1、混合

  • 混合:强制将不同的主体的元素特征进行混合出图,用AND把多种要素强制融合画进去
  • 语法:关键词1 AND 关键词2 AND 关键词3
  • 举例:1cat:2 AND 1dog AND 1tiger,想要生成一个狗、猫和老虎

在这里插入图片描述

2、渐变

  • 渐变:指的是在作画中,将元素进行过渡的过程
  • 语法:[from:to:when]
    • when:表示的迭代步数或比例(数值在0-1范围表示比例,1- 表示步数)
    • From:提示词,表示在 when 前的步数渲染 from 提示词
    • to:提示词,表示在 when 后的步数渲染 to 提示词
  • 举例:(1 girl ,[blue hair:red hair:5]):我们希望画一个女孩,能够有红色和蓝色的头发

在这里插入图片描述

3、交替渲染

  • 交替渲染:交替渲染更像是在作画时每一笔交替使用不同的主体特征进行作画的方式
  • 语法:[关键词1|关键词2]
  • 举例:[1dog|1cat|1tiger],一个狗、猫和老虎进行交替渲染

在这里插入图片描述

界面介绍

1、模型选项

模型选项就是顶部的几个选择栏,用来选择大模型和Vae模型使用,常用的就是换大模型,其他保持默认即可

在这里插入图片描述

2、提示词面板

提示词面板分2块,propmt和negative propmt

  • propmt:正向提示词,表示在画面中需要出现的元素
  • negative propmt:负面提示词,表示在画面中不想要出现的元素

在这里插入图片描述

3、功能按钮

功能按钮指的是右边这几个功能按钮

在这里插入图片描述

第一按钮他有两个功能

  1. 当你关掉软件后,点击这个按钮,就会读取你上一次做图的所有参数信息复制进来。
  2. 当你在其他模型网站中Copy Generation Data复制别人案例图片的所有配置信息,粘贴到提示词中,再点击这个按钮,就会自动读取配置信息的所有配置,并应用到自己的作画参数中

在这里插入图片描述

第二个按钮就是删除了,清空关键词

在这里插入图片描述

第三个按钮就是模型选择管理,可以选择现有的CheckPoint、Lora、embedding等模型仓库,点击模型即可应用

在这里插入图片描述

在这里插入图片描述

第四个按钮和第五个按钮是提示词模板功能

  1. 第四个是读取当前选定的模板风格所有提示词写入到提示词中
  2. 第五个是将当前的提示词,保存到新的模板中,方便下次使用

在这里插入图片描述

4、绘图参数面板

绘图参数面板的功能是比较多的,他可以通过拓展安装各种插件,来控制绘图的过程

在这里插入图片描述

1.采样步数

一般来说大部分时候采样部署只需要保持在20~30之间即可,更低的采样部署可能会导致图片没有计算完全,更高的采样步数的细节收益也并不高,只有非常微弱的证据表明高步数可以小概率修复肢体错误,所以只有想要出一张穷尽细节可能的图的时候才会使用更高的步数。(加大这个会导致出图变慢)

在这里插入图片描述

2.采样方法

采样方法即是Stable Diffusion中的去噪音过程,你可以理解为不同的算法,目前的采样方法较多,但是我们常用的就那几个,经过各方面的实验来说,带有++符号的采样方法是经过改进后的算法,建议找带有++符号的使用。

在这里插入图片描述

3.其他选项

在这里插入图片描述

  • 面部修复:在做一些人物图片的时候,防止人脸出现崩坏的情况,可以勾选,但如果你的提示词足够强大,就可以不开启
  • 高清修复:把基础生成的图片,按照你选择放大的倍率放大到指定分辨率之后再重新绘制图片
  • 宽度、高度:图片的长和宽
  • 生成批次和数量:生成几批图,一批几张图
  • 提示词相关性:图像与你的提示的匹配程度。增加这个值将导致图像更接近你的提示词,如果提示词比较烂,那么图像质量会有降低
  • 种子:生成图片的唯一标识,输入不同的种子,生成的图片不一样,seed值一样,那生成的图片也是一样

实操演示

这里实操一张4k的赛博朋克风格的手机壁纸,作为演示例子。手机屏幕4K分辨率=2160×3840 (9:16)

第一步:文生图

先通过简单的咒语,用写实风格的模型,固定的种子,生成1张540x960的图,作为现在的手机像素540勉强有点说不过去,所以增加高清修复功能,放大到2倍,也就是生成的图是1080x1920
在这里插入图片描述
在这里插入图片描述

第二步:增加Lora模型

在咒语中增加赛博朋克的Lora模型,让当前风格增加些赛博朋克元素,当前用的是超写实赛博朋克美女的Lora,记得提前下载
在这里插入图片描述
在这里插入图片描述

很明显图片更加的靠近游戏的赛博朋克风格

第三步:发送到图生图,启用Controlnet的Tile模型

将当前的图片发送到图生图
在这里插入图片描述

在图生图的Controlnet插件中,选择启用,选用tile模型,tile模型可以极大限度提升当前图片的细节,将重绘幅度调为0.9,点击生成

在这里插入图片描述
在这里插入图片描述

很明显图片的细节和色彩更加丰富

第四步:将图片发送到后期处理,进行放大算法处理

由于我们现在生成的是高清修复后的1080,距离4k像素还有2倍的距离,所以我们将当前图片放大2倍,选择R-ESRGAN 4x+放大算法

在这里插入图片描述
在这里插入图片描述

图片超过5m上传不了,这里只能截图展示啦

到这里我们就生成出一张像素为2160×3840赛博朋克风格的手机壁纸,到这里就掌握了Stable diffusion的入门操作啦

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

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

相关文章

电脑运行缓慢?4个方法,加速电脑运行!

“我电脑才用了没多久哎!怎么突然就变得运行很缓慢了呢?有什么方法可以加速电脑运行速度吗?真的很需要,看看我吧!” 电脑的运行速度快会让用户在使用电脑时感觉愉悦,而电脑运行缓慢可能会影响我们的工作效率…

【vue】更改角色权限后,实现页面不刷新更改其可展示的导航菜单

登入的角色本身属于领导级别(集团权限),没有下级的不同权限: 切换不同身份(公司),以获得相应部门的不同导航菜单及权限 这里实现:更改角色权限后,实现页面 不刷新 更改…

攻防世界-supersqli

原题 解题思路 直接查找看不到明显的回显变化 先找回显变化数量 -1 order by 2 #如果是3列就报错,说明只有两列。接下来找数据库名称: -1 union select 1,databases # 结果是后端做了一些简单的过滤,需要更换查找语句。 -1; show …

LeetCode669. 修剪二叉搜索树

669. 修剪二叉搜索树 文章目录 [669. 修剪二叉搜索树](https://leetcode.cn/problems/trim-a-binary-search-tree/)一、题目二、题解方法一:递归法方法二:迭代法 一、题目 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 hig…

七夕节日表白:七大网页风格与其适用人群

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

如何使用 ChatGPT 将文本转换为 PowerPoint 演示文稿

推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑的3D应用场景 步骤 1:将文本转换为幻灯片演示文稿 第一步涉及指示 ChatGPT 根据给定的文本生成具有特定数量幻灯片的演示文稿。首先,您必须向 ChatGPT 提供要转换的文本。 使用以下提示指示…

SpringMVC-2-Spring MVC拦截器详解:从入门到精通

SpringMVC-2-Spring MVC拦截器详解:从入门到精通 今日目标 能够编写拦截器并配置拦截器 1.拦截器【理解】 1 拦截器介绍 1.1 拦截器概念和作用 拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方…

C的进阶C++学习方向

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,Linux基础,ARM开发板,软件配置等领域博主🌍快上🚘,一起学习,让我们成为一个强大的攻城狮!送给自己和读者的…

Python开发环境(Visual Studio Code、Anaconda、PyInstaller、Enigma Virtual Box)

Python开发环境 [Anaconda、PyInstaller、Enigma Virtual Box] AnacondaAnaconda安装搭建Python环境Anaconda命令 Visual Studio CodeVisual Studio Code中Python设置Visual Studio Code中安装PyQt5Visual Studio Code中使用Qt DesignerVisual Studio Code中Anaconda切换虚拟环…

仓库管理的重点在哪?仓库管理能有哪些软件?

对于做实体生意的中小商户来说,仓库管理工作是重中之重的,仓库管理的好坏,直接影响着门店销售和财务状况。 但对于很多中小商户来说,没有足够的人力和精力去高效地做好仓库管理工作,而借助仓库管理软件或进销存软件来…

SNAT和DNAT

SNAT和DNAT 一、SNAT策略及应用1.1SNAT策略概述1.2开启SNAT的命令1.2.1 临时打开1.2.2永久打开 1.3SNAT转换1:固定的公网IP地址1.4SNAT转换2:非固定的公网IP地址(共享动态IP地址)1.5SNAT案例1.5.1实验准备1.5.2配置网关服务器&…

IDEA启动报错【java.sql.SQLSyntaxErrorException: ORA-00904: “P“.“PRJ_NO“: 标识符无效】

IDEA报错如下: 2023-08-17 11:26:15.535 ERROR [egrant-biz,b48324d82fe23753,b48324d82fe23753,true] 24108 --- [ XNIO-1 task-1] c.i.c.l.c.RestExceptionController : 服务器异常org.springframework.jdbc.BadSqlGrammarException: ### Error queryin…

PDF怎么转成PPT文件免费?一个软件解决

随着科技的不断发展和进步,电子文档已经成为我们日常工作和学习中不可或缺的一部分。PDF作为一种跨平台的文件格式,以其可靠性和易读性而备受推崇。然而,在某些情况下,我们可能需要PDF怎么转成PPT文件免费,以便更好地展…

六大需求管理工具:满足您的需求管理需求

在项目开发和产品设计中,需求管理是确保项目成功的关键所在。通过使用专业的需求管理工具,团队可以更好地追踪、记录和分析需求,提高工作效率并确保项目按时完成。 市场上有许多需求管理工具可供选择,当下有什么好用的需求管理工…

FlashAttention算法详解

这篇文章的目的是详细的解释Flash Attention,为什么要解释FlashAttention呢?因为FlashAttention 是一种重新排序注意力计算的算法,它无需任何近似即可加速注意力计算并减少内存占用。所以作为目前LLM的模型加速它是一个非常好的解决方案&…

拒绝摆烂!C语言练习打卡第五天

🔥博客主页:小王又困了 📚系列专栏:每日一练 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、选择题 📝1.第一题 📝2.第二题 &#x1f4d…

Linux的基础指令

目录 1、ls指令 .和..意义 2、pwd指令 3、cd指令 ①cd ~ ②cd - 关于cd ..的用法 绝对路径和相对路径 4、touch指令 5、mkdir指令 tree指令 6、rmdir指令 7、rm指令 * 8、man指令 9、cp指令 nano: 10、mv指令 11、cat指令 12、more指令 13、less…

0009Java程序设计-jsp在线学习平台设计与实现

摘 要目 录系统实现开发环境 摘 要 在线学习平台,是一个利用因特网作为平台传送教学内容,实施网上教学,进行网上交流和学习的信息系统。构建在线学习系统平台,可以克服传统课堂教育的局限性,形成一种主动的、协作的、…

[线程/C++]线程同(异)步和原子变量

文章目录 1.线程的使用1.1 函数构造1.2 公共成员函数1.2.1 get_id()1.2.2 join()2.2.3 detach()2.2.5 joinable()2.2.6 operator 1.3 静态函数1.4 call_once 2. this_thread 命名空间2.1 get_id()2.2 sleep_for()2.3 sleep_until()2.4 yield() 3. 线程同步之互斥锁3.1 std:mute…

c#中lambda表达式缩写推演

Del<string> ml new Del<string>(Notify);//泛型委托的实例化&#xff0c;并关联Nofity方法 Del<string> ml new Del<string>(delegate (string str) { return str.Length; });//将Nofity变更为匿名函数 Del<string> ml delegate(string str)…