Stable Diffusion教程|快速入门SD绘画原理与安装

news2024/11/16 11:53:45

什么是Stable Diffusion,什么是炼丹师?根据市场研究机构预测,到2025年全球AI绘画市场规模将达到100亿美元,其中Stable Diffusion(简称SD)作为一种先进的图像生成技术之一,市场份额也在不断增长,越来越多的人参与到AI掘金这场运动中来。炼丹师,就是指那些专门研究、开发与应用Stable Diffusion模型的专业人士或爱好者,他们在实践中不断优化模型,使其产生更高质量、更具创意的图像。

目录

_1 SD绘画原理
_

2 本地部署安装SD WebUI

3 生成第一张SD绘画

**一、**SD绘画原理

基本概念

名词
解释说明‍
Stable Diffusion是一种基于扩散模型的先进的人工智能技术,特别适用于文本到图像(Text-to-Image)的生成任务。该模型由CompVis、Stability AI、LAION等研究机构和公司合作研发,它利用扩散过程在潜在空间(latent space)中生成图像,而不是直接在高维像素空间中操作。
SD WebUIStable Diffusion Web UI (SD WebUI) 是一个用于交互式控制和使用 Stable Diffusion 模型的网页应用程序界面。用户可以通过这个界面输入文本提示(prompt)来驱动模型生成相应的图像,提供了简单易用的方式来体验和定制基于 Stable Diffusion 的文本到图像生成过程。
Python是一种广泛使用的高级编程语言,以其语法简洁清晰和代码可读性强而著称。在AI领域,Python尤为流行,因为它拥有丰富的科学计算、机器学习和数据处理相关的库,比如NumPy、Pandas和TensorFlow等。在部署和使用像Stable Diffusion这样的深度学习模型时,Python常被作为开发和运行环境的基础。
Controlnet插件
是针对 Stable Diffusion 模型开发的一种功能扩展插件,它允许用户在文本生成图像的过程中实现更为细致和精确的控制。该插件使得用户不仅能够通过文本提示(prompt)指导模型生成图像,还能添加额外的输入条件,比如控制图像的构图、颜色、纹理、物体位置、人物姿势、景深、线条草图、图像分割等多种图像特征。通过这种方式,ControlNet 提升了 AI 绘画系统的可控性和灵活性,使得艺术创作和图像编辑更加精细化。
Controlnet模型是配合上述插件工作的一个组成部分,它是经过训练以实现对大型预训练扩散模型(如 Stable Diffusion)进行细粒度控制的附加神经网络模型。ControlNet 模型可以学习如何根据用户的特定需求去调整原始扩散模型的输出,即便是在训练数据有限的情况下,依然能够确保生成结果的质量和稳定性。例如,ControlNet 可能包括用于识别和利用边缘映射、分割映射或关键点信息的子模块,从而实现对生成图像的特定区域进行针对性修改或强化。
VAE

Variational Autoencoder (VAE): 变分自编码器是一种概率生成模型,它结合了编码器(将输入数据编码为潜在空间中的概率分布)和解码器(从潜在空间重构数据)的概念。在图像生成场景中,VAE可以用来学习数据的潜在表示,并基于这些表示生成新的图像。

CHECKPOINT
SD能够绘图的基础模型,因此被称为大模型、底模型或者主模型,WebUI上就叫它Stable Diffusion模型。安装完SD软件后,必须搭配主模型才能使用。不同的主模型,其画风和擅长的领域会有侧重。checkpoint模型包含生成图像所需的一切,不需要额外的文件。
hyper-network超网络是一种模型微调技术,最初是由NOVA AI 公司开发的。它是一个附属于Stable Diffusion 稳定扩散模型的小型神经网络,是一种额外训练出来的辅助模型,用于修正SD稳定扩散模型的风格。
LORA‍
全称是Low-Rank Adaptation of Large Language Models 低秩的适应大语言模型,可以理解为SD模型的一种插件,和hyper-network,controlNet一样,都是在不修改SD模型的前提下,利用少量数据训练出一种画风/IP/人物,实现定制化需求,所需的训练资源比训练SD模要小很多,非常适合社区使用者和个人开发者。LoRA最初应用于NLP领域,用于微调GPT-3等模型(也就是ChatGPT的前生)。由于GPT参数量超过千亿,训练成本太高,因此LoRA采用了一个办法,仅训练低秩矩阵(low rank matrics),使用时将LoRA模型的参数注入(inject)SD模型,从而改变SD模型的生成风格,或者为SD模型添加新的人物/IP。

prompt

