【计算机视觉】手把手教你配置stable-diffusion-webui进行AI绘图(保姆级教程)

news2024/11/24 15:26:44

文章目录

  • 一、前言
  • 二、本地化部署的要求
  • 三、使用的项目Stable diffusion WebUI项目
  • 四、电脑环境配置
    • 4.1 安装Anaconda
    • 4.2 看版本
    • 4.3 配置库包下载环境,加快网络速度
    • 4.4 创建环境
    • 4.5 激活环境
    • 4.6 安装git
    • 4.7 安装cuda
  • 五、Stable diffusion环境配置
    • 5.1 下载Stable diffusion源码
    • 5.2 下载Stable diffusion的训练模型
    • 5.3 安装GFPGAN
    • 5.4 准备开启运行AI绘图程序sd-webui
  • 六、测试

一、前言

本地部署指的是将软件应用程序或服务部署在本地计算机或本地服务器上,而不是使用云服务或远程服务器。以下是一些常见的原因,解释为什么选择本地部署:

  1. 数据隐私和安全性:对于某些敏感数据或关键业务功能,保持数据在本地环境中更有保障。本地部署可以提供更高的控制权和数据安全性,以满足合规性要求。
  2. 高速和低延迟:对于需要快速响应和低延迟的应用程序,本地部署通常可以提供更快的性能。由于数据和计算资源都位于本地,可以减少与远程服务器之间的网络延迟。
  3. 网络限制和可靠性:某些地区或组织可能面临网络限制或不稳定的互联网连接。在这种情况下,本地部署可以提供更可靠的解决方案,确保应用程序的可用性和连续性。
  4. 自定义需求:本地部署可以更容易地满足特定的定制需求。根据组织的具体要求,可以灵活地配置和定制本地部署的应用程序,以适应特定的业务流程和工作流程。
  5. 成本控制:虽然云服务提供了灵活的计算资源和付费模型,但对于长期运行的应用程序,本地部署可能具有更可控的成本。一次性购买和配置本地服务器可能更经济实惠,并且在长期使用中,可能比云服务更具成本效益。

因为没有生成数量的限制,不用花钱,不用被NSFW约束,生成时间快,不用排队,自由度高很多,可以调试和个性化的地方也更多。

NSFW是"Not Safe for Work"的缩写,意为“不适合工作环境”。它用于描述那些可能包含裸露、色情、暴力、血腥或其他令人不适的内容的图像、视频、文字或链接。NSFW约束通常用于在互联网上警告用户某个内容不适合在公共或工作场所打开,以避免触犯道德、引起不适或违反组织的政策。

NSFW约束的目的是提醒用户注意内容的性质,并使其可以自主选择是否查看或接触这些内容。这种约束常见于社交媒体、在线论坛、电子邮件或其他互联网平台上,以确保用户能够遵循适当的使用规范,并保持工作环境的适宜和友好。

需要注意的是,不同的组织或平台对于NSFW的定义和约束标准可能会有所不同。一些平台会使用过滤机制或标记机制来警示用户,而其他平台可能会完全禁止或限制NSFW内容的发布和传播。因此,在使用互联网时,用户应该遵守相应的使用规则和平台政策,并对自己的行为负责。

如果说,会用各大在线的AI绘图平台来生成图像的话,算是AI绘画的小学生级别。那么,如果会使用本地化部署来运行AI绘画的话,那就已经算得上是高中毕业,进入成年啦。等你能够使用AI绘图指哪打哪,想怎么画怎么画,那就已经是大学毕业,学成归来的牛逼人物啦。

二、本地化部署的要求

本地化部署运行虽然很好,但是也有一些基本要求:

  1. 需要拥有NVIDIA显卡,GT1060起,显存4G以上。(已经不需要3080起,亲民不少)
  2. 操作系统需要win10或者win11的系统。
  3. 电脑内存16G或者以上。
  4. 最好会魔法上网,否则网络波动,有些网页打不开,有时下载很慢。

我的电脑配置供大家参考,Win11,12代I7,NVIDIA RTX3060 6G,16G。生成一张20step的图大概10-20s(若使用更高性能的电脑,生成速度更快。)

三、使用的项目Stable diffusion WebUI项目

