【Stable Diffusion】在windows环境下部署并使用Stable Diffusion Web UI---通过 Conda

news2024/12/24 8:32:39

本专栏主要记录人工智能的应用方面的内容,包括chatGPT、AI绘图等等;

在当今AI的热潮下,不学习AI,就要被AI淘汰;所以欢迎小伙伴加入本专栏和我一起探索AI的应用,通过AI来帮助自己提升生产力;

订阅后可私聊我获取 《从零注册并登录使用ChatGPT》《从零开始使用chatGPT的API;通过chatgpt-next-web部署自己chatGPT web网页;无需翻墙,无需服务器,无需域名;》 两份文档;

采用Conda创建、隔离python虚拟环境,可以解决多应用部署下的环境管理难题;所以本文主要介绍通过Conda的方式在本地部署Stable Diffusion。

文章目录

  • 一、Stable Diffusion介绍
  • 二、通过Conda本地部署stable diffusion
    • 2.1 安装所需依赖环境
      • 2.1.1 安装CUDA
      • 2.1.2 安装显卡驱动
      • 2.1.3 安装Conda
      • 2.1.4 安装git工具--gitForWindows
      • 2.1.5 检查环境
    • 2.2 配置Transformer环境变量
    • 2.3 安装SD WebUI
    • 2.4 安装SD WebUI过程中遇到的问题
  • 三、 参考

一、Stable Diffusion介绍

Stable Diffusion是当下最强大的AI绘画工具;

可本地部署,可切换多种模型,且新的模型和开源库每天都在更新发布,最重要的是免费,没有绘图次数限制;

其是一种基于深度学习的文本到图像生成模型,于2022年发布。它能够根据文本描述生成详细的图像,同时也可以应用于其他任务,例如图生图,生成简短视频等。

Stable Diffusion Web UI是一个基于Web的用户界面,用于使用Stable Diffusion进行图像生成和其他任务。该Web UI由AUTOMATIC1111开发,并开源上传至Github,也是目前使用最多的WebUI版本。Stable Diffusion Web UI提供了易于使用的图形界面,可以帮助用户更直观地了解和使用Stable Diffusion的功能,并在基本不需要编写代码的情况下启动和监视训练过程。

Stable Diffusion 的主要优点:

(1) 免费开源与另外一个主流的AI绘画软件Midjourney相比,它是免费开源的。Midjourney需要登陆Discard上进行使用(国内无法直接链接注册),而且需要付费才能继续使用,最低价格为10美元/月,而SD在B站上有人整理好的免费安装包,无需付费即可下载一键安装。将SD安装到本地后,用户可以随时使用,生成的图片只有自己可以看到,保密性更高。

(2) SD拥有强大的开源模型和插件由于其开源属性,SD拥有许多免费的高质量外接预训练模型和插件。例如,可以提取物体轮廓、人体姿势骨架、图像深度信息的插件Controlnet可以让用户在绘画过程中精确控制人物的动作姿势、手势和画面构图等细节;插件Mov2Mov可以将真实视频进行风格化转换。此外,SD还具备Inpainting和Outpainting功能,可以智能地对图像进行局部修改和扩展,而这些功能目前Midjourney无法实现。

二、通过Conda本地部署stable diffusion

2.1 安装所需依赖环境

2.1.1 安装CUDA

首先去Pytorch官网,点击链接https://pytorch.org/即可跳转;

在这里插入图片描述

可以看到,它目前支持到CUDA的11.8版本,因此我们需要去下载CUDA 11.8;

【CUDA下载网址】https://developer.nvidia.com/cuda-downloads

在这里插入图片描述
打开后我们可以看到 ,目前已经升级到了12.3这个版本,但是我们需要的下载的是11.8版本,所以需要找到12.1进行下载,如下步骤进行:

在这里插入图片描述
点击上图红框中的按钮,获取以前发布的版本,

在这里插入图片描述

然后以下图片示例进行操作:

在这里插入图片描述
下载完成后,如下图所示,双击打开:
在这里插入图片描述

路径选择默认路径即可:
在这里插入图片描述

然后选择自定义安装:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后等待安装完成即可:

在这里插入图片描述

在这里插入图片描述

2.1.2 安装显卡驱动

然后我们需要去下载显卡的驱动,

【NVIDIA下载网址】https://www.nvidia.cn

首先看一下我们笔记本当前的驱动版本:

此电脑->右键->属性->设备管理器->显示适配器:

在这里插入图片描述
打开后,点击“驱动程序”
在这里插入图片描述
可以看到我的驱动程序是2018年3/16号的,非常古老了,所以我们去下载它的最新版;

【NVIDIA下载网址】https://www.nvidia.cn

在这里插入图片描述

按照你笔记本的实际显卡进行选择:

在这里插入图片描述

在这里插入图片描述
下载完成后如下所示:
在这里插入图片描述
双击打开,路径也不用修改:

在这里插入图片描述
然后选择NVIDIA显卡驱动和GeForce Experience
在这里插入图片描述

然后选择自定义安装:
在这里插入图片描述

PhysX系统软件可以选择不安装,如果有USBC Driver,也可以选择不安装;
在这里插入图片描述
然后勾选执行清洁安装,下一步;等待安装完成即可:
在这里插入图片描述

安装完成后关闭即可。

2.1.3 安装Conda

接下来我们安装Conda,Conda是一个Python的包管理工具,什么系统都支持,

【ANACONDA下载网址】https://anaconda.org

在这里插入图片描述
在这里插入图片描述

直接点击下载即可。下载完成后如下图所示:
在这里插入图片描述

双击打开,基本按照给出的默认选项配置,无脑下一步即可:
安装完成后如下图所示:

在这里插入图片描述

安装完成后,一般会自己启动一次,通常默认会建立一个叫做Base的环境,如下图:

在这里插入图片描述

未来我们的Sable Diffusion会用它自己的环境,所以这里的Base对我们来说暂时不用太关心,直接关掉即可。

2.1.4 安装git工具–gitForWindows

【git工具下载网址】http://gitforwindows.org
在这里插入图片描述
直接点击下载即可;下载完成后如下图所示:
在这里插入图片描述
双击打开,按照它推荐的功能,基本保持所有的选项都是默认选项,无脑下一步即可。
完成后如下所示:
在这里插入图片描述

2.1.5 检查环境

至此,CUDA、NVIDA、ANACONDA以及gitForWindows我们已经安装完成了;

下面检查一下Anaconda Prompt和Conda的安装;

打开开式菜单,在Anaconda3文件夹下,找到Anaconda Prompt,如下图所示:
在这里插入图片描述
双击打开:
在这里插入图片描述
可以看到前面默认有个(base),指的是现在窗口使用的是Base的环境;
在上面输入nvidia-smi指令,检查一下当前的显卡驱动:
在这里插入图片描述
然后输入git指令,会发现git也开始工作了,如下图:
在这里插入图片描述
没什么问题。

2.2 配置Transformer环境变量

transformer是一个机器学习的框架,Gradio是它的一个可视化的部署,未来AI工具也都会用到这个工具;

我们现在E盘建立一个空的目录,我起名为transformerCache,用来存放那些大模型的;
该目录的路径为E:\transformerCache
然后点击:
开始菜单->设置->系统->关于->高级系统设置->环境变量->系统变量->新建
在这里插入图片描述
依次添加六个环境变量,变量名分别是PYTORCH_PRETRAINED_BERT_CACHE、PYTORCH_TRANSFORMERS_CACHE、TRANSFORMES_CACHE、XDG_CACHE_HOME、HF_MODULES_CACHE、HUGGINGFACE_HUB_CACHE,变量值均为E:\transformerCache,如下图所示:
在这里插入图片描述
这个cache我们一般建议放在一个比较大一点的硬盘上,因为我们未来会有很多模型,从HavingFace这边去下载回来;会占用很大空间;所以这里我们把所有的环境变量都放在了E:\transformerCache里;

建好以后,点击确定即可:

在这里插入图片描述

在这里插入图片描述

2.3 安装SD WebUI

在Anaconda Prompt中,切换到E盘,并克隆Stable Diffusion代码到SDWebUI文件夹中,指令如下所示:

e:
dir
cd SDWebUI
dir
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

在这里插入图片描述
克隆完成后,我们打开stable-diffusion-webui,然后执行webui-user.bat:

cd stable-diffusion-webui
webui-user.bat

在这里插入图片描述
首次执行的时候,系统会检查当前的情况,如果没有自己的执行环境,系统会自动调用虚拟环境的命令,去创建一个适用于它自己的这么一个Python环境;所以这个脚本的过程基本是下载配置python环境、依赖包、更新python包管理器、下载所需模型(人脸恢复、嘴唇对齐、反推关键词、放大算法等模型)等等;

如果遇到报错,请去看2.4节;

下载模型中。。。。
在这里插入图片描述

执行过程中需要保持网络环境的稳定;整个过程我是挂着科学上网执行的。

完成后如下图所示:
在这里插入图片描述

此时我们可以打开127.0.0.1:7860,并随便输入一个参数,来查看一下效果了:
在这里插入图片描述
如果能生成图片,说明Web UI搭建成功了;

2.4 安装SD WebUI过程中遇到的问题

执行webui-user.bat的时候遇到报错:

1、fatal: unable to access ‘https://github.com/Stability-AI/stablediffusion.git/’:

fatal: unable to access 'https://github.com/Stability-AI/stablediffusion.git/': Failure when receiving data from the peer
Traceback (most recent call last):
  File "E:\SDWebUI\stable-diffusion-webui\launch.py", line 48, in <module>
    main()
  File "E:\SDWebUI\stable-diffusion-webui\launch.py", line 39, in main
    prepare_environment()
  File "E:\SDWebUI\stable-diffusion-webui\modules\launch_utils.py", line 380, in prepare_environment
    git_clone(stable_diffusion_repo, repo_dir('stable-diffusion-stability-ai'), "Stable Diffusion", stable_diffusion_commit_hash)
  File "E:\SDWebUI\stable-diffusion-webui\modules\launch_utils.py", line 186, in git_clone
    run(f'"{git}" clone "{url}" "{dir}"', f"Cloning {name} into {dir}...", f"Couldn't clone {name}", live=True)
  File "E:\SDWebUI\stable-diffusion-webui\modules\launch_utils.py", line 115, in run
    raise RuntimeError("\n".join(error_bits))
RuntimeError: Couldn't clone Stable Diffusion.
Command: "git" clone "https://github.com/Stability-AI/stablediffusion.git" "E:\SDWebUI\stable-diffusion-webui\repositories\stable-diffusion-stability-ai"
Error code: 128
请按任意键继续. . .

在这里插入图片描述

解决:
在终端执行:

git config --global --unset http.proxy 
git config --global --unset https.proxy

2、RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check

在这里插入图片描述
按照它给的提示,打开webui-user.bat脚本,在后面加上--skip-torch-cuda-test
在这里插入图片描述

三、 参考

Stable Diffusion是什么意思?https://www.zhihu.com/question/561527911/answer/3119390120

【Stable Diffusion教程】01如何快速本地部署SD教学方法一:SD-WEBUI(包教包会,小白速来)

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

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

相关文章

