Windows/Linux搭建Stable Diffusion WebUI

什么是Stable Diffusion WebUI?能用来干嘛?

Stable Diffusion WebUI(以下简称SD)是一个基于Gradio库的Stable Diffusion的浏览器界面,可以方便地配置和生成AI绘画作品,并且进行各种精细地配置。Stable Diffusion是2022年发布的深度学习文字到图像生成模型。是一款功能异常强大的AI图片生成器。它不仅支持生成图片,使用各种各样的模型来达到你想要的效果,还能训练你自己的专属模型。

SD的主要功能有两个:文生图(text2img)和图生图(img2img)。文生图是根据提示词(Prompt)的描述生成相应的图片,而图生图是将一张图片根据提示词(Prompt)描述的特点生成另一张新的图片。

如何搭建Stable Diffusion WebUI?

1. 安装Git + Python + Nvidia CUDA

(1)安装Git

首先,进入Git官网,根据自己电脑选择相应系统版本进行下载。Linux系统(以Ubuntu为例)可直接使用apt-get install git命令进行下载。

 根据自己系统下载对应版本。

下载完成后使用默认选项进行安装即可。

安装完成后可以打开终端,输入git --version查看是否安装完成。如何输出版本号说明git已经安装完成了。

 

(2)安装Python

首先进入Python官网,这里建议安装python3.10,SD官方文档使用的是3.10,低版本可能会有各种三方包不适配问题,由于Linux不同的发行版默认软件包版本不同,不保证一定是3.10,故需自行下载编译。

下载完成后,在命令行窗口输入python --version可以进行查看是否安装完成。

 

(3)安装Nvidia CUDA

首先命令输入nvidia-smi,看输出的右上角CUDA Version版本号,再输入nvcc --version命令查看是否已安装,如已安装且版本号对应则无需再装,如版本号不对应则需要进入NVIDIA官网重新下载对应版本进行安装。

CUDA需要搭配Nvidia显卡驱动进行安装和使用。如果你使用的是AMD显卡,则需要使用Ort。因为使用N卡的人比较多,所有这里只说N卡,不说A卡。

2. 下载Stable Diffusion WebUI项目

首先进入你想要安装的目录,命令行进入当前目录,输入以下命令下载SD项目:

关于如何使用git进行安装,可以关注公众号《乔说科技》添加作者,欢迎加入AI交流群

git clone https://ghproxy.com/github.com/AUTOMATIC1111/stable-diffusion-webui.git

下载好项目,可以看到上面就是完整的项目目录,接下来需要先进入项目目录,输入cd stable-diffusion-webui。

3. 安装虚拟运行环境

进入项目目录后,在命令行中输入以下命令,安装虚拟环境.

python -m venv venv

安装号虚拟环境,可以看到项目目录下多了一个venv目录。

进入venv目录,编辑pyvenv.cfg配置文件,将“include-system-site-packages = false”改为“include-system-site-packages = true”。这一步的作用是允许虚拟环境中的 Python 解释器访问系统全局的 site-packages 目录。

修改完之后,Windows用户进入venv\Script目录(Linux用户则进入venv\bin目录),运行activate文件激活虚拟运行环境。Windows用户需要在命令行输入activate(Linux用户需要执行source activate)。

 执行完上面操作就可以看见前面有venv虚拟环境出现。

 

接下来执行以下命令安装运行环境所需要的三方包,这可能需要很久。

pip install requirements_versions.txt

小技巧:像torch这种比较大的三方包,可以复制下载链接,然后到浏览器使用迅雷进行下载,这样下载会很快,下载下来的.whl文件放入项目下(任何位置都可以,只要记住路径),然后在当前虚拟环境下使用pip install + .whl文件根目录进行安装即可。

安装完成后基本工作已完成,接下来还需要进行模型的下载。

4.下载模型(必须)

所有环境下载好之后,我们必须要下载至少一个模型,否则无法运行项目,模型我们一般都是去Hugging Face、C站、炼丹阁、海艺、Hotiq这些网站进行下载。

下面是Huggin Face:

下面是Civitai(简称C站)

下面是Hotiq:

下面是炼丹阁:

下面是海艺:

选择上面的Models可以看见有很多模型供下载,根据自己的需要进行下载,模型文件直接放入项目目录的\models\Stable-diffusion文件夹中,接下来就可以运行项目了

5. 运行项目

Windows用户运行webui-user.bat(Linux用户运行bash webui.sh)。

运行之后,操作界面自动跳转到默认浏览器中,接下来就可以进行文生图和图生图的操作了。

 Linux用户如果想在后台运行,这样关掉终端也不影响界面运行,可以执行以下命令:

#bash webui.sh
nohup bash webui.sh > webui.log &

