AI绘画本地部署Stable Diffusion web UI

news2024/11/25 13:52:58

AI绘画本地部署Stable Diffusion web UI

一 、项目介绍

A browser interface based on Gradio library for Stable Diffusion.

项目地址:GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI

在这里插入图片描述

这是一个可以通过直接输入描述性文字文本来生成图画的GitHub项目。通过在本地电脑上部署该项目,你可以在交互页面,也即是浏览器上,输入你想描述的文字,进而生成对应的一些图片。

这个项目的有趣之处在于,你可以不懂绘画,但是你可以通过文本描述来让模型生成你想要生成的图画。至于成品图画有多接近于你想要的样子,是会受你所输入的描述词汇的影响。

二、基本的硬件和软件环境

首先部署这个项目需要一定的运行环境,这跟装一个游戏是一样的,也不复杂:

1.4GB以上显存。一台最好是有英伟达显卡的Windows系统的电脑,一般来说是4GB以上的显卡内存。显存大小跟部署完毕之后出图速度和出图质量有一定关系。

2.git客户端。用来克隆和更新GitHub上的项目。

3.python客户端。用来构建项目运行的基本系统环境。目前项目推荐使用版本3.10.6的python。

需要的python和git都可以在项目地址页面点击跳转下载安装。
在这里插入图片描述

Dependencies · AUTOMATIC1111/stable-diffusion-webui Wiki · GitHub

图片又或者

三、克隆项目

先确定一个项目的存放位置,哪个磁盘都可以。定好一个磁盘,比如F盘之后,在空白位置单击右键选择Git Bash here,就会看到跳出git客户端页面,复制粘贴:

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

回车。100%完成之后,就会在所选择的磁盘上发现一个文件夹名为stable-diffusion-webui,这就是项目的基本开源源代码了。

四、构建特定的python环境

这一步的目的是,安装一些该项目的、特定需要的一些第三方库。就像做一道菜,以上锅(python)和铲(git),还有食材(clone的项目)都准备好了,但还需要一些调味品。这调味品就是一些第三方的支持库。装好这些库就行了。

这个项目其实在网络顺畅的情况下是可以直接点击一下就可以自动安装所需要的环境了,打开stable-diffusion-webui文件夹,找到webui-user.bat这个文件,直接双击,会跳出一个命令行页面CMD,等待自动安装,经过一段时间之后,命令行页面出现:

“Running on local URL: http://127.0.0.1:7860”

就大功告成了,复制地址到随便一个浏览器打开就可以看到项目页面了。但实际上,因为网络环境问题,基本难以直接这么顺畅的就安装完成。

今天的主要目的是先大概了解有这么的一个项目以及你可以用这个项目来做什么,你可以用来画画,让项目给你画画,通过文字描述就可以画画。明天继续介绍,如何通过手动安装,一步步完成项目环境配置。

《如何手动安装Stable Diffusion web UI 的python环境》

一、确认python安装成功

首先确认下python是否安装成功了。

打开Windows自带的CMD命令提示符应用,键入python,如果显示

Python 3.10.6

那就是安装成功了。

二、建立虚拟环境文件夹

这一步,目的是在个人电脑本地磁盘建立一个项目运行的系统环境,用来存放一些第三方支持库。

1.打开CMD,进入此前clone好的stable-diffusion-webui文件夹,比如之前文章说是在F盘的,那就在CMD命令行键入F:

命令行会变成F:>
就代表进入了F盘,紧接着键入 cd stable-diffusion-webui

命令行就变成F:\stable-diffusion-webui>

2.紧接着键入python -m venv venv

此时打开F盘的stable-diffusion-webui文件夹就会看到,该文件夹里面多了一个名字为venv的新文件夹。继续打开进入到venv\Lib\site-packages。这个文件夹就是等下项目软件存放第三方库的地方了。

3.继续在F:\stable-diffusion-webui>后面键入Scripts,命令行变为

F:\stable-diffusion-webui>Scripts>的时候键入activate,此时命令行会变为

(venv)F:\stable-diffusion-webui>Scripts>

这时候就可以开始安装了。

三、安装第三方库

