Stable Diffusion AI入门介绍

news2024/12/27 1:47:01

Stable Diffusion模型

在上一篇的文章中我们介绍了,AIGC的相关知识以及AI绘画的历史——AIGC是什么,与AI绘画有什么关系,一篇文章带你了解AI绘画的前世今生。

我们知道了Stable Diffusion是一种潜在扩散模型,由慕尼黑大学的CompVis研究团体开发的各种生成性人工神经网络之一。它是由初创公司StabilityAI、CompVis与Runway合作开发,并得到EleutherAI和LAION的支持,同时进行了开源,其核心代码和基础功能是完全免费的,任何用户都可以下载和使用Stable Diffusion的基础版本,无需支付任何费用。

另外,Stable Diffusio也提供了AI绘画社区、基于SD的自训练AI绘画模型以及丰富的辅助AI绘画工具与插件等,不仅吸引了AI爱好者,也吸引了专业人士,共同推动了AI生成内容(AIGC)领域的发展和普及。

总之,Stable Diffusion不仅在技术上取得了显著的进步,而且在艺术创作、设计和其他多个领域展现了广泛的应用潜力。它的出现标志着AI图像生成技术的一次重大飞跃,它的发布被认为提高了AI图像生成的标准。

Stable Diffusion的源代码和模型权重已分别公开发布在GitHub和Hugging Face,可以在大多数配备有适度GPU的电脑硬件上运行。而以前的专有文生图模型(如DALL-E和Midjourney)只能通过云计算服务访问。

Stable Diffusion源码地址:stable-diffusion
Stable Diffusion模型地址:https://huggingface.co/CompVis

其他微调版本:

Stable Diffusion Version 1.5

在线体验地址:https://huggingface.co/spaces/runwayml/stable-diffusion-v1-5

v1.5模型地址:https://huggingface.co/runwayml/stable-diffusion-v1-5

Stable Diffusion Version 2

在线体验地址:https://huggingface.co/spaces/stabilityai/stable-diffusion

v2.x模型地址:https://huggingface.co/stabilityai/stable-diffusion-2-1

Stable Diffusion工具

Stable Diffusion使用需要通过代码来调用模型进行绘图,但这种方式并不便于使用,以此开发者们开发出了基于Web操作界面进行绘图的工具。比较典型和使用较多的有两个:

stable-diffusion-webui

1-1

ComfyUI

1-2

这两个工具都可以通过Web界面来操作绘图。SD WebUI 相对来说更简单易用,功能一目了然,入门门槛比较低,容易上手;而ComfyUI 对于 WebUI 来说,拥有更好的性能和速度,可以使用更低的内存来运行。而且节点式的界面和工作流玩法,配置灵活,玩法也更多。但是入门门槛相对较高。

初学者建议开始使用stable-diffusion-webui, 待学习高级教程后再来了解ComfyUI

Stable Diffusion配置&安装

配置

拥有Nvidia独立显卡,需要足够大的显存,最低配置4GB显存,基本配置6GB显存,推荐配置12GB显存(训练推荐大于12G),最好16GB及以上,总之内存越大越好。

硬盘推荐使用固态硬盘。

A卡不推荐,性能损耗比较大,Mac电脑也是可以的,但推荐M1/M2芯片。但是既然都搞AI绘图了,推荐还是配置个台式机+N卡,不然效果嘛就不好说了。

安装

本文都以stable-diffusion-webui来介绍,关于ComfyUI会单独出系列文章介绍。

两种方式:

1、使用秋叶整合包,直接打包启动

可参考:

https://www.bilibili.com/video/BV1iM4y1y7oA/?spm_id_from=333.976.0.0&vd_source=d570529fd54eb3eefc0c3a84ffb592e9

2、自己构建启动应用

本文主要以开发2为主,自己构建,如果已经安装好了,可以忽略以下步骤。

WebUI下载

项目仓库地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui,可以通过git,也可以直接下载作者的release包获取。

Python环境

注意:官方推荐安装 Python 3.10.6 版本,最好使用该版本,不然后面可能会有兼容性问题,笔者就遇到过这个问题,又重新安装回该版本。

3.10.6下载地址

python --version
CUDA 环境

默认 stable-diffusion-webui 运行使用的是 GPU 算力,也就是说需要用到 Nvidia 显卡(配置越高,绘图越快)

