【工具推荐】超火AI绘图Stable Diffusion Web UI本地部署与远程访问教程

本篇文章介绍如何在Windows本地部署Stable Diffusion Web UI,并且结合cpolar内网穿透实现公网环境远程访问。

在这里插入图片描述


🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:gylzbk

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

前言

本篇文章介绍如何在Windows本地部署Stable Diffusion Web UI,并且结合cpolar内网穿透实现公网环境远程访问。

Stable Diffusion(简称SD)是AI绘画领域的一个核心模型,它目前也是一个完全开源的项目(模型、代码、训练数据、论文、生态等全部开源),可拓展性强、 出图效率高、 数据安全保障,这使得其能快速构建强大繁荣的上下游生态,并且吸引了越来越多的AI绘画爱好者加入其中。

相比于集成在网络平台的SD或者其他AI绘画平台来说,自部署平台没有生成数量的限制,不用花钱,不用被NSFW约束,生成时间快,不用排队,自由度高,而且功能完整,插件丰富,可以调试和个性化的地方也更多;更稳定,也更容易让SD变成生产力或者商业化使用。既然这样,那就自力更生,在本机上自己部署一个,可以随心所欲地玩图、玩图。

Stable Diffusion只是提供一个模型,提供基础的文本分析、特征提取、图片生成这些核心功能,但自身是没有可视化UI的,用起来就是各种文件加命令行。原始的Stable Diffusion程序(脚本)只能以命令行的方式进行,参数设置很不方便,而且每次调用时,需要事先加载预训练模型,图像生成完成后会释放内存中的模型并结束进程,运行效率低,交互操作极其麻烦。

开源的 Stable Diffusion 社区受到了广泛民间开发者大力支持,众多为爱发电的程序员自告奋勇的为其制作方便操控的 GUI 图形化界面。

那么接下来就教大家如何在WIndiows本地来部署Stable Diffusion Web UI。

在这里插入图片描述

1. 本地部署Stable Diffusion Web UI

本篇文章介绍两种本地部署方式,一种是整合包安装,另一种是手动安装。
安装环境:Windows10

1.1 整合包安装

首先介绍第一种秋叶整合包安装,Stable Diffusion秋叶整合包是中国大神秋叶基于Stable Diffusion WebUI内核开发的整合包,内置了与电脑本身系统隔离的Python环境和Git(包含了第三部分需要下载和安装的依赖项、github依赖包、预训练模型以及相当多的插件)。可以忽略网络需求和Python环境的门槛,让更多人轻松地使用Stable Diffusion WebUI。超简单一键安装,无任何使用门槛,完全免费使用,支持Nvdia全系列显卡。

(1)配置要求:

  • 系统:Windows 10及以上系统
  • 显存最低4G,建议使用Nvidia 2060显卡,显存6GB以上。内存至少是8GB,而配备16GB或者以上内存,你会有更好的使用体验

(2)下载文件:
下载到本地,最好不要有中文目录,整合包地址链接:链接:https://pan.baidu.com/s/1uFmhO8jwdmseFjRq03YSbg?pwd=6666
提取码:6666

(3)解压文件夹到本地,点击启动器

af299cde20f0567a58019a11578fed7.png

(4)点击一键启动

d7c6727553611dd2bdd07ea6e1d1ef6.png

可以看到出现了命令行

6a8c6eba316fce81861f49250ba78e7.png

稍等等几秒钟,会自动跳到Web UI页面。

cceacbde5f237d5414d6277cbbf0610.png

然后就可以在文本框中,输入指令来进行AI生图了。

1.2 手动安装Stable Diffusion Web UI

(1) 下载文件和修改文件

点击链接下载文件:https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

将文件重命名为 model.ckpt

(2)下载Anaconda: 首先我们需要安装一个Python的虚拟环境的管理器——Anaconda,给我们的Stable Diffusion创建一个独立的python3.10.6环境

下载地址:https://repo.anaconda.com/archive/

下载完成后,打开Anaconda的终端,创建一个名为 stablediffusion 的环境,指定python版本3.10.6

conda create -n stablediffusion python=3.10.8

查看是否创建环境成功

conda env list

创建成功后,激活虚拟环境

active stablediffusion

(3)下载git:https://git-scm.com/

选择Windows最新版本安装即可

image.png

(4) 下载 stable-diffusion webui github 链接

  • 在Anaconda命令行中输入
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
运行之后 git 会将文件下载到当前文件夹中

image.png

  • model.ckpt 放到 models 文件夹下

  • repositories 文件夹和 GFPGANv1.3.pth 放到 webui 根目录下和 webui.bat 同一个文件夹

(5)在conda虚拟环境命令行中进入到根目录中打开webui-user.bat

6ff32405daa0eda86c5c43dea7d4262.png

等一会之后,自动打开Stable Diffusion Web UI,本地地址为:127.0.0.1:7860

之后就可以在文本框中输入指令并生成图片。

396ad6cb14323551a734cee12acac24.png

目前我们在本地成功部署了Stable Diffusion Web UI,但是如果我们想实现不在局域网下,在公网能够远程访问Stable Diffusion Web UI的话,我们就可以使用Cpolar内网穿透来实现公网随时随地访问了!免去了复杂得本地部署过程,只需要一个公网地址直接就可以访问。

接下来就教大家如何安装Cpolar并且将本地部署的Stable Diffusion Web UI实现公网访问。

2. 安装Cpolar内网穿透

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

点击进入cpolar官网,点击免费使用注册一个账号,并下载最新版本的Cpolar

