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

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

一、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/

二、本地部署安装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绘世启动器

请看文末扫描获取

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

请看文末扫描获取

安装部署

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】,点击生成即可:

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

这里直接将该软件分享出来给大家吧~

这份完整版的stable diffusion资料我已经打包好,需要的点击下方添加,即可前往免费领取!

1.stable diffusion安装包

随着技术的迭代,目前 Stable Diffusion 已经能够生成非常艺术化的图片了,完全有赶超人类的架势,已经有不少工作被这类服务替代,比如制作一个 logo 图片,画一张虚拟老婆照片,画质堪比相机。

最新 Stable Diffusion 除了有win多个版本,就算说底端的显卡也能玩了哦!此外还带来了Mac版本,仅支持macOS 12.3或更高版本

在这里插入图片描述

2.stable diffusion视频合集

我们在学习的时候,往往书籍源码难以理解,阅读困难,这时候视频教程教程是就很适合了,生动形象加上案例实战,一步步带你入坑stable diffusion,科学有趣才能更方便的学习下去。

在这里插入图片描述

3.stable diffusion模型下载

stable diffusion往往一开始使用时图片等无法达到理想的生成效果,这时则需要通过使用大量训练数据,调整模型的超参数(如学习率、训练轮数、模型大小等),可以使得模型更好地适应数据集,并生成更加真实、准确、高质量的图像。

在这里插入图片描述

4.stable diffusion提示词

提示词是构建由文本到图像模型解释和理解的单词的过程。可以把它理解为你告诉 AI 模型要画什么而需要说的语言,整个SD学习过程中都离不开这本提示词手册。

在这里插入图片描述

5.SD从0到落地实战演练

在这里插入图片描述

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名SD大神的正确特征了。

这份完整版的stable diffusion资料我已经打包好,需要的点击下方添加,即可前往免费领取!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT+MYSQL数据库处理

1、打印Qt支持的数据库驱动&#xff0c;看是否有MYSQL数据库驱动 qDebug() << QSqlDatabase::drivers(); 有打印结果可知&#xff0c;没有MYSQL数据库的驱动 2、下载MYSQL数据库驱动&#xff0c;查看下面的文章配置&#xff0c;亲测&#xff0c;可以成功 Qt6 配置MySQL…

【Linux】centos7安装软件(rpm、yum、编译安装),补充:查找命令的相关文件路径,yum安装mysql

【Linux】技术上&#xff0c;Linux是内核。而术语上&#xff0c;我们通常说的Linux是完整的操作系统&#xff0c;其实称为"Linux发行版"&#xff0c;是将Linux内核和应用系统打包&#xff0c;由不同的发行家族发行了不同版本。Linux发行版众多&#xff0c;主要有RedH…

VScode通过ssh远程连接服务器被拒绝:permission denied, please try again

使用场景&#xff1a; 使用windows系统下的vscode远程连接服务器的linux系统&#xff0c;终端提示permission denied, please try again,但是使用cmd是可以远程登录的。 解决办法&#xff1a; 前提条件windows端的vscode安装了ssh远程连接的相关插件Remote - SSH&#xff0c;…

Spring Boot:让微服务开发像搭积木一样简单!

带你一探 Spring Boot 的自动配置和 Starter POMs 的神奇之处&#xff0c;展示如何通过几个简单的步骤就能让你的微服务应用在云端翱翔&#xff01; 文章目录 1. 引言1.1 简述Spring框架的起源与重要性1.2 阐述文章目的&#xff1a;深入解析Spring核心功能与应用实践2. 背景介绍…

Java面试之分布式篇

分布式锁的实现方案 &#xff08;1&#xff09;用数据库实现分布式锁比较简单&#xff0c;就是创建一张锁表&#xff0c;数据库对字段作唯一性约束。加锁的时候&#xff0c;在锁表中增加一条记录即可&#xff1b;释放锁的时候删除锁记录就行。如果有并发请求同时提交到数据库&…

String,StringBuilder,StringBuffer

String&#xff0c;StringBuffer&#xff0c;StringBuilder String类 概念:String是不可变类&#xff0c;即一旦一个String对象被创建&#xff0c;包含在这个对象中的字符序列是不可改变的&#xff0c;直至该对象被销毁&#xff0c;并且String类是final类&#xff0c;不能有子…

251 基于matlab的动态粒子群算法

基于matlab的动态粒子群算法。普通粒子群算法无法感知外界环境的变化&#xff0c;在外界环境发生改变时无法实时进行响应&#xff0c;因而缺乏动态环境寻优能力。在普通粒子群算法基本上通过增加敏感粒子得到一种动态粒子群算法&#xff0c;该算法通过实时计算敏感粒子的适应度…

【Linux】- Linux环境变量[8]