这里我们需要安装 CUDA 驱动,先确定一下电脑能安装的 CUDA 版本,桌面右下角->右键 NVIDIA 设置图标->NVIDIA 控制面板

在帮助栏选择系统信息查看软件。

1-3

注意:高版本显卡是可以安装低版本的 CUDA 驱动的,比如我也可以安装经典的 10.2 版本,但是安装 12.5 版本可以获得更高的 GPU 运行效率,所以一般来说推荐安装显卡支持的最高 CUDA 版本。

在下面的网址中找到对应的 CUDA 版本进行安装:

CUDA Toolkit Archive

直接选择 “精简” 安装就可以了,安装完成之后,可以使用如下命令查看 CUDA 版本,来验证 CUDA 是否安装成功:

nvcc --version

注:如果你没有 Nvidia 显卡,也可以通过给 stable-diffusion-webui 指定运行参数 --use-cpu sd,让其使用 CPU 算力运行,但是非常不建议你这么做,CPU 算力跟 GPU 算力相比简直天差地别,可能 GPU 只需要 10 秒就能绘制完成,而 CPU 却要 10 分钟,这不是开玩笑的。另外,如果你的显卡内存不多,建议 4G 的显卡加上 --medvram 启动参数,2G 的显卡加上 --lowvram 启动参数。

Windows用户编辑webui-user.bat文件,修改第六行:

set COMMANDLINE_ARGS=--lowvram --precision full --no-half --skip-torch-cuda-test

如果是16系列显卡,出的图是黑色的话,也是修改webui-user.bat文件的第六行:

set COMMANDLINE_ARGS=--lowvram --precision full --no-half
下载模型
C站

https://civitai.com/

比如:majicMIX realistic 麦橘写实

1-4

B站

https://www.liblib.art/

1-5

BeenYou R13

Hugging Face

https://huggingface.co/

因为C站国内无法访问,建议使用B站和Hugging Face。

将下载好的模型放入到stable-diffusion-webui\models\Stable-diffusion下面即可。

启动项目

在安装配置好运行环境之后,直接运行工程下的 webui-user.bat 文件即可(如果是类 Unix 系统,则运行 webui-user.sh)。

使用命令

.\webui-user.bat

当看到终端执行成功,然后打开浏览器输入如下地址即可。

http://127.0.0.1:7860/

主界面

stable-diffusion-webui 的功能很多,主界面如下:

1-6

【区域1】:模型选择区

SD生成的图片和模型的关系非常大,不同的模型对应不同的图片风格,比如常见的二次元风格,真人风格,国风风格等。
我们在前面下载的就是这里需要使用的模型文件(stable-diffusion-webui\models\Stable-diffusion目录下的文件),模型又分基础模型和其他微调模型比如lora等,涉及的内容很多,后面再详细介绍。

【区域2】:主要的功能区

文生图(txt2img):根据提示词(Prompt)的描述生成相应的图片。

图生图(img2img):将一张图片根据提示词(Prompt)描述的特点生成另一张新的图片。

附加功能(Extras):额外的功能,比如图片的等比缩放,改变采样。

图片信息(PNG Info):展示图片的信息。如果图片是由AI生成的,会展示提示词以及模型相关参数信息。

模型合并(Checkpoint Merger):合并多个模型,由多个模型的权重比例来决定最终生成图片。

训练(Train):模型训练。

C站插件(Civitai Helper):C站模型插件,可以下载模型信息和介绍。

自定义插件(Ebsynth Utility、EasyPhoto、Image Browser)都是自定以安装的插件,可以理解为扩展功能,后面文章我再详细讲解。

Tag反推(Tagger):使用图片反向生成关键词、反推词。

设置(Setting) : SD Web UI界面和参数设置。

扩展(Extensions):插件扩展,提供SD插件安装载入入口。

【区域3】:提示词区

SD Web UI提供了2个提示词输入框,一个是正向提示词,一个是反向提示词。

正向提示词:你希望生成的图片中包含的信息使用的关键词。

反向提示词:你希望生成的图片中不包含的信息使用的关键词。

【区域4】:参数设置区

采样方法(Sample method):提供了Euler a、DPM++2Sa Karras等采样方法。

调度类型 (Schedule type):提供了Automatic、uniform、karras等调度类型,一般选Automatic就好了。

采样迭代步数(Sampling steps):数值越大图像越精细,一般设置在20-40区间。

