当前位置: 首页 > news >正文

本地部署 Stable Diffusion(Windows 系统)

相对于使用整合包,手动在 Windows 系统下本地部署 Stable Diffusion Web UI(简称 SD-WebUI),更能让人了解一些事情的来龙去脉。

一、安装前置软件:Python 和 Git

1、安装 Python for windows。

下载地址

https://www.python.org/downloads/

f138fc0d83066f065d1cef5d679f25c9.png

建议下载 3.10.6 Windows 64 位版。

c9b50e6b6d5656b311c9ef0c4a516954.png

安装时,请勾选“Add Python 3.10 to Path”,然后点击“Install Now”按钮,等待安装完毕。

1df9bf4c9bb9e33751f0bb6d3398682b.png

安装完成后,在 Windows 的命令行窗口进行确认。

在任一文件夹窗口空白处右击,选择“在终端中打开”。或者,使用快捷键 Win + R 打开“运行”,并输入“CMD”,然后在命令行输入“python”。

43e19ee0c01a79eb156f8adca5ca30a2.png

2、安装 Git for windows。

下载并安装 Windows 版本的 Git。

下载地址

https://git-scm.com/download

6f21eaeeaaa19d1f4a3ff28689ed7344.png

安装时使用默认选项,持续点击“Next”按钮直至完成安装。

3、(英伟达显卡)安装 CUDA。

在命令行窗口中输入:nvidia-smi,确定自己的电脑所支持的 CUDA 版本。

c562e1c1deb8c1834bf797c4676392cb.png

下载地址

https://developer.nvidia.com/cuda-toolkit

下载对应系统的 CUDA,安装完成后,一般需要重启电脑。

说明:

英伟达显卡俗称 N 卡,AMD 显卡俗称 A 卡。

有关 A 卡运行 SD-WebUI 的设置请自行网上搜索。

二、拉取 SD-WebUI 主项目

SD-WebUI 主项目文件夹一定要放在有足够大空间的磁盘上,可以是移动硬盘,最好是 SSD 硬盘,不要放在 C 盘上。

方法一:直接从 GitHub 拉取 SD-WebUI 主项目文件夹。

在某个文件夹窗口(要存放 SD-WebUI 主项目文件夹的文件夹,比如 F 盘的根目录)的空白处,右键选择“Open Git Bash Here”(有时需要点击“查看更多选项”才会显示),然后输入或拷贝粘贴下列命令行。

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

43f9fb2c24a5f66a676645d190fc1b39.png

本方法更便于后续的更新(见后)。

方法二:

若上述方法连接速度慢或超时,可直接下载 ZIP 文件并解压到磁盘上。

下载地址

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

8ec879a98faf0b225bbf8b15dc06ba19.png

三、下载并置放好模型文件

从网络下载官方基础模型(比如 Stable Diffusion 1.4.ckpt,约 4 G),并放置在对应的文件夹。

下载地址

https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

也可从 MediaTea 共享的百度网盘里下载(在文末随意“赞赏”即可获得分享链接)。

dbb4c0f4c51c304b5e5d7331633527ca.png

下载好的文件,请放置在本地对应的文件夹中。

模型文件夹:

SD-WebUI 主文件夹\models\Stable-diffusion

80cf372779195dca0e7157b68eebb840.png

VAE文件夹:

SD-WebUI 主文件夹\models\VAE

ed26640f220adccd730c1bece256b42c.png

四、首次启动 SD-WebUI

在 SD-WebUI 主文件夹中双击 webui-user.bat 文件。

第一次启动时,会自动下载安装一些必要的包并进行部署。

视网速快慢,一般会要几分钟或几十分钟。

df65a0de609c4ad77c11bfbd1f991309.png

五、设置 SD-WebUI

注意,命令行窗口在 SD-WebUI 运行期间不能关闭,它是 AI 生图的后台,所有的进程会在其中显示。

f1d300cf16d2dce33050f4b3c1f2da0b.png

将命令行窗口给出的地址,如, http://127.0.0.1:7860,拷贝到浏览器的地址栏,即会打开 SD-WebUI 的主界面。

47d3e3ac3b3feb78fb5bf48f4f60a12f.png

然后输入提示词等,开始玩转 AI 生图。

新装之后的 SD-WebUI 主界面上缺少了 VAE 和 CLIP。

点击 Settings 选项卡,再点击左侧栏目最后面的 Show all pages,在右侧内容中找到 Quicksettings list。

7d6c457e70a8c648c22ec2cf728463ee.png

在下拉菜单里找到 sd_vae 和 CLIP_stop_at_last_layers 两项并打勾。然后点击页面最上方的“Apply settings”按钮,并点击“Reload UI”,重启 SD-WebUI 主界面。 

