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

本专栏主要记录人工智能的应用方面的内容,包括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(包教包会,小白速来)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++执行系统命令的三种方式

C 执行系统命令可以使用以下几种方法&#xff1a; 1. 使用 system() 函数 system() 函数会调用操作系统的命令行处理器&#xff08;如 /bin/sh&#xff09;来执行命令。该函数的语法如下&#xff1a; int system(const char *command);其中&#xff0c;command 参数指定要执…

uniapp点击按钮,防止按钮多次点击多次触发事件【防抖操作】

图片、 一、在根目录下新建common文件并创建common.js文件&#xff0c;输入下面代码 // 防止处理多次点击function noMultipleClicks(methods, info) {// methods是需要点击后需要执行的函数&#xff0c; info是点击需要传的参数let that this;if (that.noClick) {// 第一次点…

外包干了2年,技术退步明显...

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

用EasyStreamingServer将MP4模拟成RTSP流无声音的问题,可以改用EasyDarwin做文件模拟RTSP实时流,有声音!

之前有一篇博客介绍用EasyStreamingServer将文件模拟成RTSP实时流&#xff0c;提供给类似于智能分析服务、NVR等做实时录像《用软件模拟IPC的RTSP流&#xff0c;对接烟火识别算法服务&#xff0c;做实时的烟火检测、人员入侵检测、抽烟检测等算法》 但最近有人反馈MP4有声音&a…

SpringMVC异常处理机制

2.1 异常描述 在J2EE项目的开发中&#xff0c;不管是对底层的数据库操作过程&#xff0c;还是业务层的处理过程&#xff0c;还是控制层的处理过程&#xff0c;都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常&#xff0c;系统的代码耦合度高&a…

批发订货程序推荐 订货系统哪个好

订货系统是一种企业管理软件&#xff0c;可以让批发商、门店实时掌握客户订单的进度和完成情况&#xff0c;提高企业与客户之间的沟通效率&#xff0c;减少错误&#xff0c;节省时间和成本。因此&#xff0c;目前很多企业会选择订货系统来帮助提高业务效率&#xff0c;但目前市…

Vue脚手架 Vue CLI安装

目录 0.为什么要安装Vue CLI脚手架 1.配置方法 1.全局安装 (一次) 2.查看Vue版本&#xff08;一次&#xff09; 报错&#xff1a;出现禁止运行脚本 3.创建项目架子&#xff08;可多次&#xff09; 报错npm err! 问题&#xff1a;已知npm换过国内源&#xff0c;且进度条…

数据结构 | DFSBFS,Prim代码

树的DFS&BFS prim算法 图的DFS和BFS DFS

josef约瑟 电压继电器 DY-23C/60C 柜内安装,带板前接线底座

DY-20C、20D系列电压继电器型号&#xff1a; DY-21C电压继电器; DY-26C电压继电器; DY-22C电压继电器; DY-23C电压继电器; DY-28C电压继电器; DY-24C电压继电器; DY-29C电压继电器; DY-25C电压继电器; DY-27C电压继电器; DY-21D电压继电器; DY-26D电压继电器; DY-23D电压继电…

AI日报:谷歌Gemini Pro即将面向企业和开发者

文章目录 总览Gemini介绍 模型能力产品API其他产品Imagen2和其他新闻Duet AI 总览 现在&#xff0c;您可以免费访问Gemini Pro的API&#xff0c;这是谷歌最新大型语言模型的第一个版本。 Gemini 介绍 谷歌通过其API让企业和开发者第一次看到了其最强大的大型语言模型Gemini。…

数据分析为何要学统计学(11)——如何进行时间序列分析

时间序列是由随时间变化的值构成&#xff0c;如产品销量、气温数据等等&#xff0c;该数据集合是个有序序列&#xff0c;除了数值&#xff0c;没有其他因素。通过对时间序列展开分析&#xff0c;能够回答如下问题&#xff1a; &#xff08;1&#xff09;被研究对象的活动特征是…

DataFunSummit:2023年数据科学在线峰会-核心PPT资料下载

一、峰会简介 数据会说谎&#xff1f;如何正确的挖掘并使用数据&#xff1f;前沿的科学实验如何做&#xff1f;实验又是如何欺骗你的&#xff1f;数据中台如何发挥功效&#xff1f;用户增长有捷径吗&#xff1f;数据科学的最佳实践有哪些&#xff1f; 本次峰会共包含了&#…

四十六、Redis哨兵

目录 一、哨兵的作用及原理 1、哨兵的结构和作用如下&#xff1a; 2、服务状态监控 3、选举新的master 4、小结 二、RedisTemplate的哨兵模式 一、哨兵的作用及原理 Redis提供了哨兵&#xff08;Sentinel&#xff09;机制来实现主从集群的自动故障恢复。 1、哨兵的结构和作…

实用干货:再见ElementPlus,我有更好的了

大家好&#xff0c;我是大澈&#xff01; 本文约1200字&#xff0c;整篇阅读大约需要3分钟。 感谢关注微信公众号&#xff1a;“程序员大澈”&#xff0c;免费领取"面试大礼包"一份&#xff0c;然后免费加入问答群&#xff0c;从此让解决问题的你不再孤单&#xff…

EasyExcel读取Excel数据(含多种方式)

目录 EasyExcel简介 使用EasyExcel进行读数据 引入依赖&#xff1a; EasyExcel提供了两种读取模式 使用 监听器 读取模式 1.创建一个实体类 2.创建监听器 代码 使用 同步读 读取模式 1.创建一个实体类 2.代码 添加导入数据库的逻辑 其实官方文档讲得很清楚&#xff…

基于YOLOv7算法的高精度实时水果目标检测识别系统(PyTorch+Pyside6+YOLOv7)

摘要&#xff1a;基于YOLOv7算法的高精度实时水果目标检测系统可用于日常生活中检测与定位苹果&#xff08;apple&#xff09;、香蕉&#xff08;banan&#xff09;、葡萄&#xff08;grape&#xff09;、橘子&#xff08;orange&#xff09;、菠萝&#xff08;pineapple&#…

【Linux进程控制(二)】进程程序替换(exec系列函数) and 自实现shell命令解释器

一、进程替换是什么&#xff1f; fork()之后&#xff0c;父子各自执行父进程代码 的一部分。如果子进程想执行全新程序 就会用到进程的程序替换来完成这个功能 程序替换&#xff1a;通过特定接口&#xff0c;加载磁盘 上的一个权限程序(代码和数据) 加载到调用进程的地址空间…

四六级高频词组12

目录 词组 其他链接 词组 501. &#xff08;a&#xff09; passion for 对…的热爱&#xff0c;热情 502. be patient with 对…耐心 503. pay for 赔偿&#xff0c; 付款&#xff0c; 报偿&#xff0c; 处罚 504. pay…for 付…的钱 505. &#xff08;be&#xff09; …

LabVIEW开发电能质量监测系统

LabVIEW开发电能质量监测系统 本研究基于LabVIEW开发了一个创新的电能质量监测系统&#xff0c;专注于暂态电能质量扰动信号的产生、分析与存储。该系统不仅模拟产生了电压骤降、电压波动、暂态振荡以及电压畸变等关键信号&#xff0c;还能够记录并存储这些扰动信号产生时的波…

数据库——审计及触发器

智能2112杨阳 一、目的与要求&#xff1a; 1.了解MySQL审计功能及实现方式 2.掌握触发器的工作原理、定义及操作方法 二、内容&#xff1a; 注&#xff1a; 在同一个触发器内编写多行代码&#xff0c;需要用结构begin ……end 函数current_user()获得当前登录用户名 1.…