Stable diffusion大家都知道,是当前最多人使用且效果最好的开源AI绘图软件之一。

不过,Stable diffusion项目本地化的部署,是纯代码界面,使用起来对于非程序员没那么友好。

而Stable diffusion WebUI,是基于Stable diffusion 项目的可视化操作项目。

通过可视化的网页操作,更方便调试prompt,及各种参数。

同时也附加了很多功能,比如img2img功能,extra放大图片功能等等。

在这里插入图片描述

四、电脑环境配置

4.1 安装Anaconda

这个是用来管理Python版本的,他可以实现Python的多版本切换。安装时按默认的一路next就行。
这里就不再介绍了。

4.2 看版本

打开conda prompt,输入conda -V 弹出版本号即为正确安装:

在这里插入图片描述

显示conda版本,那就对了!

4.3 配置库包下载环境,加快网络速度

替换下载库包地址为国内的清华镜像站。

执行下面:

conda config --set show_channel_urls yes

生成.condarc 文件

在C:\Users\XiaoWang下用记事本打开并修改.condarc文件。

在这里插入图片描述
把下面的内容全部复制进去,全部覆盖原内容,ctrl+s保存,关闭文件:

channels:
 - defaults
show_channel_urls: true
default_channels:
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
 -
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
 -
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 msys2:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 bioconda:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 menpo:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 pytorch:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
 simpleitk:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

运行conda clean -i 清除索引缓存,以确保使用的是镜像站的地址。

在这里插入图片描述
切换成其他盘来创建Python环境:

如果继续操作,会把整个项目创建在C盘,而很多人C盘容量紧张,可以创建在其他盘,比如D盘。
输入D: 然后回车。

后来才发现这一步并不能把项目装在D盘,他仍然是在C盘,不过没关系,他很小,不会占用太多空间,那咱继续往下操作。

4.4 创建环境

创建Python 3.10.6版本的环境:

运行下面语句,创建环境。

conda create --name stable-diffusion-webui python=3.10.6

系统可能会提示y/n, 输入y,按回车即可。

在这里插入图片描述
显示done,那就完成了。已经创建了一个新的项目。

4.5 激活环境

输入conda activate stable-diffusion-webui 回车。

设置pip的默认库包下载地址为清华镜像。

每一行输入后回车,等执行完再输入下一行,再回车。

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

不报错就是完成了。

4.6 安装git

安装git,用来克隆下载github的项目,比如本作中的stable diffusion webui

前往git官网git-scm.com/download/win

下载好后,一路默认安装,next即可。开始菜单-输入“git”,找到git cmd。

打开并输入下面指令:

在这里插入图片描述

4.7 安装cuda

cuda是NVIDIA显卡用来跑算法的依赖程序,所以我们需要它。打开NVIDIA cuda官网,developer.nvidia.com/cuda-toolkit-archive

这里有人可能会打不开网页,如果打不开,请用魔法上网。

你会发现有很多版本,下载哪个版本呢?

回到一开始的conda的小窗,输入nvidia-smi,查看你的cuda版本

在这里插入图片描述

比如我的是11.7的版本,我就下载11.7.0的链接。

然后安装自己的系统选择win10或者11,exe local,download下载完后安装,这个软件2个G,可以安装在C盘以外的地方。比如D盘。好了,完成这步,电脑的基础环境设置终于完事了。

下面开始正式折腾Stable diffusion了。

五、Stable diffusion环境配置

5.1 下载Stable diffusion源码

确认你的conda黑色小窗显示的是:

(stable-diffusion-weibui)D:\>

如果不是,则输入D: 按回车。(当然你也可以放在其他你想放的盘的根目录里面。不建议放在C盘,因为这个项目里面有一些模型包,都是几个G几个G的,很容易你的C盘就满了,其他盘容量在10G以上的就都行。放其他盘,则输入比如E: F: G: 等,然后回车即可。)

再来克隆Stable diffusion webui项目(下面简称sd-webui)

接着执行:

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

直到显示done即可。

注意,现在克隆的本地地址,就是下面经常提到的“项目根目录”。比如,我的项目根目录是D:\CodeProject\stable-diffusion-weibui

5.2 下载Stable diffusion的训练模型