登录成功后,点击下载Cpolar到本地并安装(一路默认安装即可)本教程选择下载Windows版本。

image-20240319175308664

Cpolar安装成功后,在浏览器上访问http://localhost:9200,使用cpolar账号登录,登录后即可看到Cpolar web 配置界面,结下来在web 管理界面配置即可。

接下来配置一下 Stable Diffusion Web UI 的公网地址,

登录后,点击左侧仪表盘的隧道管理——创建隧道,

创建一个 Stable Diffusion Web UI 的公网http地址隧道

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:7860 (本地访问的地址)
  • 域名类型:免费选择随机域名
  • 地区:选择China Top

f243ebf8c60be11d1a1470224a754fb.png

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

8cca72f2ff4aa774e48cba680d15015.png

使用上面的Cpolar https公网地址,在手机或任意设备的浏览器进行登录访问,即可成功看到 Stable Diffusion Web UI界面,这样一个公网地址且可以远程访问就创建好了,使用了Cpolar的公网域名,无需自己购买云服务器,即可到公网访问 Stable Diffusion Web UI了!

3. 实现公网访问Stable Diffusion Web UI

我们用刚才cpolar生成的公网地址,打开一个新的浏览器复制粘贴,可以看到进入到了Stable Diffusion Web UI主界面。

7bb527ae95cc1792028eb9fbfebdb3e.png

小结

如果我们需要长期进行团队协作的话,由于刚才创建的是随机的地址,24小时会发生变化。另外它的网址是由随机字符生成,不容易记忆。如果想把域名变成固定的二级子域名,并且不想每次都重新创建隧道来访问Stable Diffusion Web UI,我们可以选择创建一个固定的http地址来解决这个问题。

4. 固定Stable Diffusion Web UI 公网地址

我们接下来为其配置固定的HTTP端口地址,该地址不会变化,方便分享给别人长期查看你的博客,而无需每天重复修改服务器地址。

配置固定http端口地址需要将cpolar升级到专业版套餐或以上。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称。

6fc65f9eb26f36e3e54275b53a2e574.png

保留成功后复制保留成功的二级子域名的名称

cd7b5bb0c6f667b493d279bdb420661.png

返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

19ffeec2220f85c0854494df82b5bd7.png

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

26f2cad01153608fd8695138449ca59.png

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

0a6477016cf652bad6bdc7a406fb257.png

最后,我们使用固定的公网https地址在任何浏览器打开访问,可以看到访问Stable Diffusion Web UI成功了这样一个固定且永久不变的公网地址就设置好了。

c8884f8b895c7b27f2853c95e6c89ae.png

以上就是如何在Windows本地部署Stable Diffusion Web UI,并结合cpolar内网穿透工具实现远程访问使用的全部流程,感谢您的观看,有任何问题欢迎留言交流。

phosphor-webui是OpenBMC的Web服务,它是基于RESTful风格的API服务,可以处理HTTP请求,并返回JSON格式的数据。下面是一些示例代码,展示了phosphor-webui如何接收和处理HTTP请求。 首先,我们需要创建一个HTTP服务器,用于接收客户端的HTTP请求。在phosphor-webui中,这个HTTP服务器是通过boost::asio库实现的。下面是创建HTTP服务器的示例代码: ```c++ void Server::run() { http::server::options options; options.address = address; options.port = port; options.threadCount = threadCount; server_ = std::make_unique<http::server::server>(options); server_->addHandler("/", std::bind(&Server::handleRequest, this, std::placeholders::_1, std::placeholders::_2)); server_->run(); } ``` 在run()函数中,我们首先创建了一个http::server::options对象,用于指定HTTP服务器的地址、端口号和线程数等参数。然后,我们通过std::make_unique函数创建了一个http::server::server对象,这个对象是HTTP服务器的实例。接着,我们调用server_->addHandler()函数注册了一个请求处理器,用于处理客户端发送的HTTP请求。最后,我们调用server_->run()函数启动HTTP服务器,开始监听客户端的HTTP请求。 当客户端发送HTTP请求时,HTTP服务器会调用handleRequest()函数来处理这个请求。下面是handleRequest()函数的示例代码: ```c++ void Server::handleRequest(const http::server::request& request, http::server::response& response) { // 根据请求的URL和HTTP方法,找到对应的API接口 auto handler = findHandler(request.method(), request.uri().path()); if (!handler) { // 如果找不到对应的API接口,返回404错误 response.result(http::status::not_found); response.send(); return; } try { // 调用API接口处理HTTP请求,并将API接口返回的数据封装成JSON格式的数据 nlohmann::json result = handler(request); // 返回JSON格式的数据给客户端 response.result(http::status::ok); response.set(http::field::content_type, "application/json"); response.body() = result.dump(); } catch (const std::exception& ex) { // 发生异常时,返回500错误 response.result(http::status::internal_server_error); response.send(); throw; } response.send(); } ``` 在handleRequest()函数中,我们首先根据请求的URL和HTTP方法,找到对应的API接口。如果找不到对应的API接口,我们就返回404错误。如果找到了对应的API接口,就调用API接口来处理HTTP请求,并将API接口返回的数据封装成JSON格式的数据。最后,我们将JSON格式的数据返回给客户端,并返回HTTP状态码为200。 总的来说,phosphor-webui的HTTP服务器是通过boost::asio库实现的,可以接收和处理HTTP请求。当客户端发送HTTP请求时,HTTP服务器会调用相应的请求处理器来处理这个请求,并返回相应的数据给客户端。
评论 106
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I'mAlex

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值