当前位置: 首页 > news >正文

Stable Diffusion---Ai绘画-下载-入门-进阶(笔记整理)


前言

注:本文偏向于整理,都是跟着大佬们学的。

推荐两个b站up主,学完他们俩的东西基本就玩转SD为底的ai绘画:
秋葉aaaki,Nenly同学

1.首先SD主流的就是秋叶佬的Webui了,直接压缩包下载即可,下载地址在这个视频的简介里:https://www.bilibili.com/video/BV1iM4y1y7oA

2.下载之后,就可以配合着Nenly佬的ai绘画课来看我的笔记了(正课一共10集,基本满足大部分人的需求了):
https://www.bilibili.com/video/BV1As4y127HW

3.有一点要注意以下,第10课中的ControlNet,Nenly佬提供的方法是不使用秋叶Webui的方法,我比较推荐用秋叶Webui,毕竟是来画的不是来被一堆安装问题弄疯的,在下载她的压缩包的时候就会把主流的ControlNet模型都给你了,然后启用ControlNet的方法可以看我的笔记也可以看秋叶佬的视频:https://www.bilibili.com/video/BV1fa4y1G71W

当然如果你想挑战原汁原味的下载和安装以及锻炼英语能力,你可以直接去github下载:https://github.com/AUTOMATIC1111/stable-diffusion-webui


Stable Diffusion笔记

目录 (点击即可跳转):

1. 提示词常用模板

2. 常用主模型/底模型(checkpoint)

3. 超分辨率

4. Embeddings/LoRa/Hypernetwork 针对性小模型

5. 图片tag反推

6. 定向局部重绘/修复

7. Stable Diffusion扩展插件

8. Lora的详细使用

9. ControlNet基础及进阶


1.提示词常用模板

ai绘画的重中之重,想让ai画出满意的画,tag自然要精良,以下是区分各种不同词条并分类,仅作为示例,比较简单且快速上手的方法就是直接抄大佬作业,去https://civitai.com/随便找个大佬作品,点进去图片基本上都会有生成那张图片的tag,抄就完事了,后续熟练再自己写。

不过负面提示词可以直接抄我的,这东西基本没啥变化,除非你想画古神?

以及可以通过加括号的方式来提高某些词语的权重, 一个括号()为1.1倍权重, 每次套一个括号就是再乘1.1,也可以通过(xxx:1.2)这种来直接指定tag的权重。

翻译软件或者在扩展插件中提到的词库翻译,都是你写tag的好帮手,个人非常推荐词库翻译,你可以写中文来补全英文,也能更好的理解有一些tag的意义。

正面提示词

  • 描述人物:1girl, solo, ultra detailed (green eyes), very long [brown|blondie|brown] curly hair, (fine face),upper body,
  • 描述场景:sits in the flower meadow,
  • 描述环境(时间,光照):sunrise,beautiful detailed sky,a lot of white flowers,sunlight,
  • 描述画幅视角:cinematic angle,
  • 其他画面要素:depth of field,

  • 高品质标准化:(masterpiece:1.5),(best quality:1.1),(ultra-detailed),(illustration),
  • 画风标准化:anime,
  • 其他特殊要求:
  • Lora添加:<lora:StardustModel:0.8>

负面提示词

  • (worst quality:1.5), (low quality:1.5), (normal quality:1.5), lowres, bad anatomy, bad hands, multiple eyebrow, (cropped), extra limb, missing limbs, deformed hands, long neck, long body, (bad hands), signature, username, artist name, conjoined fingers, deformed fingers, ugly eyes, imperfect eyes, skewed eyes, unnatural face, unnatural body, error, painting by bad-artist layman work, worst quality, ugly, (deformed|distorted|disfigured:1.21), poorly drawn, bad anatomy, wrong anatomy, mutation, mutated, (mutated hands AND fingers:1.21), bad hands, bad fingers, loss of a limb, extra limb, missing limb, floating limbs, amputation, Yaeba, photo, deformed, black and white, realism, disfigured, low contrast,EasyNegative,

