当前位置: 首页 > 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;则不利于代码的维护。命令模式可以将行为的请求者和行为的实现者进行解耦。具体流程是将行为请求者封装成一个对象&…...

取证工具prodiscover的基本操作

前言提醒 取证工具ProDiscover在网上讲解操作的文章实在太少&#xff0c;一是prodiscover是用于磁盘取证的工具&#xff0c;本身比较小众比不上其他的编程软件能用到的地方多&#xff0c;二是这个工具是用来恢复提取磁盘中被删除的文件&#xff0c;是比较隐晦的软件。 需要注…...

flutter plugins插件【二】【FlutterAssetsGenerator】

2、FlutterAssetsGenerator 介绍地址&#xff1a;https://juejin.cn/post/6898542896274735117 配置assets目录 ​ 插件会从pubspec.yaml文件下读取assets目录&#xff0c;因此要使用本插件&#xff0c;你需要在pubspec.yaml下配置资源目录 flutter:# The following line ens…...

看懂UML类图

UML 统一建模语言(Unified Modeling Language&#xff0c;UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言&#xff0c;是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具&#xff0c;独立于任何具体程序设计语言。 类的表示 首先看那个…...

keras深度学习框架通过简单神经网络实现手写数字识别

背景 keras深度学习框架&#xff0c;并不是一个独立的深度学习框架&#xff0c;它后台依赖tensorflow或者theano。大部分开发者应该使用的是tensorflow。keras可以很方便的像搭积木一样根据模型搭出我们需要的神经网络&#xff0c;然后进行编译&#xff0c;训练&#xff0c;测试…...

React 中的 ref 如何操作 dom节点,使输入框获取焦点

聚焦文字输入框 .focus() 获取焦点 当用户点击按钮时&#xff0c;handleClick 函数会被调用&#xff0c;从而将焦点聚焦到文本输入框上。 // 焦文字输入框 import { useRef } from "react";const FocusForm () > {const inputRef useRef<any>(null);func…...

最短路Dijkstra,spfa,图论二分图算法AYIT---ACM训练(模板版)

文章目录 前言A - Dijkstra Algorithm0x00 算法题目0x01 算法思路0x02 代码实现 B - 最长路0x00 算法题目0x01 算法思路0x02 代码实现 C - 二分图最大匹配0x00 算法题目0x01 算法思路0x02 代码实现 D - 搭配飞行员0x00 算法题目0x01 算法思路0x02 代码实现 E - The Perfect Sta…...

AK 微众银行 9.3 笔试 Java后端方向

T1(模拟,二分) (没看清买的糖果只有前缀&#xff0c;一开始用二分写了&#xff0c;后来意识到也没改了&#xff0c;简单写的话&#xff0c;直接模拟就好了) #include <bits/stdc.h>#define endl \nusing namespace std;const int N 50010;int n; int a[N];bool check(…...

了解java中的通配符“?“

目录 通配符的作用 先看一段代码 用通配符"?"后,代码变化 结论 通配符上界 通配符下界 对通配符上下界的注释理解及其练习代码 简记: ? 用于在泛型的使用&#xff0c;即为通配符. 在Java中&#xff0c;通配符&#xff08;wildcard&#xff09;主要用于泛型…...

浙大陈越何钦铭数据结构07-图6 旅游规划【最小堆实现】

题目&#xff1a; 题目和浙大陈越何钦铭数据结构07-图6 旅游规划是一样的&#xff0c;不同的是用最小堆实现函数【FindMinDist】。 时间复杂度对比&#xff1a; 浙大陈越何钦铭数据结构07-图6 旅游规划&#xff1a; 创建图&#xff08;CreateGraph&#xff09;&#xff1a;时…...

OpenShift 4 - 用 Prometheus 和 Grafana 监视用户应用定制的观测指标(视频)

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.13 的环境中验证 文章目录 OpenShift 的监控功能构成部署被监控应用用 OpenShift 内置功能监控应用用 Grafana 监控应用安装 Grafana 运行环境配置 Grafana 数据源定制监控 Dashboard 演示视…...