高清修复(Hires fix):可以将低分辨率的照片调整到高分辨率。

细化器(Refiner): 可以在生成图的不同点切换模型产生效果。

宽度(Width):图片的宽度。

高度(Height):图片的高度。

提示词相关性(CFG Scale):决定图片自由度,数值越大,生成的图像会更符合提示词的要求。一般设置在7-10之间。也不建议设置太大。

随机种子(Seed):相当于图片的DNA,决定了画面的内容,一般设置为-1,表示随机生成,seed一样的情况下,可以生成比较相似的图片。

生成批次(batch count):用于控制每次生成多少批次的图片。

每批数量(batch size):用于控制每批生成多少张的图片数量。

自定义插件(ADetailer、Tiled Diffusion、ControlNet等下面的配置)是需要按需安装插件,后面会有文章介绍。

【区域5】: 功能操作区

结合1、2、3、4区域的设置,点击【生成】按钮,生成的图片在区域6展示。

【区域6】:生成图片区

用于展示最终生成的图片。以及图片的下载,打包等功能。

生成图

油画风格:
1-7

1-8

中国风:
1-9


欢迎大家持续关注微信公众号"壁虎说技术",需要更多高清无水印图片的可以去微信公众号,回复【壁纸】获取。


壁虎说技术

参考

Stable Diffusion

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

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

相关文章

将github上的项目导入到vscode并创建虚拟环境

1、将github上的项目导入到vscode 直接从github上下载到本地&#xff0c;用vscode打开&#xff08;Open file&#xff09; 2、创建虚拟环境 python -m venv <name> <name>\Scripts\activate ps: 1、退出虚拟环境 deactivate 2、如果运行python -m venv <…

【数据结构】详解堆

一、堆的概念 堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵 完全二叉树的 数组对象。 堆是非线性数据结构&#xff0c;相当于一维数组&#xff0c;有两个直接后继。 如果有一个关键码的集合K { k₀&#xff0c;k₁&#xff0c;k₂ &#xff0…

统信UOS

统信UOS 如何检测是否为适配的cpu 打开国产系统或linux系统的终端&#xff0c; 输入&#xff1a; uname -m 如&#xff1a; 软件安装 把下载的压缩包解压到当前目录 如果您确认电脑cpu为ARM64架构CPU:【飞腾、鲲鹏、海思麒麟、瑞芯微】&#xff0c; 请双击com.agicall.ub-ph…

JVM--双亲委派模型

1.双亲委派模型 定义&#xff1a; 站在Java虚拟机的角度来看&#xff0c;只存在两种不同的类加载器&#xff1a;一种是启动类加载器&#xff08;Bootstrap ClassLoader&#xff09;&#xff0c;这个类加载器使用C语言实现&#xff0c;是虚拟机自身的一部分&#xff1b;另外一种…

【C++】一、Visual Studio 2017使用教程:内存窗口、预处理文件、obj文件,调试优化

文章目录 概述编译期&#xff08;Compile&#xff09;查看预处理后的文件查看obj文件开启编译器调试优化 链接期&#xff08;Linking&#xff09;报错信息概述自定义入口点 调试内存窗口值转16进制查看查看汇编代码 注意 概述 记录一下Cherno的vs配置下载地址 https://thecher…

Kubernetes集群安装步骤

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、安装要求 在开始之前&#xff0c;部署Kubernetes集群集群需要满足以下几个条件&#xff1a; 一台多多台机器&#xff0c;操作系统CentOS.x-86_x…

分布式锁、Lua脚本、redisson、运行lua脚本优化代码

20240721 一、分布式锁1. 什么是分布式锁2. 分布式锁的实现3. 基于redis的分布式锁4 总结 二、对于lua脚本可以保证事务&#xff0c;要么成功要么失败。1. 在redis中调用lua脚本 三、Redisson1 步骤2. Redisson的总结3. 几种分布式锁的区别 三、优化我们的秒杀1. 我们在创建优惠…

Mybatis-Plus代码生成器配置方法

Mybatis-Plus网址&#xff1a;https://baomidou.com/pages/779a6e/#%E4%BD%BF%E7%94%A8 第一步&#xff1a;引入依赖 <!-- 代码生成器 --> <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId>…

IFIX6.5变量创建进阶-标签组用法