若要变成中文界面或中英对照的界面,可将本地化语言包复制到 SD-WebUI 主文件夹\localizations 里面。

f5ae5c9ff58331b47faf92e45c303f93.png

提示:

可在以下网址或在 MediaTea 的共享资源中下载。

下载地址

https://github.com/VinsonLaro/stable-diffusion-webui-chinese

然后,在 settings 选项卡的 User interface 中的 Localization 中选择。同样需要“Apply settings”,并“Reload UI”。

c5ec9cb2cda396c4a80d0568e020bcc1.png

六、关闭、启动、更新

浏览器窗口仅是 UI 界面,关闭命令行窗口才会真正关闭 SD-WebUI。

跟第一次启动 SD-WebUI 一样,在 SD-WebUI 主文件夹双击 webui-user.bat 文件,并在浏览器输入地址即可再次启动。

若想使用黑暗主题界面,可以浏览器地址后面添加 ?__theme=dark,如下所示。

http://127.0.0.1:7860/?__theme=dark

7832e457888ba3a5c8134e6da8c0f221.png

若在使用过程有什么异常,请检查命令行窗口中的提示。

若要更新,请在 SD-WebUI 主文件夹窗口空白处右击选择“Open Git Bash Here”,并输入“git pull”。

bd6b73b1907baead4b93d60bfe27aaa6.png

51acb24c4e44c676da3ddfbd0c806ba8.jpeg

“点赞有美意,赞赏是鼓励”

相关文章:

本地部署 Stable Diffusion(Windows 系统)

相对于使用整合包,手动在 Windows 系统下本地部署 Stable Diffusion Web UI(简称 SD-WebUI),更能让人了解一些事情的来龙去脉。 一、安装前置软件:Python 和 Git 1、安装 Python for windows。 下载地址 https://www.p…...

Java源码分析(二)Double

本篇是源码分析的第二篇,上篇我们一起分析了Integer类的源码,本篇一起学习下Double类的源码,看下其实现。 一、Double类图 首先,相比Integer,Double类的源码只有1000行代码。如下是Integer及其关联类/接口的类图&#…...

文件上传漏洞之条件竞争