示例:
请添加图片描述


2.常用主模型/底模型(checkpoint)

模型下载一般就去 https://civitai.com/ 或者 https://huggingface.co/,以下的这些皆为主流模型推荐。

二次元模型:

  • Anything V5
  • Counterfeit V2.5
  • Dreamlike Diffusion
  • AbyssOrangeMix2
  • Cetus-Mix
  • pastelMix

真实风格模型:

  • koreanDollLikeness
  • LOFI
  • Realistic Vision

2.5D风格模型:

  • Never Ending Dream
  • Protogen
  • GuoFeng3

请添加图片描述


3.超分辨率

3.1 Hi-Res Fix: 通过Text to image的固定词条和seed,

选择高清修复,调整放大算法(R-ESRGAN 4x+/anime6B),高清修复采样次数0-7,重绘幅度(0.3-0.7),放大倍率2等.

请添加图片描述

3.2 SD放大(upscal): 通过image to image将图片分割为多个区块分别进行放大重绘,再通过图块重叠像素Tile Overlap来让区块进行过度,

选择SD脚本,重绘幅度0.3-0.7,重叠像素128,宽度和高度加上放大的像素尺寸.

请添加图片描述

3.3 附加功能中的ai超分:相当于重绘幅度为0的高清修复

缩放比例2,选择两个放大算法,调整第二个放大算法的可见度0.3-0.7


4.Embeddings/LoRa/Hypernetwork 针对性小模型

4.1 Embeddings:

.pt文件,词嵌入模型,类似于书签,使用关键词触发,“嵌入式向量”,本身不包含信息。

  • 角色三视图 CharTurner
  • 解决手部问题 badhandv4,EasyNegative
  • 真人问题 DeepNegative

4.2 LoRa:

.safe文件,低秩适应模型,类似于更为直接且清晰的彩页图片书签,更加完好的保证了某一角色/类型的特点,使用<lora:xxx:0.8>来触发,范围在0.5-0.7。

4.3 Hypernetwork:

超网络模型,非写实类型更改画风,但可以被lora进行替代


5.图片tag反推

这个太简单了,没啥说的,切换到tagger中直接图片拖进去就自动给你分析了

  • 图生图中的DeepBooru/CLIP反推
  • WD1.4标签器(推荐)

6.定向局部重绘/修复

6.1 使用图生图中的局部重绘功能

使用画笔覆盖需要重绘的区域,设置较高的重绘幅度0.75+,蒙版预留边缘像素和重绘区域成正比,蒙版模糊也是同理,但推荐10以下。

蒙版:指被画笔涂黑的区域
请添加图片描述

6.2 Inpaint Stetch画笔绘制重绘 (涂鸦重绘)

使用画笔添加需要的内容,并可以根据调色板来指定颜色,可以对画面进行添加物体例如口罩。记得画完物品后加上对应的物品词条(black mask:1.2)。

蒙版透明度代表添加上去的颜色的不透明度,重绘幅度调低0.5-。

请添加图片描述

6.3 上传重绘蒙版

说人话就是用Ps等图片处理软件来进行蒙版的选取,套索工具等


7.Stable Diffusion扩展插件

一些基础扩展插件已经被秋叶佬的webui中收录,进阶的可以去扩展extension里下载。

7.1 基础扩展:

  1. SD汉化,搜索zh
  2. 图库浏览器,搜索image browser
  3. 提示词补全,搜索tag complete
  4. 词库翻译,b站up@一般路过的boki酱整合的7w词条翻译,放到extension文件中的tags文件夹中,并进行webui的设置(标签自动补全)更改选择使用的标签文件名以及翻译文件名

7.2 进阶扩展:

  1. Ultimate SD Upscale 无损高清放大,SD放大的上位替代,搜索ultimate。

目标尺寸类型选custom进行调整放大后的大小,放大算法R-ESRGAN 4+,Chess类型,宽度512,按缝修复half tile offset pass + intersection,重绘幅度0.5.