在huggingface.co/CompVis/stable-diffusion-v-1-4-original/tree/main

点击file and versions选项卡,下载sd-v1-4.ckpt训练模型。

在这里插入图片描述

(需要注册且同意协议,注册并同意协议之后即可下载)

注:这个模型是用于后续生成AI绘图的绘图元素基础模型库。

后面如果要用waifuai或者novelai,其实更换模型放进去sd-webui项目的模型文件夹即可。

我们现在先用stable diffusion 1.4的模型来继续往下走。

下载好之后,请把模型更名成model.ckpt,然后放置在sd-webui的models/stable-diffusion目录下。比如我的路径是D:\stable-diffusion-webui\models\Stable-diffusion

5.3 安装GFPGAN

这是腾讯旗下的一个开源项目,可以用于修复和绘制人脸,减少Stable diffusion人脸的绘制扭曲变形问题。

https://github.com/TencentARC/GFPGAN

在这里插入图片描述
把网页往下拉,拉到readme.md部分,找到V1.4 model,点击蓝色的1.4就可以下载。

在这里插入图片描述
下载好之后,放在sd-webui项目的根目录下面即可,比如我的根目录是D:\CodeProject\stable-diffusion-weibui

5.4 准备开启运行AI绘图程序sd-webui

输入:

cd stable-diffsion-webui

进入项目的根目录。如果你安装在其他地方,也是同理。

输入盘符名称加上冒号(如c: d: e:)即可进入磁盘根目录。

输入cd…即可退出至上一级目录,输入cd + abc即可进入abc文件夹。(如cd stable-diffusion-webui,前提是你有相应的文件夹,否则会报错)

总之,要进入sd-webui的项目根目录后,才能执行下面的指令,否则会报错。

webui-user.bat

然后回车,等待系统自动开始执行。

在这里插入图片描述
还是报错:

在这里插入图片描述
国内的镜像源还没有更新到 gradio==3.32,所以需要科学上网,手动去pypi官网下载whl,然后通过whl下载即可。

https://pypi.org/project/gradio/3.32.0/#files

在这里插入图片描述
将gradio-3.32.0-py3-none-any.whl复制到项目所在目录,输入如下安装指令:

pip --default-timeout=100 install gradio-3.32.0-py3-none-any.whl

在这里插入图片描述
安装成功!

但是我们运行的时候还是出错:

在这里插入图片描述
这个是镜像源的bug:是镜像源的bug,删除pip.ini 可以解决。

这个文件一般在C:\Users\xxx\AppData\Roaming\pip\pip.ini

再次运行:

在这里插入图片描述
开始顺利下载!

在这里插入图片描述
直到系统提示,running on local URL: http://127.0.0.1:7860

这就代表,你可以开始正式使用AI绘图了!

注意:

  1. 这一步可能经常各种报错,需要耐心和时间多次尝试。
  2. 不要关闭黑色小窗,哪怕它几分钟没有任何变化。
  3. 如果提示连接错误,可能需要开启或者关闭魔法上网,再重新执行webui-user.bat命令。

六、测试

在这里插入图片描述

我们简单demo一下:

在这里插入图片描述

我们换一下模型:

(8k, best quality, masterpiece:1.2), (realistic, photo-realistic:1.37), ultra-detailed, 1 girl,cute, solo,beautiful detailed sky,detailed cafe,night,sitting,dating,(nose blush), sitting before a table, table with afternoon tea, (smile:1.15),(closed mouth) medium breasts,beautiful detailed eyes,(collared shirt:1.1), daytime, sunshine,business attire, rain,white lace, (long hair:1.4),gold hair NovaFrogStyle, uniform, white skin,cinematic light,sunshine,street light, (av actress: 4), full body image,<lora:koreanDollLikeness_v15:0.33>, (tea table:1),(hand bag:1),<lora:japaneseDollLikeness_v10:0.33>
Negative prompt: paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, (outdoor:1.6), manboobs, backlight,(ugly:1.331), (duplicate:1.331), (morbid:1.21), (mutilated:1.21), (tranny:1.331), mutated hands, (poorly drawn hands:1.331), blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs, (disfigured:1.331), (more than 2 nipples:1.331), (missing arms:1.331), (extra legs:1.331), (fused fingers:1.61051), (too many fingers:1.61051), (unclear eyes:1.331), bad hands, missing fingers, extra digit, (futa:1.1), bad body, NG_DeepNegative_V1_75T,pubic hair, glans
ENSD: 31337, Size: 512x768, Seed: 328582505, Steps: 20, Sampler: DPM++ SDE Karras, CFG scale: 7, Clip skip: 2, Model hash: 3a17d0deff, AddNet Enabled: True, AddNet Model 1: nainai(3311b5bd9ff7), AddNet Module 1: LoRA, AddNet Weight A 1: 0.55, AddNet Weight B 1: 0.55