目录 环境变量 $符号 自行设置环境变量 环境变量 环境变量是操作系统&#xff08;Windows、Linux、Mac&#xff09;在运行的时候&#xff0c;记录的一些关键性信息&#xff0c;用以辅助系统运行。在Linux系统中执行&#xff1a;env命令即可查看当前系统中记录的环境变量。 …

论文笔记模版

1. 摘要 1.1 背景 1.2 挑战 1.3 提出新方法 1.4 贡献 2. 引言 2.1 背景&#xff08;引出问题&#xff09; ①介绍大背景&#xff1a; ② 应用场景&#xff1a; ③ 介绍主题&#xff1a; 2.2 引出挑战 一般用图表来展现出我们的挑战&#xff08;直观&#xff0c;解决什…

Weblogic < 10.3.6 ‘wls-wsat‘ XMLDecoder 反序列化漏洞(CVE-2017-10271)

1 漏洞概述 CVE-2017-10271 是一个存在于 Oracle WebLogic Server 10.3.6 以下版本中的 XMLDecoder 反序列化漏洞。此漏洞源于 WebLogic 的 WLS-WebServices 核心组件&#xff0c;该组件使用 XMLDecoder 来解析用户传入的 XML 数据。由于 XMLDecoder 在处理某些特定格式的 XML…

吴恩达 深度学习 神经网络 softmax adam 交叉验证

神经网络中的层&#xff1a;输入层&#xff08;layer 0&#xff09;、隐藏层、卷积层&#xff08;看情况用这个&#xff09;、输出层。&#xff08;参考文章&#xff09; 激活函数&#xff1a; 隐藏层一般用relu函数&#xff1b; 输出层根据需要&#xff0c;二分类用sigmoid&…

算法笔记——数位DP

一、前置知识 1.DP小知识 D P DP DP 是一种算法思想&#xff0c;用递推方程的方式解决问题。但是使用它要满足如下性质&#xff1a; 最优子结构&#xff1a; 子结构优秀&#xff0c;整个就优秀。无后效性&#xff1a;当前决策不会影响后面。 2.DP实现方法 众所周知&#xf…

【解决】Android APK文件安装时 已包含数字签名相同APP问题

引言 在开发Android程序过程中&#xff0c;编译好的APK文件&#xff0c;安装至Android手机时&#xff0c;有时会报 包含数字签名相同的APP 然后无法安装的问题&#xff0c;这可能是之前安装过同签名的APP&#xff0c;但是如果不知道哪个是&#xff0c;无法有效卸载&#xff0c;…

Linux——进程间通信

目录 一、进程通信的初步认识 1.1 进程间通信目的 1.2 进程间通信的种类 管道&#xff08;Pipes&#xff09; System V IPC POSIX IPC 三、管道 3.1 知识铺垫 3.2 匿名管道 3.2.1 基本概念 3.2.2 测试用例&#xff1a; 3.3 管道的行为 3.4 命名管道 3.4.1 基本概念…

生产设备数据管控要怎么做 可以实现精益生产和智能制造?

生产设备在制造过程中会产生多种类型的数据&#xff0c;这些数据对于优化生产流程、提高效率、降低成本和预防性维护等方面至关重要。需要对这些数据进行有效的采集和管理&#xff0c;以实现对生产设备数据管控。 一、生产设备数据类型包括&#xff1a; 设备运行状态数据&…

机器学习周报第三十八周 iTransformer

文章目录 week38 iTransformer摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构**转置Embedding&#xff1a;****LayerNorm&#xff08;层归一化&#xff09;****Feed-forward network&#xff08;前馈网络&#xff09;****Multivariate-Attention&#xff08;多变量注意…

【Linux 网络】网络编程套接字 -- 详解

⚪ 预备知识 1、理解源 IP 地址和目的 IP 地址 举例理解&#xff1a;&#xff08;唐僧西天取经&#xff09; 在 IP 数据包头部中 有两个 IP 地址&#xff0c; 分别叫做源 IP 地址 和目的 IP 地址。 如果我们的台式机或者笔记本没有 IP 地址就无法上网&#xff0c;而因为…

【UnityUI程序框架】The PureMVC Framework[一]底层源码中文详解

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

推导 模型矩阵的逆转置矩阵求运动物体的法向量

一个物体表面的法向量如何随着物体的坐标变换而改变&#xff0c;取决于变换的类型。使用逆转置矩阵&#xff0c;可以安全地解决该问题&#xff0c;而无须陷入过度复杂的计算中。 法向量变化规律 平移变换不会改变法向量&#xff0c;因为平移不会改变物体的方向。 旋转变换会改…

Python 全栈系列244 nginx upstream 负载均衡 踩坑日记

说明 最初是因为租用算力机(Python 全栈系列242 踩坑记录:租用算力机完成任务)&#xff0c;所以想着做一个负载均衡&#xff0c;然后多开一些服务&#xff0c;把配置写在nginx里面就好了。 一开始租用了一个3080起了一个服务&#xff0c;后来觉得速度不够快&#xff0c;再起了…