请添加图片描述


8.Lora

多在c站逛逛,总会有心仪的lora的

8.1 Lora的详细使用:

.ckpt/.safe文件,放入sd-webui-aki-v4.2\models\Lora文件夹中。

  1. 在提示词中假如对应的lora的<lora:xxx:0.8>来触发lora。
  2. 通过webui中的按钮来显示所有可用lora(记得刷新)。

同时可以通过点击Lora的替换图按钮来为Lora设置预设图,更清晰明了的展现Lora的风格,方便挑选:
请添加图片描述

8.2 Lora的分类:

人物lora的权重在0.6-0.8之间,其余lora如果用于’调味’那就设置在0.3左右。

请添加图片描述


9.ControlNet基础及进阶

Ai绘画的进阶技巧,通过 骨骼/景深/描边 模型来一定程度上的控制ai绘画的 动作/场景/人物特点 等。

工作原理是基于一些额外信息来给扩散模型的生成提供明确的指引 (启发式函数?)。

9.1 安装:

秋叶佬的教程:https://www.bilibili.com/video/BV1fa4y1G71W/

  1. 将预处理器的download文件夹复制到"sd-webui-aki-v4.2\extensions\sd-webui-controlnet\annotator"文件夹中。
  2. 将模型放入到"sd-webui-aki-v4.2\models\ControlNet"文件夹中。

9.2 ControlNet的参数:

请添加图片描述

  1. 勾选启用。
  2. 完美像素模式,建议勾选,自动计算预处理器产出图像最适合的分辨率。
  3. 允许预览, 打开一个小窗口可以看到处理过的信息图。
  4. 控制模式,让图片更倾向于什么,一般balance就够用。
  5. 预处理器和模型选择要对应。
  6. 权重,controlnet的控制强度。
  7. 引导介入/引导终止时机, 也就是controlnet何时介入图像扩散生成的过程,晚一点介入可以给到ai更多的自由度。

控制模式的示例:
请添加图片描述

9.3 ControlNet的模型:

五种基础模型 (Canny已被Lineart替代)

请添加图片描述

其余可用模型:

  • Lineart,上位替代Canny
  • Instruct Pix2Pix,根据指令/tag局部整体操纵图像 (例如变为夜晚)
  • Tile,增加局部细节
  • Shuffle 打乱重建/风格迁移

9.4 五大模型的应用:

  1. Openpose,捕捉人物骨骼,可以使用预处理器openpose-full来进行全捕捉(手部,面部,身体), 也可以使用hand/face/faceonly来只捕捉某一部分。

  2. Depth,捕捉景深还原富有空间感的多层次场景,推荐使用Leres++预处理,效果最为精细,但处理时间也很长。

  3. Canny,识别提取图像里的边缘特征,最重要的模型之一,因为可以最大程度的保留某些特征来做到还原,比如文字,使用Canny时,如果有些线条没被识别到,那么可以试试降低两个threshold(阈值)。

  4. SoftEdge,类似于更加柔和的Canny,线条更为模糊,比Canny给ai的自由度更大。

  5. Scribble, 比Softedge自由度更大,可以做到灵魂画手的感觉,比如用scribble提取一个房子的线条模型,给宇宙战舰的提示词,就能得到房子形状的宇宙战舰啦!

9.5 Multi-ControlNet应用:

秋叶佬webui默认启用,可在设置-ControlNet-ControlNet unit最大数量中进行更改。

用于处理一些单个模型无法解决的情况,例如有一张手挡在脸前面的图片,openpose识别出的骨骼图无法让ai知道手到底是在脑袋前还是后,而depth虽然能根据景深识别出手在前还是后,但无法精准的给出手的骨骼,那么就可以使用Multi-ControlNet了,来让几个模型同时发挥作用。

不过切记小心每个模型的权重,比如在刚刚的手在前的例子中,depth实际上只是让ai知道手在前,那么就可以适当降低depth模型的权重,让depth对其他东西的影响降到最低。