在这里插入图片描述

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

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

相关文章

【博学谷学习记录】超强总结,用心分享丨人工智能 LLM langchain初步了解简记

目录 LangChain及必知概念LoadersDocumentText Spltters 文本分割Vectorstores 向量数据库Chain 链Agent 代理Embedding LangChain及必知概念 LangChain 是一个用于开发由语言模型驱动的应用程序的框架。他主要拥有 2 个能力&#xff1a; 可以将 LLM 模型与外部数据源进行连接…

009-从零搭建微服务-系统服务(二)

写在最前 如果这个项目让你有所收获&#xff0c;记得 Star 关注哦&#xff0c;这对我是非常不错的鼓励与支持。 源码地址&#xff08;后端&#xff09;&#xff1a;https://gitee.com/csps/mingyue 源码地址&#xff08;前端&#xff09;&#xff1a;https://gitee.com/csps…

Flowable开始事件-定时开始事件

文章目录 定时开始事件一、定义1. 图形标记2. XML标记2.1、在指定时间点执行2.2、指定定时器之前要等待多长时间&#xff0c; timeDuration可以设置为timerEventDefinition的子元素。2.3、指定重复执行的间隔&#xff0c; 可以用来定期启动流程实例&#xff0c;或为超时时间发送…

NLP的idea,看了就能水一篇论文

1.问题 在中文情感分析任务中,已有方法仅从单极、单尺度来考虑情感特征&#xff0c;无法充分挖掘和利用情感特征信息&#xff0c;模型性能不理想。 单级单尺度&#xff1a;只从一个方面学习文本的特征 多级多尺度&#xff1a;应该是分别从不同方面学习文本的特征&#xff0c…

电脑vcomp140.dll丢失怎么修复

vcomp140.dll是Microsoft的Visual C Redistributable for Visual Studio 2015的一部分。它是一个动态链接库文件&#xff0c;主要用于在Windows操作系统上运行使用Visual Studio 2015编写和编译的软件。与其他许多Windows动态链接库文件类似&#xff0c;vcomp140.dll包含函数和…

(二)CSharp-索引器

1、索引器定义 什么是索引器 索引器&#xff08;indexer&#xff09;是这样一种成员&#xff1a;它使对象能够用与数组相同的方式&#xff08;即使用下标&#xff09;进行索引 索引器的声明参见 C# 语言定义文档注意&#xff1a;没有静态索引器 索引器是一组 get 和 set 访问…

案例32:基于Springboot在线远程考试系统开题报告设计

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

地震勘探基础(十一)之水平叠加处理

水平叠加处理 地震资料经过预处理&#xff0c;静校正&#xff0c;反褶积&#xff0c;速度分析和动校正处理后就要进行水平叠加处理。地震水平叠加处理是地震常规处理的重要环节。 假设一个共中心点道集有三个地震道&#xff0c;经过速度分析和动校正以后&#xff0c;水平叠加…

【PCIE】TLP 发送三阶段和Secondary Bus Reset

TLP传输三阶段 TLP 发送的三个阶段涉及到 PCIe 协议栈中的不同层次&#xff0c;具体如下&#xff1a; TLP 发送阶段 1&#xff08;TS1&#xff09;&#xff1a;这个阶段是在传输层&#xff08;Transaction Layer&#xff09;中进行的。在这个阶段&#xff0c;TLP 数据包会进…

轻松应对大数据挑战!利用ETLCloud实现TDengine数据库的高效查询与数据迁移