这里拿upload-labs的第18关做演示 首先先看代码 $is_upload false; $msg null;if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);$file_name $_FILES[upload_file][name];$temp_file $_FILES[upload_file][tmp_name];$file_ext substr($file_name,strrpos($file_…...

javacv基础04-图像色彩空间转换函数Imgproc.cvtColor()(彩图转灰度图示例)

opencv python 实现方式参考 opencv-19 图像色彩空间转换函数cv2.cvtColor() javacv 中的函数 Imgproc.cvtColor(image, grey, Imgproc.COLOR_BGR2GRAY); 参数说明: image: 原始图像新灰度图转换参数:多种转换方式参考上面链接地址内容 javacv 实现方式…...

Spring Boot进阶(60):5种判断线程池任务是否全部完成的方案 | 实用技巧分享!

1. 前言🔥 多线程编程在现代软件开发中非常常见且重要,而线程池是多线程编程的常用技术。在使用线程池时,通常需要判断线程池中的任务是否全部完成,以便决定程序继续执行的下一步操作。本文将介绍5种判断线程池任务是否全部完成的…...

Git相关介绍和操作

Git 是一个版本控制系统,它可以记录代码的变更历史,并允许多人协同开发。下面是 Git 的基本概念和使用方式: 仓库(Repository):Git 仓库用于存储代码的版本历史,包括代码变更、注释、作者、时间…...

IDEA配置热启动

1.背景 开发过程中,当写完一个功能我们需要运行应用程序测试,可能这个小功能中存在多个小bug,我们需要改正后重启服务器,这无形之中拖慢了开发的速度增加了开发时间,SpringBoot提供了spring-boot-devtools,…...

【附安装包】Fireworks CS6安装教程

软件下载 软件:Fireworks版本:CS6语言:简体中文大小:165.87M安装环境:Win11/Win10/Win8/Win7硬件要求:CPU2.0GHz 内存4G(或更高)下载通道①百度网盘丨下载链接:https://pan.baidu.c…...

深度学习-4-二维目标检测-YOLOv3理论模型

单阶段目标检测模型YOLOv3 R-CNN系列算法需要先产生候选区域,再对候选区域做分类和位置坐标的预测,这类算法被称为两阶段目标检测算法。近几年,很多研究人员相继提出一系列单阶段的检测算法,只需要一个网络即可同时产生候选区域并…...

通俗理解DDPM到Stable Diffusion原理

代码1:stabel diffusion 代码库代码2:diffusers 代码库论文:High-Resolution Image Synthesis with Latent Diffusion Models模型权重:runwayml/stable-diffusion-v1-5 文章目录 1. DDPM的通俗理解1.1 DDPM的目的1.2 扩散过程1.3 …...

如何基于自己训练的Yolov5权重,结合DeepSort实现目标跟踪

网上有很多相关不错的操作demo,但自己在训练过程仍然遇到不少疑惑。因此,我这总结一下操作过程中所解决的问题。 1、deepsort的训练集是否必须基于逐帧视频? 我经过尝试,发现非连续性的图像仍可以作为训练集。一个实例&#xff0…...

C#_委托详解

委托是什么? 字面理解:例如A要建一栋别墅,找到B建筑施工队,请B来建筑别墅。 委托类型规定方法的签名(方法类型):返回值类型、参数类型、个数、顺序。 委托变量可以用来存储方法的引用&#x…...

R包开发-2.2:在RStudio中使用Rcpp制作R-Package(更新于2023.8.23)

目录 4-添加C函数 5-编辑元数据 6-启用Roxygen,执行文档化。 7-单元测试 8-在自己的计算机上安装R包: 9-程序发布 参考: 为什么要写这篇文章的更新日期?因为R语言发展很快,很多函数或者方式,现在可以使…...

基于数据湖的多流拼接方案-HUDI实操篇

目录 一、前情提要 二、代码Demo (一)多写问题 (二)如果要两个流写一个表,这种情况怎么处理? (三)测试结果 三、后序 一、前情提要 基于数据湖对两条实时流进行拼接&#xff0…...

Spring MVC 四:Context层级

这一节我们来回答上篇文章中避而不谈的有关什么是RootApplicationContext的问题。 这就需要引入Spring MVC的有关Context Hierarchy的问题。Context Hierarchy意思就是Context层级,既然说到Context层级,说明在Spring MVC项目中,可能存在不止…...

【C++ 学习 ⑱】- 多态(上)

目录 一、多态的概念和虚函数 1.1 - 用基类指针指向派生类对象 1.2 - 虚函数和虚函数的重写 1.3 - 多态构成的条件 1.4 - 多态的应用场景 二、协变和如何析构派生类对象 2.1 - 协变 2.2 - 如何析构派生类对象 三、C11 的 override 和 final 关键字 一、多态的概念和虚…...

合宙Air724UG LuatOS-Air LVGL API控件--进度条 (Bar)

进度条 (Bar) Bar 是进度条,可以用来显示数值,加载进度。 示例代码 – 创建进度条 bar lvgl.bar_create(lvgl.scr_act(), nil) – 设置尺寸 lvgl.obj_set_size(bar, 200, 20); – 设置位置居中 lvgl.obj_align(bar, NULL, lvgl.ALIGN_CENTER, 0, 0) …...

图神经网络与分子表征:番外——基组选择

学过高斯软件的人都知道,我们在撰写输入文件 gjf 时需要准备输入【泛函】和【基组】这两个关键词。 【泛函】敲定计算方法,【基组】则类似格点积分中的密度,与计算精度密切相关。 部分研究人员借用高斯中的一系列基组去包装输入几何信息&am…...

rabbitmq笔记-rabbitmq客户端开发使用

连接RabbitMQ 1.创建ConnectionFactory,给定参数ip地址,端口号,用户名和密码等 2.创建ConnectionFactory,使用uri方式实现,创建channel。 注意: Connection可以用来创建多个channel实例,但c…...

13.Oracle中nvl()与nvl2()函数详解

Oracle中nvl()与nvl2()函数详解: 函数nvl(expression1,expression2)根据参数1是否为null返回参数1或参数2的值; 函数nvl2(expression1,expression2,expression3)根据参数1是否为null返回参数2或参数3的值 1.nvl:根据参数1是否为null返回参数…...

7.4.分块查找

一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

【Oracle】分区表

个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...

C++中vector类型的介绍和使用

文章目录 一、vector 类型的简介1.1 基本介绍1.2 常见用法示例1.3 常见成员函数简表 二、vector 数据的插入2.1 push_back() —— 在尾部插入一个元素2.2 emplace_back() —— 在尾部“就地”构造对象2.3 insert() —— 在任意位置插入一个或多个元素2.4 emplace() —— 在任意…...

基于Java项目的Karate API测试

Karate 实现了可以只编写Feature 文件进行测试,但是对于熟悉Java语言的开发或是测试人员,可以通过编程方式集成 Karate 丰富的自动化和数据断言功能。 本篇快速介绍在Java Maven项目中编写和运行测试的示例。 创建Maven项目 最简单的创建项目的方式就是创建一个目录,里面…...