请添加图片描述

开启后通过unit进行切换。
请添加图片描述


结尾

如果有所帮助请给个免费的赞吧~有人看才是支撑我写下去的动力!
后续可能会继续更新,不过ai绘画最近也确实没什么大的突破了。

相关文章:

Stable Diffusion---Ai绘画-下载-入门-进阶(笔记整理)

前言 注&#xff1a;本文偏向于整理&#xff0c;都是跟着大佬们学的。 推荐两个b站up主&#xff0c;学完他们俩的东西基本就玩转SD为底的ai绘画&#xff1a; 秋葉aaaki&#xff0c;Nenly同学 1.首先SD主流的就是秋叶佬的Webui了&#xff0c;直接压缩包下载即可&#xff0c;下…...

Java 乘等赋值运算

下面这个题目是在一公司发过来的&#xff0c;如果你对 Java 的赋值运算比较了解的话&#xff0c;会很快知道答案的。 这个运算符在 Java 里面叫做乘等或者乘和赋值操作符&#xff0c;它把左操作数和右操作数相乘赋值给左操作数。 例如下面的&#xff1a;density * invertedRat…...

【性能优化】聊聊性能优化那些事

针对于互联网应用来说&#xff0c;性能优化其实就是一直需要做的事情&#xff0c;因为系统响应慢&#xff0c;是非常影响用户的体验&#xff0c;可能回造成用户流失。所以对于性能非常重要。最近正好接到一个性能优化的需求&#xff0c;需要对所负责的系统进行性能提升。目前接…...

k8s 查看加入主节点命令 k8s重新查看加入节点命令 k8s输入删除,重新查看加入命令 kuberadm查看加入节点命令

1. 使用kuberadm 安装成功后&#xff0c;clear清除了屏幕数据&#xff0c;加入命令无法查看&#xff0c;使用如下&#xff0c;重新查看node如何加入主节点命令&#xff1a; kubeadm token create --print-join-command --ttl 0 2.画圈的全部是&#xff0c;都复制&#xff0c;在…...

Scalene:Python CPU+GPU+内存分析器,具有人工智能驱动的优化建议

一、前言 Python 是一种广泛使用的编程语言&#xff0c;通常与其他语言编写的库一起使用。在这种情况下&#xff0c;如何提高性能和内存使用率可能会变得很复杂。但是&#xff0c;现在有一个解决方案&#xff0c;可以轻松地解决这些问题 - 分析器。 分析器旨在找出哪些代码段…...

C语言练习8(巩固提升)

C语言练习8 编程题 前言 奋斗是曲折的&#xff0c;“为有牺牲多壮志&#xff0c;敢教日月换新天”&#xff0c;要奋斗就会有牺牲&#xff0c;我们要始终发扬大无畏精神和无私奉献精神。奋斗者是精神最为富足的人&#xff0c;也是最懂得幸福、最享受幸福的人。正如马克思所讲&am…...

Java匿名内部类

文章目录 前言一、使用匿名内部类需要注意什么&#xff1f;二、使用步骤匿名内部类的结构匿名内部类的实用场景1. 事件监听器2. 过滤器3. 线程4. 实现接口5.单元测试&#xff1a;6.GUI编程7.回调函数 前言 Java中的匿名内部类是一种可以在声明时直接创建对象的内部类。这种内部…...

Shiro和SpringSecurity的区别

文章目录 前言1.Shiro&#xff1a;Shiro的特点&#xff1a; 2.SpringSecurity&#xff1a;SpringSecurity特点&#xff1a; 3.对比&#xff1a;总结 前言 Shiro 和 Spring Security 都是用于在Java应用程序中实现身份验证&#xff08;Authentication&#xff09;和授权&#x…...

【STM32】学习笔记(OLED)

调试方式 OLED简介 硬件电路 驱动函数 OLED.H #ifndef __OLED_H #define __OLED_Hvoid OLED_Init(void); void OLED_Clear(void); void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char); void OLED_ShowString(uint8_t Line, uint8_t Column, char *String); void OL…...