其中,

  • nohup:运行在后台模式下,即使在终端关闭时也可以继续运行。
  • bash webui.sh:运行名为webui.sh的Bash脚本,该脚本的作用可能是启动一个Web应用程序或服务。
  • > webui.log:将命令的输出重定向到名为webui.log的文件中,这意味着脚本输出的所有内容将写入该文件,而不是在终端上显示。

  • &:在后台运行命令,这意味着命令将在后台运行,而不会占用当前终端的控制权。

关于如何自动关闭以及如何清理缓存等问题,可以关注公众号《乔说科技》添加作者,也欢迎加入AI交流群)

6. 问题汇总

(1)运行SD极为耗费显卡,至少需要4GB以上的虚拟内存,如果没有最低配置硬件要求,不建议在本地搭建。

(2)一般torch比较大,需要手动下载好,再进行手动安装比较好。

(3)Windows用户可以在webui-user.bat文件中修改参数进行相应配置:

set COMMANDLINE_ARGS=--lowvram --no-half-vae --deepdanbooru --xformers

Linux用户则是在webui-user.sh中修改:

export COMMANDLINE_ARGS="--lowvram --no-half-vae --deepdanbooru --xformers"

其中,--lowvram是表示适合4GB以上机型,还有medvarm(>6GB)、lowram(>16GB),如果添加该项,则表示无优化。--xformers表示显卡的VARAM占用率就会减少为原来的一般,能较大提升图片的生成效率,但是图片生成的质量相对也会变差。--deepdanbooru是训练tag的时候可以在图片分割预处理的时候自动推断包含的tag。--no-half-vae主要用于解决生成图片时控制台报modules.devices.NansException的问题。

更多参数配置,可以查看github源码或官方WiKi上面说明文档。

(4)windows如果上网了,则需要在配置中加入--no-gradio-queue才可以正常使用。

(5)插件安装问题

SD是可以安装插件的,而安装插件的方式很简单,一般有两种方法,第一种就是直接将需要的插件放入SD项目目录下的extensions目录下。

 关于如何安装这些插件,一个是启动时自动安装,另一个是进入到这些插件目录,在当前虚拟环境下使用pip install .(这里有一个点,注意!)命令安装。

第二种在运行页面上方找到Extensions(扩展)选项卡,然后再选择Avaliable(可用),点击Load from:(加载自)按钮,加载完后下面会出来个列表,在里面选择自己想要的就可以了。

(6)脚本文件放到项目目录下的scripts目录下。

暂时只想到这些问题,有其他问题后面会及时补充。


大家有任何问题,可以扫描下方公众号,关注公众号《乔说科技》添加作者,邀请你加入AI交流群,欢迎大家加入。

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

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

相关文章

今天面试招了个23K的人,从腾讯出来的果然都有两把刷子···

公司前段时间缺人,也面了不少测试,前面一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在15-25k,面试的人很多,但平均水平很让人失望。看简历很多都是4年工作经验,但面试中,不…

微信小程序实现一个文字展开收起功能

1.0 需求背景 需求很常见,就是当一行文字过多时,显示省略号,然后显示展开两个字,点击,文字完全展示开,点击收起,回到省略形式,如下图 2.0 需求分析 有了上图,应该能更好…

总结排查服务器上传下载慢的几种手段与查看服务器带宽的具体方法

一、排查服务器上传下载 最近出现的一个情况,服务器上传和下载比较慢,因此我排查了种种手段,特此记录下几种常见的手段。 1、使用speedtest-cli 测试网速: 该方法是测试网速的速度怎么样,看看是否真的慢? …

软考A计划-2023系统架构师-知识点集锦(4/4)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

Spring Security--自动登录

也就是remember me 在配置链上加一个 然后发送请求时加上:remember-me字段 value值可以为,ture,1,on 我们记住登录后,关掉浏览器再打开,访问一下接口,可以访问,说明记住登录成功了。 因为有的…

JavaScript:从入门到精通:初始JS

JS基本思想 1. 浏览器对 JS 支持2. JS程序的组成3. JS 开发工具 1. 浏览器对 JS 支持 🧡背景 1997年 微软和网景公司合作发布了 ECMAScript 的语言规范 从那时起,微软所有浏览器都支持ECMAScript 标准 1999年,ECMAScript 第三版,…

mybatis-plus用法(二)

(5条消息) mybatis-plus用法(一)_渣娃工程师的博客-CSDN博客 AR模式 ActiveRecord模式,通过操作实体对象,直接操作数据库表。与ORM有点类似。 示例如下 让实体类User继承自Model package com.example.mp.po; import com.bao…

【026】C++的内联函数、函数重载、函数的默认参数与占位参数