stable-diffusion-webui文件夹里面有一个requirements.txt记事本文件。这个记事本里面就是写明了项目运行所需要的一些东西。

继续键入

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

这时候命令行会不断下载安装一些文件,等待就得,这时候可以看到venv\Lib\site-packages文件夹里面的文件不断增多。

等待安装完成之后。就继续安装一些别的文件。

四、在项目根目录安装文件

关掉cmd,重新打开再次进入stable-diffusion-webui文件夹,在F:\stable-diffusion-webui>后面键入mkdir repositories

可以看到在根目录多了一个名为repositories的新文件夹。

继续分别键入

git clone https://github.com/CompVis/stable-diffusion.git repositories/stable-diffusion
git clone https://github.com/CompVis/taming-transformers.git repositories/taming-transformers
git clone https://github.com/sczhou/CodeFormer.git repositories/CodeFormer
git clone https://github.com/salesforce/BLIP.git repositories/BLIP
pip install git+https://github.com/crowsonkb/k-diffusion.git
等待安装完成。这个过程,可能会因为网络环境,要多试几次才能完成。

五、下载模型

在huggingface上下载模型,比如v1-5-pruned.ckpt放入根目录\models\Stable-diffusion文件夹里面。

在这里插入图片描述

六、启动项目

以上都顺利完成的情况下,打开stable-diffusion-webui文件夹,找到webui-user.bat这个文件,直接双击,会跳出一个命令行页面CMD,等待自动安装,经过一段时间之后,命令行页面出现:
“Running on local URL: http://127.0.0.1:7860”
就大功告成了。

七、题外话

这里仅仅提供一种手动安装的个人思路,供参考,希望能有点用处。
如有指正,请留言。

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

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

相关文章

keil调试的时候没问题,下载时候没反应

今天遇到这样一个问题。我下载商家的代码例程后单片机没反应,进入调试的时候一切正常。很奇怪,在网上找了教程问题解决,总结一下。 原因在于程序下载进去后没有按下复位键,导致还是之前的程序。我之前设置的是下载后自动复位运行…

滴答定时器

1.定时与计数的本质 2.滴答定时器的原理 1.向下计数,24位的计数器。滴答定时器属于内核。 每来一个脉冲计数值减一。当为零时。继续把重载寄存器给计数值。然后每来一个脉冲减一。 可以不停重复次操作。 控制寄存器:时钟的选择(bit2)&…

【C语言】通讯录系统实现 (保姆级教程,附源码)

目录 1、通讯录系统介绍 2、代码分装 3、代码实现步骤 3.1、制作菜单menu函数以及游戏运行逻辑流程 3.2、封装人的信息PeoInfo以及通讯录Contact结构体类型 3.3、初始化通讯录InitContact函数 3.4、增加联系人AddContact函数 3.5、显示所有联系人ShowContact函数 3.6、…

对比两个数组中 每个对应位置的元素大小 返回每个对比结果组成的列表 numpy.fmin()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 对比两个数组中 每个对应位置的元素大小 返回每个对比结果组成的列表 numpy.fmin() [太阳]选择题 请问代码中最后输出正确的是? import numpy as np a np.array([1, 3, 6, 8]) …

面试必考精华版Leetcode1372. 二叉树中的最长交错路径

