Stable Diffusion的使用以及各种资源

news2024/12/25 14:42:39

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脚本来选择效果最好的那个模型

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

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

相关文章

【SA8295P 源码分析】06 - SA8295P XBL Loader 阶段 sbl1_main_ctl 函数代码分析

【SA8295P 源码分析】06 - SA8295P XBL Loader 阶段 sbl1_main_ctl 函数代码分析 一、XBL Loader 汇编源码分析1.1 解析 boot\QcomPkg\XBLLoader\XBLLoader.inf1.2 boot\QcomPkg\XBLDevPrg\ModuleEntryPoint.S:跳转 sbl1_entry 函数1.3 XBLLoaderLib\sbl1_Aarch64.s…

shell脚本之循环语句

循环语句 循环含义 将某代码段重复运行多次,通常有进入循环的条件和退出循环的条件 for循环语句 一般知道循环次数使用for循环 第一类 格式1: for名称 in 取值次数;do;done; 格式2: for 名称 in {取值列表} do done# 打印20次 for i i…

docker安装redis7-分片集群

说明 系统:CentOS7.9 redis:7.0.5 因资源有限所有节点部署在一台宿主机上,总共启动6个redis实例,实例对应端口分别从6380-6385,文章中给的有执行脚本,方便配置redis和操作redis实例 下载镜像 docker …

JVM的元空间了解吗?

笔者近期在面试的时候被问到了这个问题,元空间也是Java8当时的一大重大革新,之前暑期实习求职的时候有专门看过,但是近期秋招的时候JVM相关的内容确实有点生疏了,故在此进行回顾。 结构 首先,我们应了解JVM的堆结构&a…

c++——引用(语法、引用特性、常引用、函数返回值引用和指针与引用的不同点)

c中的引用 一、引用 1、引用的概念:给变量取别名。 形式:原类型名& 别名 引用实体旧名; 2、特性: ①引用定义时必须初始化 ②引用一旦初始化之后就不能再改变引用的指向 ③不能引用NULL ④&再等号的左边为引用&…

FPGA原理与结构——ROM IP的使用与测试

一、前言 本文介绍Block Memory Generator v8.4 IP核 实现ROM,在学习一个IP核的使用之前,首先需要对于IP核的具体参数和原理有一个基本的了解,具体可以参考: FPGA原理与结构——块RAM(Block RAM,BRAM)http…

04_18内存反碎片技术,什么时候适合进行内存碎片整理

前言 内存碎片分为内部碎片和外部碎片,内部碎片指内存页里面的碎片,外部碎片指空闲的内存页分散,很难找到一组物理地址连续的空间内存页,无法满足超过一页的内存分配请求。 虚拟可移动区域 可移动区域(ZONE_MOVABLE…

A 题国际旅游网络的大数据分析-详细解析与代码答案(2023 年全国高校数据统计与调查分析挑战赛

请你们进行数据统计与调查分析,使用附件中的数据,回答下列问题: ⚫ 问题 1: 请进行分类汇总统计,计算不同国家 1995 年至 2020 年累计旅游总人数,从哪个国家旅游出发的人数最多,哪个国家旅游到达的人数最多…

【JavaEE】面向切面编程AOP是什么-Spring AOP框架的基本使用

【JavaEE】Spring AOP(1) 文章目录 【JavaEE】Spring AOP(1)1. Spring AOP 是什么1.1 AOP 与 Spring AOP1.2 没有AOP的世界是怎样的1.3 AOP是什么 2. Spring AOP 框架的学习2.1 AOP的组成2.1.1 Aspect 切面2.1.2 Pointcut 切点2.1…

微人事 部门管理 模块 (十五)

部门管理的树展示和搜索 数据展示页是个树,我们一次性把数据加载出来也可以通过点一次id加载查询出来出来子部门,我们用一次拿到说有json数据加载出来 数据不多可以用递归,数据很多就用懒加载的方式 由于子部门比较深就不适合,权…

# 59. python的类与对象-更新

[目录] 文章目录 59. python的类与对象-更新1.面向对象编程2.什么是类3.什么是对象4.如何描述对象5.对象的属性和方法6.Python中的类7.type()函数查看数据类型8.类在Python中的应用9.总结 【正文】 59. python的类与对象-更新 1.面向对象编程 本节内容特别抽象,初…

Web3和去中心化:互联网的下一个演化阶段

文章目录 Web3和去中心化的定义Web3:去中心化: 为什么Web3和去中心化如此重要?数据隐私和安全:去中心化的创新:去除中间商: Web3和去中心化的应用领域去中心化金融(DeFi)&#xff1a…

wustojc2003求整数均值

#include <stdio.h> int main() {int a,b,c,d;double A;scanf("%d%d%d%d",&a,&b,&c,&d);A(double)((abcd)/4.0);//强转成doubleprintf("Sum %d\n",abcd);printf("Average %.2lf",A);return 0;}

C++笔记之基类指针动态地指向某一个子类情况列举

C笔记之基类指针动态地指向某一个子类情况列举 code review! 文章目录 C笔记之基类指针动态地指向某一个子类情况列举1.基本的多态示例2.基类中的成员函数可以设置为纯虚函数3.将基本示例修改为使用智能指针并在堆上实例化子类4.父类指针指向基类后&#xff0c;可以去调用只有…

【JUC系列-01】深入理解JMM内存模型的底层实现原理

一&#xff0c;深入理解JMM内存模型 1&#xff0c;什么是可见性 在谈jmm的内存模型之前&#xff0c;先了解一下并发并发编程的三大特性&#xff0c;分别是&#xff1a;可见性&#xff0c;原子性&#xff0c;有序性。可见性指的就是当一个线程修改某个变量的值之后&#xff0c…

shell脚本之sed

sed sed 即 Stream EDitor&#xff0c;和 vi 不同&#xff0c;sed是行编辑器 基本用法 sed [选项] 自身脚本用法 [支持输入标准输入管道] 常用选项&#xff1a;-n 不输出模式空间内容到屏幕&#xff0c;即不自动打印-e 多点编辑-f FILE 从指定文件中读取编辑脚本-r, -E 使用…

【TypeScript】内置对象

JavaScript 中很多内置对象&#xff0c;可以直接在 TypeScript 中当做定义好了的类型。 ECMAScript 的内置对象 Boolean、Number、String、RegExp、Date、Error、XMLHttpRequest 等 let num: Number new Number(1) let date: Date new Date() let reg: RegExp new RegExp(…

WTF Langchain极简入门: 03. 数据连接

加载文档 langchain提供多种文档加载器&#xff0c;支持多种格式、来源的文件。可以从本地存储系统加载文件&#xff0c;也可以从网上加载远端文件。想了解LangChain所支持的所有文档加载器&#xff0c;请参考Document Loaders。 在本系列课程中&#xff0c;我们将使用最基本…

Docker 搭建 LNMP + Wordpress(详细步骤)

目录 一、项目模拟 1. 项目环境 2. 服务器环境 3.任务需求 二、Linux 系统基础镜像 三、Nginx 1. 建立工作目录 2. 编写 Dockerfile 脚本 3. 准备 nginx.conf 配置文件 4. 生成镜像 5. 创建自定义网络 6. 启动镜像容器 7. 验证 nginx 四、Mysql 1.…

快速学习GO语言总结

备注&#xff1a;本博客将自己初步学习GO的总结进行分享&#xff0c;希望大家通过本博客可以在短时间内快速掌握GO的基本程序编码能力&#xff0c;如有错误请留言指正&#xff0c;谢谢&#xff01; 一、初步了解Go语言 &#xff08;一&#xff09;Go语言诞生的主要问题和目标…