提示词/咒语

工作原理

Stable Diffusion就是一个接收文本提示词,并生成相应图像的生成模型。

SD来自于扩散模型(Diffusion Model)

扩散模型:(Diffusion Model)的核心原理被生动地比喻为物理学中的扩散过程,通过前向扩散过程逐渐将图像转化为噪声图像,然后通过反向扩散过程恢复出清晰的图像。在Stable Diffusion中,模型训练了一个噪声预测器(noise predictor),它是一个U-Net结构的神经网络,可以预测并从图像中去除噪声,从而重构原始图像。

然而,传统的扩散模型在图像空间中的运算效率极低,不适合实时应用。为此,Stable Diffusion采用了在潜在空间(latent space)中进行扩散的过程,利用变分自编码器(VAE)将图像压缩到较低维度的空间,极大地提高了计算速度和效率。

Stable Diffusion的具体工作流程包括:

  1. 输入图像被编码到潜在空间。

  2. 添加噪声,并通过噪声预测器估算添加的噪声量。

  3. 反复迭代,通过噪声预测器预测并减去潜在噪声。

  4. 使用VAE的解码器将清理过的潜在图像转换回像素空间,生成最终图像。

学习资料

国外一手资料:

stability.ai官网
https://stability.ai/about

github开源项目

https://github.com/CompVis/stable-diffusion/blob/main/README.md

The Illustrated Stable Diffusion @Jay Alammar 讲的原理
https://jalammar.github.io/illustrated-stable-diffusion/

知乎:

(2道贩子们翻译得比较好的两篇中文)

《深入浅出讲解Stable Diffusion原理,新手也能看明白》
https://zhuanlan.zhihu.com/p/627133524

《【Stable Diffusion】之原理篇》
https://zhuanlan.zhihu.com/p/618862789

B站:

(国内大佬@秋葉aaaki 提供SD WebUI的视频教学,其他营销号容易胡讲瞎讲)

@秋葉aaaki【【AI绘画】深入理解Stable Diffusion!站内首个深入教程,30分钟从原理到模型训练 买不到的课程】
https://www.bilibili.com/video/BV1x8411m76H/?share_source=copy_web&vd_source=75d4be47499638bec0f237ad9482ad50

Stable Diffusion 潜工具书 (必读@秋葉aaaki 整理的电子书)https://docs.qq.com/doc/p/230e7ada2a60d8e347d639edd5521f5e62332fe9

二、本地部署安装SD WebUI

硬件条件

说明:本地部署的硬件要求,当然使用云端部署租赁更高端的机器也是没问题。


最低推荐配置

推荐配置

备注

显卡(GPU)

GTX1050Ti

低配推荐:RTX4060Ti-16G高配推荐:RTX4090

为达到良好的体验,请尽可能使用8GB显存及以上显卡。低显存虽然能跑,但是体验极差

内存(RAM)

8GB内存

总内存24GB及以上

可以开启虚拟内存,内存过小会在加载模型的时候出现问题

存储空间

20GB任意存储设备

500GB以上固态硬盘

强烈建议单独使用一个盘符,如果不想启动的时候等10分钟的话,那么只推荐使用SSD

CPU

x86架构的Intel或AMD等处理器都可以,

若为Mac电脑建议使用搭载M系列芯片的机型。

  1. 显卡VRAM在4GB以下的会很容易遇到显存不足的问题,即使使用放大插件也就非常慢(以时间换显存)

2. 显卡较差/显存严重不足时可以开启CPU模式,但是速度非常慢。你不希望一个小时一张图的话那就别想着用CPU跑图。

软件需求

Windows:最低要求为Windows 10 64比特,请确保系统已更新至最新版本。

macOS:最低要求为macOS Monterey (12.5),如果可以的话请使用最新版macOS。建议使用搭载Apple Silicon M芯片 (M1、M2) 的Mac机型。旧款Mac需配备AMD独立显卡,只有Intel核显的不能使用。

下载地址 (不藏着掖着,直接拿走不谢)

SD WebUI秋叶整合包与SD Webui绘世启动器

https://pan.quark.cn/s/2c832199b09b#/list/share

SD WebUI秋叶整合包【A卡适配版】

https://pan.quark.cn/s/19a36cab36ac#/list/share

安装部署

2024.1月 更新了最新的整合包,无需任何操作即可达到最佳速度,解压打开即用,内置启动器。

整合包做了哪些事情?打包了 Python、Git、CUDA 等等必须的环境,并且放了运行必须的模型。简单来说,整合包就是 SD-WebUI内核+启动器+安装好的环境+必须的模型。你只需下载它解压就可以直接启动运行!

