当前位置:AIGC资讯 > AIGC > 正文

在modelscope(魔塔)部署自己的Stable-Diffusion-WebUI并实现网络穿透,可外部调用

一、注册并登陆modelscope平台

       modelscope账号的注册这里就不做过多的介绍,大家可以自行搜索完成账号注册及实名认证,领取免费GPU算力;

       登陆后按下图指示依次点击选择对应配置,最后点击‘启动’开启并进入服务器;

二、部署SatbleDiffusionWebUI项目

2.1 方法一:

       下载github上的官方源码进行魔塔部署(需要修改部分配置及自己上传网络穿透工具包,推荐跳过方法一直接从方法二开始);

1)创建notebook:

2)获取SatbleDiffusionWebUI项目源码:

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

3)进入项目的Stable-diffusion文件夹,并拉取模型权重:

%cd stable-diffusion-webui/models/Stable-diffusion
!git clone https://www.modelscope.cn/zhiheng/v1-5-pruned-emaonly.safetensors.git

4)返回项目根目录,并拉取Clip模型权重:

%cd ../..
!mkdir openai
%cd openai
!git clone https://www.modelscope.cn/AI-ModelScope/clip-vit-large-patch14.git

5)因为在当前服务器是通过root用户运行程序,所以需要修改webui.sh脚本的P96-106行,将其注释掉并保存:

6)修改webui-user.sh 脚本P13行,设置参数为‘--skip-torch-cuda-test’并解除注释保存:

7)在stable-diffusion-webui文件夹下打开终端,在终端运行‘./webui.sh’,脚本会新创建一个python的venv虚拟环境,同时安装项目所需第三方依赖库:

8)出现如下界面说明项目部署已经成功:

2.2 方法二:

       下载我在gitee上上传的StableDiffusion代码,不仅包含了官方源码,还在此基础上修改了专门适配魔塔平台的配置文件和安装了网络穿透工具cpolar的安装包;

1)进入服务器后创建notebook:

2)以次输入如下指令运行:

·指令如下:

# 拉取gitee上的代码
!git clone https://gitee.com/gy19940717/stable-diffuction.git
# 进入Stable-diffusion文件夹拉取对应模型权重
%cd stable-diffuction/models/Stable-diffusion
!git clone https://www.modelscope.cn/zhiheng/v1-5-pruned-emaonly.safetensors.git
# 返回项目根目录创建openai文件夹并进入
%cd ../..
!mkdir openai
%cd openai
# 拉取Clip模型权重
!git clone https://www.modelscope.cn/AI-ModelScope/clip-vit-large-patch14.git

3)在 stable-diffuction目录下打开一个终端并运行‘./webui.sh’:

# 在终端运行
./webui.sh

 4)出现如下界面说明项目部署已经成功:

三、网络穿透

      但是当你通过电脑浏览器访问这个地址会发现无法访问,这个不仅是因为启动的host是一个回环地址,即便将‘share=True’,设置为广播地址,在自己电脑上也是无法访问的,因为部署的这个魔塔服务器不在公网,需要进行网络穿透;

      这里就设置默认的回环地址启动web服务,然后选择cpolar这个工具的免费版本进行网络穿透。

3.1 使用方法一部署的同学请看这部分内容:

1.去到cpolar官网下载对应版本安装包,这里选择Linux版本:

2.将下载到本地的cpolar压缩包上传至魔塔服务器并解压:

3.将帐户的authtoken添加到cpolar.yml文件:

./cpolar authtoken MThiNzBhMGEtMjJiNi00ZjVlLTgwNDgtZWRhN2Y4MDkyZjY2

4.选择需要暴露的端口进行网络穿透,启动stable-diffusion-webui项目的请求端口为7860,所以这里选择暴露7860端口:

5.暴露端口之后可以看到下图界面,表示网络穿透成功,复制红框内的请求地址到自己电脑的浏览器就可以进入本文第一张图所示的stable-diffusion-webui项目的web界面进行操作了:

3.2 使用方法二部署的同学请看这部分内容:

1.依次在刚才创建的notebook里面继续输出如下指令:

# 退出到Stable-diffusion文件夹下并解压网络穿透工具的压缩包cpolar-stable-linux-amd64.zip
%cd ..
!unzip cpolar-stable-linux-amd64.zip
# 将帐户的authtoken添加到cpolar.yml文件
!./cpolar authtoken MThiNzBhMGEtMjJiNi00ZjVlLTgwNDgtZWRhN2Y4MDkyZjY2

2.同样在Stable-diffusion文件夹下新打开一个终端,并运行‘./cpolar http 7860’:

# 终端运行
./cpolar http 7860

3.暴露端口之后可以看到下图界面,表示网络穿透成功,复制红框内的请求地址到自己电脑的浏览器就可以进入本文第一张图所示的stable-diffusion-webui项目的web界面进行操作了:

完结,撒花~

总结

**总结:在ModelScope平台上部署StableDiffusionWebUI项目的全流程**
**一、注册并登陆ModelScope平台**
1. **完成注册**:搜索并完成ModelScope账号的注册及实名认证,领取免费GPU算力。
2. **登陆启动**:登陆ModelScope后,选择配置并启动服务器,进入操作界面。
**二、StableDiffusionWebUI项目部署**
**方法一(官方源码部署,建议跳过)**:
1. **创建Notebook**:在ModelScope服务器上创建新的Notebook。
2. **获取项目源码**:通过Git克隆官方StableDiffusionWebUI源码。
3. **拉取模型权重**:分别拉取Stable Diffusion和CLIP模型权重至指定文件夹。
4. **修改脚本**:修改`webui.sh`和`webui-user.sh`脚本以适应服务器运行环境。
5. **安装依赖**:运行`./webui.sh`脚本创建虚拟环境并安装所需第三方库。
6. **启动项目**:成功运行脚本后,通过特定端口访问StableDiffusionWebUI的web界面。
**方法二(推荐)**:
1. **创建Notebook**:在服务器上创建Notebook。
2. **拉取项目代码**:直接克隆包含适配配置文件和网络穿透工具的StableDiffusion代码仓库。
3. **拉取模型权重**:与方法一类似,拉取所需的Stable Diffusion和CLIP模型权重。
4. **启动项目**:在StableDiffusion文件夹内运行`./webui.sh`脚本,完成项目启动。
**三、网络穿透**
由于ModelScope服务器为内网环境,需进行网络穿透才能从外网访问。推荐使用cpolar工具:
1. **下载并上传cpolar**:根据系统下载cpolar安装包,上传至服务器并解压。
2. **配置authtoken**:将cpolar帐户的authtoken添加到`cpolar.yml`文件中。
3. **暴露端口**:使用cpolar工具暴露StableDiffusionWebUI的监听端口(通常为7860)。
4. **访问项目**:网络穿透成功后,复制的访问地址即可在浏览器中打开StableDiffusionWebUI的web界面。
通过以上步骤,成功在ModelScope平台低代码部署并网络穿透访问StableDiffusionWebUI项目。

更新时间 2024-07-27