电子学会C/C++编程等级考试2021年03月(六级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:生日相同 2.0 在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。 时间限制:1000 内存限制:65536输入 第一行为整数n,表示有n个学生,n ≤ 180。此后每…

ChatGPT使用:一个发包机器人的提示词

发包机器人&#xff1a; 设想&#xff1a;目前项目组有n条打包线会输出多个包&#xff0c;用户想获取最新的包是比较困难的&#xff0c;难点在于 1. 分支多&#xff1a;trunk&#xff0c;release&#xff0c;outer等&#xff0c;至少有3个分支&#xff1b; 2. 多平台&#x…

Java小案例-RocketMQ的11种消息类型,你知道几种?(事务消息)

前言 上一节给大家讲了Rocket的延迟消息&#xff0c;这一节和大家聊一下事务消息&#xff0c;关于延迟消息大家可以点下面这个链接直接看。 事务消息 事务消息是RocketMQ提供的一种类似X/Open XA的分布式事务功能。通过RocketMQ的事务消息&#xff0c;可以达到分布式事务的最…

什么是数据可视化?数据可视化的优势、方法及示例

前言 在当今的数字时代&#xff0c;数据是企业和组织的命脉&#xff0c;生成的数据量呈指数级增长。这种被称为大数据的海量数据在洞察力和决策方面具有巨大的潜力。然而&#xff0c;如果没有一种有效的方法来分析和理解这些数据&#xff0c;它就会变得毫无意义和难以管理。这就…

SaaS 电商设计 (五) 私有化部署-实现 binlog 中间件适配

一、 背景 具体的中间件私有化背景在上文 SaaS 电商设计 (二) 私有化部署-缓存中间件适配 已有做相关介绍.这里具体讨论的场景是通过解析mysql binlog 来实现mysql到其他数据源的同步.具体比如:在电商的解决方案业务流中经常有 ES 的使用场景,用以解决一些复杂的查询和搜索商品…

GD32F4标准外设库

学习目标 了解标准库来源熟悉模板搭建流程掌握在已有模板基础下进行开发学习内容 标准外设库获取 标准固件库获取我们可以从官网进行下载。 下载链接:兆易创新GigaDevice-资料下载兆易创新GD32 MCU 找到 GD32F4xx Firmware Library 这个压缩包 下载完成后,进行解压,解压…

Java医院信息化建设云HIS系统源码

云HIS提供标准化、信息化、可共享的医疗信息管理系统&#xff0c;实现医患事务管理和临床诊疗管理等标准医疗管理信息系统的功能。优化就医、管理流程&#xff0c;提升患者满意度、基层首诊率&#xff0c;通过信息共享、辅助诊疗等手段&#xff0c;提高基层医生的服务能力构建和…

nginx 1.24.0 安装nginx最新稳定版

1.官网&#xff1a; nginx: download 2. 选择稳定版&#xff1a; 3. 可以下载&#xff0c;然后上传服务器&#xff0c;也可以wget获取&#xff1a; cd /home wget https://nginx.p2hp.com/download/nginx-1.24.0.tar.gz 4. 放入/home 下。并解压缩&#xff0c;重命名nginx;…

C之不小心就犯错误1

以为会打印&#xff1a; it is ok 然而并不是&#xff1a; 原因&#xff1a; 根据C语言隐式类型转换的原理&#xff0c;如果是int型与uint型进行比较&#xff08;其它类型同理&#xff09;&#xff0c;则会将int型数据转换为uint型&#xff0c;则-1变成了 2^32-1 429496729…

Window操作系统发展史

引言 当谈及计算机操作系统的丰富历史和多样性时&#xff0c;Windows操作系统无疑是其中的一颗璀璨明星。自1985年首次亮相以来&#xff0c;Windows经历了长足的发展&#xff0c;塑造了计算机使用体验的方方面面。从初始的简单图形用户界面到如今强大而多样的功能&…

服务器被攻击宕机的一些小建议

现在网络攻击屡有发生&#xff0c;任何网站服务器都面临这样的危险&#xff0c;服务器被攻击造成的崩溃宕机是损失是我们无法估量的。网络攻击我们无法预测&#xff0c;但做好防御措施是必须的&#xff0c;建议所有的网站都要做好防范措施&#xff0c;准备相应的防护预案&#…

“Java 已死、前端已凉”?技术变革与编程语言前景:Java和前端的探讨

前端已死话题概论 本文讨论了近期IT圈中流传的“Java 已死、前端已凉”言论。我们审视了这些言论的真实性&#xff0c;并深入探讨了技术行业的演变和新兴技术的出现对编程语言和前端开发的影响。通过分析历史发展、当前趋势和未来展望&#xff0c;我们提供了对这些话题更深层次…

改造哈希表,封装unordered_map和unordered_set

正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 unordered_map是存的是pair是K&#xff0c;V型的&#xff0c;而unordered_set是K型的&#xff…

恒创:更换服务器,网站备案会掉吗

随着互联网的普及&#xff0c;越来越多的企业和个人选择通过网站来展示自己的形象和业务。然而&#xff0c;在网站建设和运营过程中&#xff0c;更换服务器是一个常见的问题。那么&#xff0c;更换服务器后&#xff0c;网站备案是否会受到影响呢&#xff1f; 网站备案是为了保…

docker-compose 升级;yaml文件编写;gpu使用

1、docker-compose 升级&#xff08;现在已经2.*版本&#xff0c;升级使支持gpu&#xff09; 参考&#xff1a;https://blog.csdn.net/weixin_51311218/article/details/131376823 https://github.com/docker/compose/issues/8142 1&#xff09;下载&#xff1a;原来1.18&…

11、ble_mesh_provisioner 配网器

1、初始化流程&#xff0c;存储初始化&#xff0c;nvs擦除&#xff0c; 2、bluetooth_init();ble协议栈初始化 3、ble_mesh_get_dev_uuid(dev_uuid);//获取设备uuid加载到mac. 4、ble_mesh_init();//ble mesh协议栈初始化 4.1配置网络钥匙&#xff0c;索引&#xff0c;赋…

微信视频号视频加密逆向

tl;dr 拿WxIsaac64(Isaac64的变种?)生成2^17个字节。然后和视频的前2^17字节做异或。 前言 略去, 总之就是WeChatVideoDownloader不能用了。 原文链接: here 准备工作 在正式开始逆向之前&#xff0c;我们首先需要能够在微信视频号中打开开发者工具&#xff0c;由于微信…

vue3+echarts 立体柱状效果

vue3echarts 立体柱状效果 废话不多说&#xff0c;直接上代码 就两步&#xff0c;直接复制粘贴一手 <div id"main" class"chart" ref"chartDom"></div>import * as echarts from echarts; type EChartsOption echarts.EChartsOpti…

c YUV 转 JPEG(准备霍夫曼编码)

先取yuv 文件中一个168的块&#xff0c;跑通全流程 理解与思路&#xff1a; 1.块分割 YUV 文件分为&#xff1a;YUV444 YUV 422 YUV420。444:就是&#xff1a;12个char 有4个Y&#xff0c;4个U&#xff0c;4个 U&#xff0c;422&#xff1a;8个char 中有4个Y &#x…

网络渗透测试(1)

实验1&#xff1a;用搜索引擎Google或百度搜索麻省理工学院网站中文件名包含“network security”的pdf文档&#xff0c;截图搜索得到的页面。 实验2&#xff1a;brassserie&#xff08;题目中给到的餐厅名称&#xff09; 实验3 实验4&#xff1a;将Z29vZCBnb29kIHN0dWR5IQ解…