特别鸣谢,安装包作者@秋葉aaaki

**三、**生成第一张SD绘画

启动“A启动器.exe”

加载更新

点击“一键启动”

[不要关闭它],它会自动打开,浏览器地址"http://127.0.0.1:7860/?__theme=dark"

基本功能介绍

界面及操作说明
stable diffusion模型
下拉,替换大模型/底模
正面提示词 Tag

(想要的内容,提示词)

如:masterpiece, best quality,

反面提示词 Tag

(不想要的内容,提示词)

如:lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry

提示词加权重

(girl) 加权重,这里是1.1倍。

((girl)) 加很多权重,1.1*1.1=1.21倍,以此类推。

提示词减权重[girl] 减权重,一般用的少。减权重也一般就用下面的指定倍数。
提示词指定权重
(girl:1.5) 指定倍数,这里是1.5倍的权重。还可以 (girl:0.9) 达到减权重的效果
采样迭代步数

不需要太大,一般在50以内。通常28是一个不错的值。

采样方法
没有优劣之分,但是他们速度不同。全看个人喜好。推荐的是图中圈出来的几个,速度效果都不错
提示词相关性代表你输入的 Tag 对画面的引导程度有多大,可以理解为 “越小AI越自由发挥”,太大会出现锐化、线条变粗的效果。太小AI就自由发挥了,不看 Tag
随机种子生成过程中所有随机性的源头 每个种子都是一幅不一样的画。默认的 -1 是代表每次都换一个随机种子。由随机种子,生成了随机的噪声图,再交给AI进行画出来

切换webUI黑白皮肤,修改浏览器http地址:
白:http://127.0.0.1:7860/?__theme=light
黑:http://127.0.0.1:7860/?__theme=dark

输入提示词【1 girl】,点击生成即可:

(我安装了皮肤插件,所以和你运行的界面稍微酷炫一点_

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

感兴趣的小伙伴,赠送全套AIGC学习资料和安装工具,包含AI绘画、AI人工智能等前沿科技教程,模型插件,具体看下方。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

图片

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!

在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

这份完整版的AIGC全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费在这里插入图片描述

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

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

相关文章

前端-05-VSCode自定义代码片段console.log(js/ts配置)、代码段快捷提示放在首位

目录 配置VSCode自定义代码片段console.log()log代码段快捷提示放在首位 配置VSCode自定义代码片段console.log() 点击VSCode左下角设置图标,点击用户代码片段 点击用户代码片段后,VSCode上方出现弹窗如下图(没有显示这两个文件的话搜索一下…

探索国际TikTok矩阵:快速涨粉与变现的全新玩法

在当前的TikTok(国际版抖音)生态中,矩阵玩法正在成为越来越多内容创作者和电商卖家的热门选择。要有效利用TikTok矩阵,首先得清晰地确定每个账号的内容定位,选择你想要深入的领域。 一、热门TikTok账号类型解析 1. 流量…

milvus - VectorDBBench benchmaker 性能测试工具使用经验

IVF_FLAT (Inverted File with Flat Indexing) 优点: 在数据量适中且维度不是非常高的情况下,IVF_FLAT能提供精确的最近邻搜索结果。 相对简单,易于理解和实现。 缺点: 当数据集非常大时,IVF_FLAT需要大量的内存来存储整个数据集,…

基于欧氏距离的点云聚类(python)

1、背景介绍 欧式聚类是一种基于欧氏距离度量的聚类算法。它是点云处理中的一个重要步骤,它可以帮助我们从无序的点云数据中提取有意义的信息。一般来说,对点云进行欧式聚类处理,可以帮助后续数据处理,如物体检测与识别、三维重建…

链式栈,队列与树形结构

链式栈 链式存储的栈 实现方式:可以使用单向链表完成 对单向链表进行头插(入栈)、头删(出栈),此时链表的头部就是链栈的栈顶,链表的尾部,就是链栈的栈底 队列 概念 队列&#…

二叉树算法题(1)

单值二叉树 思路: 若根结点为NULL,则直接返回true若根结点的左右结点存在,且与根结点的值不相等,则返回false递归根结点的左右子树 typedef struct TreeNode TreeNode; bool isUnivalTree(struct TreeNode* root) {if(root NU…

程序员修炼之路:深入广泛的必修课程

成为一名优秀的程序员,需要广泛而深入地学习多个领域的知识。这些课程不仅帮助建立扎实的编程基础,还培养了问题解决、算法设计、系统思维等多方面的能力。以下是一些核心的必修课: 计算机基础 计算机组成原理:理解计算机的硬件组…

一步步揭秘:浏览器输入URL后的那些事儿

Hello大家好,我是小米,一个热爱分享技术的IT达人。今天我们一起来聊聊一个大家每天都会用到但可能不太了解的过程:浏览器输入URL之后发生了什么。这是一个从用户输入到浏览器显示页面的完整过程,涉及到很多底层的网络基础知识。今天我们就一起来探究这个神秘的过程! DNS解…

Java 中的File类

路径分为绝对路径和相对路径。 相对路径肯定是相对谁来说的,一般是一个文件相对于另外一个文件而言的路径。 下面是一个例子,比如index.htm如何找到photo.jpg呢? c:/website/web/index.htmc:/website/img/photo.jpg 所以在index.htm中使用…

Python:类的属性(实例属性、类属性)和方法(实例方法、类方法、静态方法)

相关阅读 Pythonhttps://blog.csdn.net/weixin_45791458/category_12403403.html?spm1001.2014.3001.5482 Python是一门面向对象的编程语言,其核心概念之一是类。类是对象的蓝图或模板,定义了对象的属性和方法。理解类的属性和方法对于掌握Python编程至…

【Docker】常见概念|技术架构演进之路|八大架构|单机架构|应用数据分离架构|应用服务集群架构

目录 一、常见概念 应用(Application) / 系统(System) 模块(Module) / 组件(Component) 分布式(Distributed) 集群(Cluster) 主…

python调用MATLAB函数的一个诡异的问题,数据类型问题

记一次python调用MATLAB函数的诡异问题 说明(废话)解决方案总结 说明(废话) 这个问题的起因是python调用MATLAB函数的问题,归根结底,主要还是因为不同语言对于不同的数据表达的方式不同造成的问题。 pytho…

在Postman中引用JS库

前言 在做接口测试时,出于安全因素,请求参数需要做加密或者加上签名才能正常请求,例如:根据填写的请求参数进行hash计算进行签名。postman作为主流的接口调试工具也是支持请求预处理的,即在请求前使用JavaScript脚本对…

界面组件DevExtreme v24.2将发布一系列新组件、支持.NET 9

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac&#xff0c…

中小企业选择数字工厂管理系统需要注意哪些问题

在当今数字化转型的大潮中,中小企业作为经济体系的重要组成部分,正积极寻求通过引入数字工厂管理系统来提升生产效率、优化资源配置、增强市场竞争力。然而,面对市场上琳琅满目的数字工厂管理系统解决方案,中小企业在选择时往往面…

HarmonyOS鸿蒙- 延时执行

一、延时执行一次 3000 表示秒,可根据需求修改 //2秒后执行打印setTimeout(() > {console.log(Timer is end)},3000) 取消延时执行 // 3秒后执行打印 let timerId setTimeout(() > {console.log(Timer is end)},3000)// 取消timerId的延时 clearTimeout(timerId) 二、…

设计师的素材管理神器,eagle、千鹿大测评

前言 专业的设计师都会精心维护自己的个人素材库,常常需要耗费大量时间用于浏览采集、分类标注、预览筛选、分享协作,还要管理字体、图片、音视频等各类设计素材 如果你作为设计师的话,今天,就为大家带来两款热门的素材管理工具…

构建基于数据驱动的应用程序与Llamaindex——理解大型语言模型

如果你在阅读这本书,你可能已经探索过大型语言模型(LLMs)的领域,并且已经认识到它们的潜在应用以及它们的缺陷。本书旨在解决LLMs所面临的挑战,并提供一本实用指南,教你如何使用LlamaIndex构建数据驱动的LL…

57_Redis与Springboot的集合应用

前提 要实现,使用Redis存储登录状态 需要一个完整的前端后端的项目 前端项目搭建 解压脚手架安装依赖配置请求代理选做: 禁用EsLint语法检查 Vue Admin Template关闭eslint校验,lintOnSave:false设置无效解决办法_lintonsave: false-CSDN博客 后端项…

C++和R穿刺针吸活检肿瘤算法模型模拟和进化动力学量化差异模型

🎯要点 🎯模拟肿瘤细胞增生进化轨迹 | 🎯肿瘤生长的随机空间细胞自动机模型 | 🎯模拟穿刺活检的收集空间局部的肿瘤块,模拟针吸活检采集长而薄的组织样本 | 🎯构建不同参数模拟合成肿瘤测试集 | &#x1f…