题目: 代码(首刷看解析): class Solution { public:int maxAns;//dir 0 left,1 rightvoid dfs(TreeNode* root,bool dir,int len){maxAnsmax(maxAns,len);if(!dir){if(root->left) dfs(root->left,1,len1);if(root->right) dfs(roo…

给奶牛做直播之四

一、前言 给奶牛做直播之三 我们讲了怎么搭建RTMP直播服务器,前几天在折腾Android直播推拉流一直没个结果,顺手整理了一下Android如何加载SO动态库,本想顺着这条路把JNI、NDK、JSBridge、Python调用SO这些一起整理出来 ,这样搞就…

叶工好容6-自定义与扩展

本篇主要介绍扩展的本质以及CRD与Operator之间的区别,帮助大家理解相关的概念以及知道要进行扩展需要做哪些工作。 CRD(CustomerResourceDefinition) 自定义资源定义,代表某种自定义的配置或者独立运行的服务。 用户只定义了CRD没有任何意…

28296-2012 含镍生铁 思维导图

声明 本文是学习GB-T 28296-2012 含镍生铁. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了含镍生铁的技术要求、试验方法、检验规则以及包装、储运、标志和质量证明书。 本标准适用于炼钢、铸造或合金材料中作为镍元素添加剂的…

C++实现集群聊天服务器

C实现集群聊天服务器 JSON Json是一种轻量级的数据交换模式(也叫做数据序列化方式)。Json采用完全独立于编程语言的文本格式来存储和表示数据。见解和清晰的层次结构使得Json称为理想的数据交换语言。易于阅读和编写。同时也易于支持机器解析和生成&am…

28384-2012 平台式平型网版印刷机 阅读笔记

声明 本文是学习GB-T 28384-2012 平台式平型网版印刷机. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了平台式平型网版印刷机的术语和定义、型式与基本参数、要求、试验方法、检验规则、 标志、包装、运输与贮存。 本标准适用…

babel.config.js配置文件详解

文章目录 一、前言三、babel 详解四、拓展阅读 一、前言 项目开发阶段,使用可选链操作符 ?. 出现以下编译报错问题: 分析:由于可选链操作符 ?. 是ES2020(即ES11)中推出的新语法,允许我们不需要校验当前属…

【软考】系统集成项目管理工程师(五)项目立项管理【5分】

一、 项目建议书 1、定义 项目建议书又称为立项申请;建设单位向上级主管部门提交项目申请时所必须的文件,是对拟建项目提出的框架性的总体设想;是项目发展周期的初始阶段,是国家或上级主管部门选择项目的依据,也是可行…

取消excel表格中的隐藏行

Excel工作表中的行列隐藏了数据,如何取消隐藏行列呢?今天分享几个方法给大家 方法一: 选中隐藏的区域,点击右键,选择【取消隐藏】就可以了 方法二: 如果工作表中有多个地方有隐藏的话,还是建…

【python基础】复杂数据类型-列表类型(元组)

1.初识元组 列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的。 然而,有时候需要创建一系列不可修改的元素,元组可以满足这种需求 python将不能修改的值称为不可变的,而不可变的列表被称为元组。 元组看起来犹如列表,但使用圆括号而不是方括号来标识…

苹果文件传到mac电脑用什么软件?

在数字化时代,文件传输已经成为我们日常生活中不可或缺的一部分。然而,苹果用户在将手机文件传输到电脑时,往往会面临一些困扰。曾经的“文件传输助手”并不能完全满足用户的需求。于是,很多人开始寻找更便捷的解决方案。在本文中…

Nginx 代理WebSocket

## √ map $http_upgrade $connection_upgrade {default upgrade; close; }## √ upstream websocket {server 127.0.0.1:9999 weight10 max_fails2 fail_timeout30s; }server {listen 8020;gzip on;gzip_min_length 1k;gzip_comp_level 9;gzip_types text/plain application/…

集合-set系列集合

系列文章目录 1.集合-Collection-CSDN博客​​​​​​ 2.集合-List集合-CSDN博客 3.集合-ArrayList源码分析(面试)_喜欢吃animal milk的博客-CSDN博客 4.数据结构-哈希表_喜欢吃animal milk的博客-CSDN博客 5.集合-set系列集合-CSDN博客 文章目录 目录 系列文章目录 文章目录…

JS defineProperty详解

defineProperty Object.defineProperty():方法会在对象上直接定义个新的属性,或者修改现有的属性,并返回此对象 let obj {} //与我们使用 obj.name zhangsna 效果一样 但是用defineProperty定义的属性无法改变 或者删除 Object.defineProperty(obj,n…

【面试经典150 | 数组】加油站

文章目录 写在前面Tag题目来源题目解读解题方法方法一:暴力枚举方法二:一次遍历 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些…

单元测试框架-Pytest(简单学习)

单元测试框架-Pytest Pytest是基于Python语言的单元测试框架,也是一个命令行的工具,比 unittest 测试框架更灵活。具有以下特点: 入门简单,易上手,官方文档丰富而且使用广泛,有大量的参数例子。 unittest…