TDengine 是一款开源、云原生的时序数据库&#xff0c;专为物联网、工业互联网、金融、IT 运维监控等场景设计并优化。它能让大量设备、数据采集器每天产生的高达 TB 甚至 PB 级的数据得到高效实时的处理&#xff0c;对业务的运行状态进行实时的监测、预警。 根据TDengine文档…

算法--递归--基础

定义 计算机科学中&#xff0c;递归是一种解决计算问题的方法&#xff0c;其中解决方案取决于同一类问题的更小子集 递归是一种非常高效、简洁的编码技巧&#xff0c;一种应用非常广泛的算法。 如求100以内的和 那么就等同于求10099以内的和 99以内和等同于9998以内的和 … 依…

复杂SQL优化实例

SQL语句的执行顺序&#xff1a; 执行计划指标查看 优化实例一 LIMIT 语句 分页查询是最常用的场景之一&#xff0c;但也通常也是最容易出问题的地方。比如对于下面简单的语句&#xff0c;一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。这样条件排序都能…

面对市面上众多的商城系统,我们该如何选择?

数字化时代&#xff0c;传统的实体店铺发展进入瓶颈。越来越多的消费者选择在网上购物&#xff0c;这也催生了各种各样的电商平台和商城系统&#xff0c;如SHOP、Magento等。但是&#xff0c;对于那些想要进入电子商务领域的企业来说&#xff0c;如何选择适合自己的商城系统&am…

[BigGAN] Large Scale GAN Training for High Fidelity Natural Image Synthesis

1、目的 在大型数据集上训练class-conditional GAN&#xff0c;并探索相关的trick 2、贡献 1&#xff09;数据集的扩大使得GAN的表现也随之提升。文章的网络参数量是之前工作的2~4倍&#xff0c;batch size是之前的8倍。文章分别从两方面对performance进行提升&#xff1a;sca…

计算机视觉:语义分割理论及实战

语义分割 语义分割&#xff08;Semantic Segmentation&#xff09;是指将一张图像分割成若干个区域&#xff0c;并对每个区域赋予语义标签的任务。它是计算机视觉中的一种重要技术&#xff0c;被广泛应用于自动驾驶、医学图像分析、地理信息系统等领域。 与传统的图像分割任务…

奇安信应急响应-Linux

Linux需要经常关注的目录 /etc/passwd用户信息文件&#xff1a;我们需要看一下里面到底是什么&#xff0c;保存的用户信息 /etc/rc.d/rc.loacl&#xff1a;开机启动项&#xff1a;类似于Windows的开机启动项&#xff0c;有可能攻击者会在里面写一个后门文件&#xff0c;需要重…

EM算法实现对iris数据集和meat数据集的分类【MATLAB版本】

摘要&#xff1a;本章实验主要是对于学习 EM 算法的原理&#xff0c;掌握并实现混合高斯模型非监督学习 的 EM 算法&#xff0c;要求在两个数据集上面实现混合高斯模型的非监督学习的&#xff25;&#xff2d;算法。混合模型是相对于单高斯模型而言的&#xff0c;对于某个样本数…

【高级篇】分布式事务

分布式事务 1.分布式事务问题 1.1.本地事务 本地事务&#xff0c;也就是传统的单机事务。在传统数据库事务中&#xff0c;必须要满足四个原则&#xff1a; 1.2.分布式事务 分布式事务&#xff0c;就是指不是在单个服务或单个数据库架构下&#xff0c;产生的事务&#xff0c…

Nginx:Tomcat部署及优化(二)

Nginx&#xff1a;Tomcat部署及优化&#xff08;二&#xff09; 一、Tomcat 优化1.1 内核参数优化1.2 Tomcat 配置文件参数优化1.3 Java 虚拟机&#xff08;JVM&#xff09;调优 二、NginxTomcat 负载均衡、动静分离 一、Tomcat 优化 Tomcat 默认安装下的缺省配置并不适合生产…

9款超级实用的网页设计工具,快来看看有没有你用过的

随着网络时代的快速发展&#xff0c;游戏、购物、音乐、影视和社交网站的兴起都表明了网页设计的重要性&#xff01; 网页设计工具作为网页设计师的生产工具&#xff0c;自然要选择好的。 让我们分享9个高质量的网页设计工具&#xff0c;让您的设计效率悄然提高&#xff01; …