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

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作画有一个范围,因为训练大模型的时候数据集很大,在实际运行的时候又需要通过其他的小一些的模型来进行精确的控制。所以就有了这些模型。
下面是一些常用的模型下载地址:

  1. civitai
  2. huggingface
  3. esheep(连接先对前面两个更稳定)
  4. liblibai(连接先对前面两个更稳定)
  5. openart

关键词,描述语句

提示词:正向文提示词,反向文提示词
最主要的还是要确认自己想要表现的内容是什么,即主题,因为内容都是为主题服务的

  1. 人物及主体特征
  2. 场景特征
  3. 环境光照
  4. 补充,画幅视角

除了对内容的描述,还需要一些对画质的描述关键词

  1. 高画质
  2. 特定的高分辨率
  3. 画风提示词(插画、二次元、写实)

提示词权重:可以通过加小括号的方式提高权重,也可以通过关键词后面添加具体倍数的方式控制
提示词网站:

  1. dawnmark
  2. atoolbox

插件管理

从github上安装sd后,即可进行出图操作了。但是为了让软件更好用,我们可以安装一些插件让sd更好用

  1. 中文汉化语言插件
  2. 图库浏览器插件(image broswer)
  3. 提示词插件
  4. Ultimate Upscale(图片放大,在文生图里以脚本的方式出现)
  5. Local Latent Couple(LLUl)(局部细节优化插件)
  6. after-detailer(帮助美化脸部或手的细节)
  7. controlNet
    插件基本都是在github上管理的,也可以通过gitee等其他的代码平台下载安装。
  • gitcode
  • 码云

controlNet

controlNet是对画面进行精细化控制的插件。需要借助画面的一些元数据,例如通道信息,通过ps可以获得这些信息。

  1. 对姿势进行控制
  2. 对画面深度进行控制
  3. 对画面边缘进行控制
  4. 对光影进行控制
  5. 生成艺术二维码

自己训练模型

如果以上内容还不够满足自己的要求,那我们可以自己进行模型训练

  1. 找到数据源,对某个对象的一些照片
  2. 通过sd对如片进行打标签,即标识画面上的内容。作为学习的依据
  3. 交给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&#xff…...

基于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框架结语 写在前面 随着七夕节的临近,许多人都在寻找独特而令人难忘的方式来表达爱意。在这个数字时代,结合创意和技术&#xff0…...

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.重启电脑...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...