IFIX6.5变量创建进阶-标签组用法 普通变量创建 https://blog.csdn.net/hmxm6/article/details/140507111 OPC数据连接 项目介绍和应用场景 在实际项目中可能有好几个相同标签变量属于一类的 比如现在有三台风机&#xff0c;都有启动停止风量的三个数据 数据库里面需要创…

EI成稿丨明年上检索

基于xxxx嵌入式系统的无线传感网络路由优化算法研究基于网络安全xxxx全球互联网经济发展趋势分析基于深度学习的大数据xxxxx基于全IP物联网网络xxxxx安全管理中的优化研究xxxxx农业可持续发展评价及升级路径研究xxxxx分层轮廓数字化转型风险评估与防范策略基于Kano模型与xxxxx公…

防火墙--内容安全

目录 概述 IAE引擎流程 DPI深度包检测 基于特征字的检测技术 基于应用网关的检测技术 基于行为模式的检测技术 DFI深度流检测 基于数据流进行识别检测的技术 DPI和DFI对比 IDS&#xff08;入侵检测&#xff09; IPS&#xff08;入侵防御&#xff09; 优势 入侵检测…

使用百度语音技术实现文字转语音

使用百度语音技术实现文字转语音 SpringBootVue前后端分离项目 调用api接口需要使用AK和SK生成AccessToken,生成getAccessToken的接口有跨域限制,所以统一的由后端处理了 部分参数在控制台->语音技术->在线调试里面能找到 Controller RestController RequestMapping(&q…

测试——Junit

内容大纲: 常用的五个注解 测试用例顺序指定 参数化 测试套件 断言 1. 常用的五个注解 1.1 Test 通常情况下,我们输入要写在main方法下,此时我想直接输出: Test void Test01(){System.out.println("第一个测试用例"); } 1.2 BeforeAll AfterAll BeforeALL在Tes…

Unity: TextMeshPro生成中文字体(附3.5k,7k,2w常用字集)

免费常用3千5&#xff0c;7千字&#xff0c;2万字中文字体包 1.选择Window/TextMeshPro/Font Asset Creator 注&#xff1a;准备字体&#xff1a;从字体库或其他来源获取中文字体文件&#xff0c;通常为.ttf、.otf或.ttc格式。最简单的方式是从Windows系统文件的Font文件夹里…

NV Switch 深度解析与性能剖析

NV Switch 深度解析与性能剖析 在当今高性能计算领域&#xff0c;英伟达&#xff08;NVIDIA&#xff09;的GPU技术犹如璀璨明星般闪耀。随着人工智能和机器学习技术的迅猛发展&#xff0c;对计算能力的需求不断攀升&#xff0c;实现GPU间的高效互联互通变得至关重要。正因如此&…

C# 实现跨进程条件变量

C# 进程通信系列 第一章 共享内存 第二章 条件变量&#xff08;本章&#xff09; 第三章 消息队列 文章目录 C# 进程通信系列前言一、关键实现1、用到的主要对象2、初始化区分创建和打开3、变量放到共享内存4、等待和释放逻辑 二、完整代码三、使用示例1、同步控制2、跨进程控…

通义千问大模型API调用示例

通义千问是由阿里云自主研发的大语言模型&#xff0c;用于理解和分析用户输入的自然语言。 模型概览 模型名称模型简介模型输入/输出限制qwen-turbo通义千问超大规模语言模型&#xff0c;支持中文、英文等不同语言输入模型支持8k tokens上下文&#xff0c;为了保证正常的使用…

Python数据可视化------动态柱状图

一、基础柱状图 # 基础柱状图 # 导包 from pyecharts.charts import Bar from pyecharts.options import *# 构建柱状图 bar Bar() # 添加数据&#xff08;列表&#xff09; x_list ["张三", "李四", "王五", "赵六"] y_list [50,…

vue引用js html页面 vue引用js动态效果

要引用的index.html页面&#xff1a;&#xff08;资源来自网络&#xff09;在pubilc下建一个static文件放入js文件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>数字翻转</title><meta con…

基于SpringBoot+Vue的校园志愿者管理系统(带1w+文档)

基于SpringBootVue的校园志愿者管理系统(带1w文档) 基于SpringBootVue的校园志愿者管理系统(带1w文档) 本次设计任务是要设计一个校园志愿者管理系统&#xff0c;通过这个系统能够满足管理员和志愿者的校园志愿者信息管理功能。系统的主要功能包括首页、个人中心、志愿者管理、…