C的内联函数、函数重载、函数的默认参数与占位参数 引言一、内联函数1.1、声明内联函数1.2、宏函数和内联函数的区别1.3、内联函数的注意事项 二、函数重载2.1、函数重载的概述2.2、函数重载的条件2.3、函数重载的底层实现原理 三、函数的默认参数四、占位参数五、extern "…

量化投资 现代投资组合理论(MPT)

量化投资 现代投资组合理论(MPT) 问题:构建投资组合,达到目标收益率的同时拥有最小的 risk exposure. 有 J J J 个可交易证券,期望收益率为 R [ R 1 , ⋯ , R j ] T R[R_1,\,\cdots,\,R_j]^T R[R1​,⋯,Rj​]T&…

监控、审计和运行时安全

监控、审计和运行时安全 目录 文章目录 监控、审计和运行时安全目录1、分析容器系统调用:SysdigSysdig介绍安装sysdigsysdig常用参数sysdig常用命令Chisels(实用的工具箱)其它命令 2、监控容器运行时:FalcoFalco介绍Falco架构安装falco自定义扩展规则文件…

千万级入口服务[Gateway]框架设计(一)

本文将以技术调研模式编写,非技术同学可跳过。 文章目录 背景问题[不涉及具体业务]目标技术选型语言框架模式实现一:go 原生组件Demo 实现Benchwork 基准性能小结实现二:开源 go-plugin 附录入口服务演变 背景 在历史架构的迭代中&#xff…

Apache Kafka学习

目录 一、简介 1.概念: 2.kafka四大API: 3.Kafka消费模式 4.Kafka的基础架构 5.kafka文件存储方式 二、特性 三、优点 1.解耦 2.异步处理 3.流量削峰 4.数据持久化 5.顺序保证 6.可恢复性 四、名词解释 五、QA Q:如何保证数据高可靠、不…

从美颜算法到AI美颜SDK:美丽的背后隐藏着什么?

在年轻人的生活中,通过美颜SDK类型的美颜工具进行拍摄已经成为了一种全新的文化现象。时下,AI美颜、美颜SDK讨论热点极高,那么大家知道美颜算法和AI美颜到底有什么不同吗?它们背后隐藏着什么样的技术和思想? 一、美颜算…

在Windows11平台安装JDK11(双11)

目录 引言一、安装前说明1.系统要求2.多版本安装 二、JDK11安装三、安装成功验证1.验证2.Path环境变量 总结 引言 本文主要是详细讲解在 Windows 11 系统上安装 JDK 11,安装时有一些注意事项需要说明。与 JDK 8 的安装过程有少许不一样。 一、安装前说明 1.系统要…

Atair 柱状比例图

如何熟练掌握可视化库和应对使用过程的疑难问题? 基本用法不妨访问 GeeksforGeeks 疑难问题优先搜索 https://stackoverflow.com 尽量使用官方文档: numpy的学习访问 https://numpy.org/doc/stable/user/index.html 例如: 一则 altair 使用过…

小程序中半屏打开其他小程序,开发者工具调试半屏

前言: 有需要是在当前小程序中,点击操作时,如果他没有注册会员,则强制去另一个小程序去注册会员,注册成功在返回,在这期间,打开另一个小程序是半屏来展示的。 实现效果: 在a小程序中…

阿里4年测试经验分享 —— 测试外包干了3年后,我废了...

去年国庆,我分享了一次一位阿里朋友的技术生涯,大家反响爆蓬,感觉十分有意思,今天我来分享一下我另一位朋友的真实经历,是不是很想听? 没错,我这位朋友是曾经外包公司的测试开发,而…

React新版扩展特性

目录 Hooks 三个常用的Hook State Hook Effect Hook Ref Hook Context Router 6 声明式路由 编程式路由导航 Hooks (1) Hook是react 18.8.0版本新增的特性/语法 (2) 可以让我们在函数式组件中使用state以及其他的react特性 三个常用的Hook (1) State Hook: React.useSt…

使用javacv中的ffmpeg实现录屏

今天突发奇想,想自己写一个录屏的软件,上次写了一个专门录音的Demo,但是要把声音和视频放到一起合成一个mp4文件,着实有一点艰难,所以就打算使用ffmpeg来写一个,而这篇博客中会顺便谈一谈我碰到的各种坑。 …

HarmonyOS学习路之开发篇—Java UI框架(StackLayout)

StackLayout StackLayout直接在屏幕上开辟出一块空白的区域,添加到这个布局中的视图都是以层叠的方式显示,而它会把这些视图默认放到这块区域的左上角,第一个添加到布局中的视图显示在最底层,最后一个被放在最顶层。上一层的视图…