Stable Diffusion的使用以及各种资源
Stable Diffsuion资源目录
- SD简述
- sd安装
- 模型下载
- 关键词,描述语句
- 插件管理
- controlNet
- 自己训练模型
SD简述
Stable Diffusion是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词指导下产生图生图的翻译。
s用到的技术原理叫做扩散算法,具体的算法设计是很复杂的一门学科。大概的原理就是把一张图模糊化处理,然后再根据关键词一点一点儿的把内容给具体化。最后就得到了我们描述的内容。
从去年也就是2022年9月份开始,我就知道了这个技术。但是没有详细的了解过这个技术的实操方案。
今年断断续续的也看了看这个技术的阿里云操作和一些公众号的内容。还有比较火的隐藏式二维码,隐藏文字的光影街道图,也在关注。但是并没有实际操练起来。
这个周末我把我之前看到过的材料又重新找到重新看了一下,实操了一下。下面是我对这个技术的总结。
sd安装
sd 在本地操作的话,需要不错的独立显卡支持。如果达不到这个显卡要求的化可以选择阿里云服务器或者一些云桌面上进行操作。
- 本地安装环境分成三个步骤,先安装python环境,要配置到环境变量中。其次要安装先去支持的cuda支持,通过
nvidia-smi可以查看自己设备所支持的CUDA version版本。 - 可以通过cuda下载地址这个连接下载对应版本的cuda
- 然后还需要安装
git,因为需要从github上克隆webui的项目,还有一些插件也可以通过git的方式clone,github上的webui项目地址
- 除了这种全手动的方式,还可以从B站上找一些大神的启动器安装包。安装包都都是把运行环境打包好的,用起来很省心。
模型下载
项目启动后,就需要下载一些所必须的大模型了,sd需要的模型有很多中。
checkpoint这个是sd运行所需要的数据来源。大模型的文件大小都很大。一般都会在2个G以上。相当于sd作画是所需要的一个大字典。VAE这个是给画面上色的,可以理解成滤镜。让画面更加鲜艳动人,吸引眼球。Embeddingsd创作画面都是需要由文本描述也就是关键词的,这个模型就相当于把一部分关键词直接打包了。在描述的时候不需要描述很多内容,直接把模型引入到对应的文件夹。然后在关键词那里填写对应的Embedding即可。Hypernetwork这个相当于是书签,因为字典很大,有这个可以让sd做出来的画更加符合我们的要求。LoraLora相当于是Hypernetwork的升级版本。都是相当于在大模型的基础上进行更加详尽的描述,把需求描述的更加详细。对大模型的结果进行微调。LyCORISLyCORIS是对Lora的升级,在算法生更加精进,调整力度更大。
所有的模型都是为了让我们的描述内容有一个依托,让sd作画有一个范围,因为训练大模型的时候数据集很大,在实际运行的时候又需要通过其他的小一些的模型来进行精确的控制。所以就有了这些模型。
下面是一些常用的模型下载地址:
- civitai
- huggingface
- esheep(连接先对前面两个更稳定)
- liblibai(连接先对前面两个更稳定)
- openart
关键词,描述语句
提示词:正向文提示词,反向文提示词
最主要的还是要确认自己想要表现的内容是什么,即主题,因为内容都是为主题服务的
- 人物及主体特征
- 场景特征
- 环境光照
- 补充,画幅视角
除了对内容的描述,还需要一些对画质的描述关键词
- 高画质
- 特定的高分辨率
- 画风提示词(插画、二次元、写实)
提示词权重:可以通过加小括号的方式提高权重,也可以通过关键词后面添加具体倍数的方式控制
提示词网站:
- dawnmark
- atoolbox
插件管理
从github上安装sd后,即可进行出图操作了。但是为了让软件更好用,我们可以安装一些插件让sd更好用
- 中文汉化语言插件
- 图库浏览器插件(image broswer)
- 提示词插件
- Ultimate Upscale(图片放大,在文生图里以脚本的方式出现)
- Local Latent Couple(LLUl)(局部细节优化插件)
- after-detailer(帮助美化脸部或手的细节)
- controlNet
插件基本都是在github上管理的,也可以通过gitee等其他的代码平台下载安装。
- gitcode
- 码云
controlNet
controlNet是对画面进行精细化控制的插件。需要借助画面的一些元数据,例如
通道信息,通过ps可以获得这些信息。
- 对姿势进行控制
- 对画面深度进行控制
- 对画面边缘进行控制
- 对光影进行控制
- 生成艺术二维码
自己训练模型
如果以上内容还不够满足自己的要求,那我们可以自己进行模型训练
- 找到数据源,对某个对象的一些照片
- 通过sd对如片进行打标签,即标识画面上的内容。作为学习的依据
- 交给sd来学习
- 数据源最好是统一大小的
- 如果本地显卡不够可以通过aliyun来获得三个月的免费PAI的云服务
- 借助github上的项目,colab上的Lora_Trainer来进行数据训练
- 训练完成后需要通过sd的xyz脚本来选择效果最好的那个模型
相关文章:
Stable Diffusion的使用以及各种资源
Stable Diffsuion资源目录 SD简述sd安装模型下载关键词,描述语句插件管理controlNet自己训练模型 SD简述 Stable Diffusion是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如…...
Redis 分布式锁的实现方式
一般来说,在对数据进行“加锁”时,程序首先需要通过获取(acquire)锁来得到对数据排他性访问的能力,然后才能对数据执行一系列操作,最后还要将锁释放(release)给其他程序。 对于能够…...
VMware上搭建的虚拟机突然本地无法连接服务器
长时间没有使用VMware 虚拟机了,今天突然登录上去,启动虚拟服务器后发现本地等不了了, 经过排查发现是开启了:VirtualBox Host-Only Network 关闭之后就本机就可以直连服务器了...
JDBC回顾
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JDBC回顾 前言一、JDBC1.JDBC是什么?2.如何使用?(1)注册驱动(2)获取连接(3)操作…...
mq 消息队列 mqtt emqx ActiveMQ RabbitMQ RocketMQ
省流: 十几年前,淘宝的notify,借鉴ActiveMQ。京东的ActiveMQ集群几百台,后面改成JMQ。 Linkedin的kafka,因为是scala,国内很多人不熟。淘宝的人把kafka用java写了一遍,取名metaq,后…...
沃尔玛卖家必看!解决订单被Kan、Feng号问题的终极方案!
近期有很多沃尔玛卖家和工作室联系到我提到说在沃尔玛平台上下单,买家号出现副款义常订单被k掉,是什么原因、我们该如何去解决呢? 以下是一些可能导至你的测评订单被k单的原因: 1.技术问题:有时,网站或系…...
浅谈日常使用的 Docker 底层原理-三大底座
适合的读者,对Docker有过简单了解的朋友,想要进一步了解Docker容器的朋友。 前言 回想我这两年,一直都是在使用 Docker,看过的视频、拜读过的博客,大都是在介绍 Docker 的由来、使用、优点和发展趋势,但对…...
前端面试:【DOM】编织网页的魔法
嘿,亲爱的代码魔法师!在JavaScript的奇幻世界里,有一项强大的技能,那就是DOM操作。DOM(文档对象模型)操作允许你选择、修改和创建网页元素,就像是在编织一个魔法的网页。 1. 什么是DOMÿ…...
基于MATLAB开发AUTOSAR软件应用层Code mapping专题-part 2 Inport和Outports 标签页介绍
上篇我们介绍了Function页的内容,这篇我们介绍Inports和Outports页的内容,这里我们再次强调一个概念,code mapping是以simulink的角度去看的,就是先要在模型中建立simulink模块,在code mapping里映射他要对应的autosar的元素,之后生成代码时的c语言的名字是以Autosar的元…...
第9步---MySQL的索引和存储引擎
第9步---MySQL的索引和存储引擎 1.索引 1.1分类 索引可以快速的找出具有特定值的行。不用从头开始进行寻找了。 类别 hash和btree hash 根据字段值生生成一个hash的值 快速的进行定位到对应的行的值 可能会出现相同的值,找到对应的空间会出现对应的值 btree树…...
Numpy入门(3)—线性代数
线性代数 线性代数(如矩阵乘法、矩阵分解、行列式以及其他方阵数学等)是任何数组库的重要组成部分,NumPy中实现了线性代数中常用的各种操作,并形成了numpy.linalg线性代数相关的模块。本节主要介绍如下函数: diag&am…...
php的openssl_encrypt是不是自动做了PKCS5Padding?
在PHP中,openssl_encrypt函数默认使用的是PKCS7填充(不是PKCS5填充)。PKCS7填充实际上是PKCS5填充的扩展,用于对不同块大小的数据进行填充。 当你使用openssl_encrypt函数进行加密时,如果你没有显式指定填充模式和填充…...
在本地创建repository及上传至github
文章目录 本地管理设定git的用户名与邮箱初始化添加修改提交修改设定分支问题一:error: insufficient permission for adding an object... 数据同步创建SSH keys创建并关联远程仓库上传改动至github问题二:Failed to connect to github.com port 443: Connection timed out问题…...
情人节特别定制:多种语言编写动态爱心网页(附完整代码)
写在前面案例1:HTML Three.js库案例2:HTML CSS JavaScript案例3:Python环境 Flask框架结语 写在前面 随着七夕节的临近,许多人都在寻找独特而令人难忘的方式来表达爱意。在这个数字时代,结合创意和技术࿰…...
Docker mysql主从同步安装
1. 构建master实例 docker run -p 3307:3306 --name mysql-master \ -v /mydata/mysql-master/log:/var/log/mysql \ -v /mydata/mysql-master/data:/var/lib/mysql \ -v /mydata/mysql-master/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORDroot \ -d mysql:5.7 2. 构建master配置…...
docker update 命令
docker update 更新一个或多个容器的配置。官方文档 用法 $ docker update [OPTIONS] CONTAINER [CONTAINER...]请参阅选项部分OPTIONS,了解此命令可用的概述。 描述 该docker update命令动态更新容器配置。您可以使用此命令来防止容器消耗 Docker 主机的过多资…...
阻塞和挂起的区别和联系
阻塞和挂起是进程两种不同的状态,其描述如下: 阻塞:正在执行的进程由于发生某时间(如I/O请求、申请缓冲区失败等)暂时无法继续执行。此时引起进程调度,OS把处理机分配给另一个就绪进程,而让受阻…...
水力发电厂测量装置配置选型及厂用电管理系统
《水力发电厂测量装置配置设计规范》对水电厂的测量装置配置做了详细要求和指导。测量装置是水力发电厂运行监测的重要环节,水电厂的测量主要分为电气量测量和非电量测量。电气测量指使用电的方式对电气实时参数进行测量,包括电流、电压、频率、功率因数…...
【RabbitMQ】RabbitMQ整合SpringBoot案例
文章目录 1、前情提要【RabbitMQ】2、RabbitMQ-SpringBoot案例 -fanout模式2.1 实现架构总览2.2 具体实现2.2.1生产者2.2.1消费者 1、前情提要【RabbitMQ】 【RabbitMQ】消息队列-RabbitMQ篇章 RabbitMQ实现流程 2、RabbitMQ-SpringBoot案例 -fanout模式 2.1 实现架构总览…...
如何在window下cmd窗口执行linux指令?
1.Git:https://git-scm.com/downloads(官网地址) 2.根据自己的实际路径,添加两个环境变量 3.重启电脑...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