概念解析 | 认知雷达:有大脑的雷达

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:认知雷达。 认知雷达:有大脑的雷达 1.背景介绍 对于传统的雷达,它们通常都是预设定参数和模式来进行工作,比如发射功率、波形、扫描模式等。然而,这种方式面临着一些挑…...

B. Long Long

time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Today Alex was brought array a1,a2,…,an&#xfffd;1,&#xfffd;2,…,&#xfffd;&#xfffd; of length n&#xfffd;. He can apply as m…...

CTFhub-文件上传-.htaccess

首先上传 .htaccess 的文件 .htaccess SetHandler application/x-httpd-php 这段内容的作用是使所有的文件都会被解析为php文件 然后上传1.jpg 的文件 内容为一句话木马 1.jpg <?php echo "PHP Loaded"; eval($_POST[a]); ?> 用蚁剑连接 http://ch…...

Python中的绝对和相对导入

在本文中&#xff0c;我们将看到Python中的绝对和相对导入。 Python中导入的工作 Python中的import类似于C/C中的#include header_file。Python模块可以通过使用import导入文件/函数来访问其他模块的代码。import语句是调用import机制的最常见方式&#xff0c;但它不是唯一的…...

C语言关于与运算符

C语言关于&与&&运算符 我们知道&#xff0c;在很多场景中&和&&通常可以相互代替&#xff0c;那么它们到底有什么不同呢&#xff1f; 先看一段代码 bool a, b, c; c a & b;使用clang -S编译出来的指令如下&#xff1a; movb -5(%rbp), %al …...

计算机网络(速率、宽带、吞吐量、时延、发送时延)

速率&#xff1a; 最重要的一个性能指标。 指的是数据的传送速率&#xff0c;也称为数据率 (data rate) 或比特率 (bit rate)。 单位&#xff1a;bit/s&#xff0c;或 kbit/s、Mbit/s、 Gbit/s 等。 例如 4 1010 bit/s 的数据率就记为 40 Gbit/s。 速率往往是指额定速率或…...

kubectl入门

一.kubectl的三种资源管理方式&#xff1a; 二. kubectl资源介绍&#xff1a; 1.namespace&#xff1a;实现多套环境的资源隔离或者多租户的资源隔离。k8s中的pod默认可以相互访问&#xff0c;如果不想让两个pod之间相互访问&#xff0c;就将其划分到不同ns下。 2.pod&#xff…...

Android JNI系列详解之ndk-build工具的使用

一、Android项目中使用ndk-build工具编译库文件 之前介绍过CMake编译工具的使用&#xff0c;今天介绍一种ndk自带的编译工具ndk-build的使用。 ndk-build目前主要有两种配置使用方式&#xff1a; 如上图所示&#xff0c;第一种方式是Android.mkApplication.mkgradle的方式生成…...

【业务功能篇90】微服务-springcloud-检索服务-ElasticSearch实战运用-DSL语句

商城检索服务 1.检索页面的搭建 商品检索页面我们放在search服务中处理&#xff0c;首页我们需要在mall-search服务中支持Thymeleaf。添加对应的依赖 <!-- 添加Thymeleaf的依赖 --><dependency><groupId>org.springframework.boot</groupId><artifa…...

QTday4

实现闹钟功能 1》 头文件 #ifndef BURGER_H #define BURGER_H#include <QWidget> #include <QLabel> #include <QLineEdit> #include <QPushButton> #include <QTextEdit> #include <QTimerEvent> //定时器事件类 #include <QDateTim…...

设计模式之命令模式(Command)的C++实现

1、命令模式的提出 在软件开发过程中&#xff0c;“行为请求者”和“行为实现者”通常呈现一种“紧耦合”&#xff0c;如果行为的实现经常变化&#xff0c;则不利于代码的维护。命令模式可以将行为的请求者和行为的实现者进行解耦。具体流程是将行为请求者封装成一个对象&…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...