Stable Diffusion整合包与手动本地部署结合内网穿透远程AI绘画

embedded/2024/9/24 4:46:25/

文章目录

    • 前言
    • 1. 本地部署Stable Diffusion Web UI
      • 1.1 整合包安装
      • 1.2 手动安装Stable Diffusion Web UI
    • 2. 安装Cpolar内网穿透
    • 3. 实现公网访问Stable Diffusion Web UI
    • 4. 固定Stable Diffusion Web UI 公网地址

💡 推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击跳转到网站】

前言

本篇文章介绍如何在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。

在这里插入图片描述

【视频教程】

AI绘图利器Stable Diffusion如何在本地Windows系统电脑部署保姆级教程

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内网穿透工具实现远程访问使用的全部流程,感谢您的观看,有任何问题欢迎留言交流。


http://www.ppmy.cn/embedded/102759.html

相关文章

后端修改资源后重新运行项目了,浏览器刷新资源没更新问题

修改后重启项目,去浏览器刷新: 没有改变? 解决办法: F12去调试器里“网络”工具栏下找到“禁用缓存”按钮即可解决

优雅实现远程调用-OpenFeign

目录 OpenFeign介绍 OpenFeign最佳实践 我再来遇到个问题,我创建的com.xx.xxx包,放到一起了,不是那种一个在一个下面的那种 Nacos,只要看见这种什么网络报错啥的,java.net.SocketException: Network is unreachabl…

SparkContext与SparkSession区别

文章目录 pyspark初始化SparkContextSparkSessionSparkConfspark-submit pyspark初始化 SparkContext Spark中的主要接口,代表与Spark集群的连接。 在早期版本的Spark中,需要通过SparkContext对象来初始化Spark应用程序。在Spark 2.0之后,推…

Xline v0.7.0: 一个用于元数据管理的分布式KV存储

Xline是什么?我们为什么要做Xline? Xline是一个基于Curp协议的,用于管理元数据的分布式KV存储。现有的分布式KV存储大多采用Raft共识协议,需要两次RTT才能完成一次请求。当部署在单个数据中心时,节点之间的延迟较低&a…

AI大模型:开源与闭源的激烈交锋与未来展望

在人工智能的浩瀚星空中,大模型作为技术的璀璨明珠,正引领着行业变革的浪潮。从最初的闭源垄断到如今的开源与闭源并驾齐驱,AI大模型的发布趋势、竞争格局以及技术演进,无不彰显着这一领域的蓬勃生机与无限可能。本文将深入探讨开…

C语言关键字

C语言中有一批保留名字的符号,比如:int 、if、return,这些符号被称为保留字或关键字,他们都有特殊的意义,是保留给C语言使用的,我们程序员自己在创建标识的时候是不能和关键字重复的。 C语言的32为关键字如…

同鑫T9eHR信息华管理系统GetDropDownListItems存在SQL注入漏洞

漏洞描述: 广州同鑫科技有限公司是专业从事人力资源管理系统、eHR/OA一体化智慧云平台、智慧一卡通云平台、行业软件开发与定制、智慧企业管理信息化咨询与项目服务为核心业务的顾问式管理咨询和软件个性定制开发的高科技股份集团公司。广州同鑫科技有限公司同鑫T9eHR信息华管…

<Godot>工厂游戏练习笔记一<2D网格地图>

1、编写网格数据类,用于存储网格地图中的数据: class_name Grid2D_Data## 单元格数据,传入一个场景 var data:Resource:set(val):if val ! null:data val ## 网格长宽 var grid_size:Vector2i Vector2i(10,10):set(val):if val:grid_size val ## 网格…