Stable Diffusion XL webui Linux服务器部署(保姆级教程)
创始人
2024-11-21 11:34:15
0

文章目录

  • Stable Diffusion XL webui Linux服务器部署
    • 机器配置情况
    • 开始部署
      • 安装webui前准备
        • 手动克隆依赖git仓库
        • 下载SDXL-refiner-1.0预训练模型
        • 换pip源
      • 安装
        • 设置public link
          • 下载相关文件
          • 修改配置文件
          • 设置账户密码

Stable Diffusion XL webui Linux服务器部署

本人把部署过程遇到的坑,会尽可能详细地写在这篇文章中,以供参考。希望能对大家有所帮助!

机器配置情况

设备情况4张RTX 4090,NVIDIA驱动版本为525.60.13,CUDA版本为12.0。

开始部署

我部署的SDXL版本为SDXL-refiner-1.0,虽然SDXL官方github提供了UI界面的脚本,但是用起来不如 AUTOMATIC1111开发的好用,所以还是推荐用AUTOMATIC1111的stable-diffusion-webui。

然后我用的是conda虚拟环境,python版本是3.10.13。切记python版本一定要3.10以上!

安装webui前准备

首先把stable-diffusion-webui克隆到服务器上

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git cd stable-diffusion-webui 
手动克隆依赖git仓库

由于网络原因,stable-diffusion-webui所依赖的5个仓库(stablediffusion、generative-models、k-diffusion、BLIP),基本不可能一次性自动下载下来,所以最好自己事先克隆好。
先把stable-diffusion-webui\modules\launch_utils.py中大概380行左右的5行代码注释掉:

    # git_clone(stable_diffusion_repo, repo_dir('stable-diffusion-stability-ai'), "Stable Diffusion", stable_diffusion_commit_hash)     # git_clone(stable_diffusion_xl_repo, repo_dir('generative-models'), "Stable Diffusion XL", stable_diffusion_xl_commit_hash)     # git_clone(k_diffusion_repo, repo_dir('k-diffusion'), "K-diffusion", k_diffusion_commit_hash)     # git_clone(codeformer_repo, repo_dir('CodeFormer'), "CodeFormer", codeformer_commit_hash)     # git_clone(blip_repo, repo_dir('BLIP'), "BLIP", blip_commit_hash) 

再新建一个文件夹repositories,放在stable-diffusion-webui下,操作如下

mkdir repositories cd repositories git clone https://github.com/Stability-AI/stablediffusion.git stable-diffusion-stability-ai git clone https://github.com/Stability-AI/generative-models.git git clone https://github.com/crowsonkb/k-diffusion.git git clone https://github.com/sczhou/CodeFormer.git git clone https://github.com/salesforce/BLIP.git 

这里说明一下:因为stable-diffusion-webui会把stablediffusion改成stable-diffusion-stability-ai,所以上述第一个克隆命令做了一下修改。

下载SDXL-refiner-1.0预训练模型

我这里用的是sd_xl_refiner_1.0.safetensors预训练模型权重,其他版本的可以去huggingface上下载,或者在官方git上打开相应版本的链接:
其他版本下载完以后,放在stable-diffusion-webui/models/Stable-diffusion/路径下

换pip源

由于webui提供的自动安装的shell脚本是基于pip来安装的,所以需要换成国内镜像源,来加快下载速度,命令如下:

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple 

安装

准备就绪后,先返回到stable-diffusion-webui文件夹下,然后运行webui.sh 文件

cd stable-diffusion-webui ./webui.sh 

如果出现以下报错:

File "/stable-diffusion-webui/repositories/k-diffusion/k_diffusion/layers.py", line 4, in      from dctorch import functional as df ModuleNotFoundError: No module named 'dctorch' 

通过指定路径来安装,因为stable-diffusion-webui会创建一个venv文件夹,存放所有的依赖包。具体如下:

pip install dctorch --target /stable-diffusion-webui/venv/lib/python3.10/site-packages/ 

如果在终端输入./webui.sh以后,出现以下情况:

Launching Web UI with arguments: no module 'xformers'. Processing without... no module 'xformers'. Processing without... No module 'xformers'. Proceeding without it. 

也可以通过同样的方式来安装,不过需要注意的是,要与python版本、torch版本(通过webui.sh来安装的话就是2.0.1)相匹配,我这里安装的xformers是0.0.20 版本,

pip install xformers==0.0.20 --target /stable-diffusion-webui/venv/lib/python3.10/site-packages/ 

xformers是用来加速MHA计算的,使用xformers包的话可以用以下操作:

./webui.sh --xformers 

出现下面的URL,就表示安装完成了!
URL

设置public link

由于我是部署在服务器,有时候想windows本地使用的话,需要能外部访问,所以想设置一个外部链接。
首先,直接将命令改成:

./webui.sh --share --xformers 
下载相关文件

如果有如下报错:
--share报错

  1. 首先手动下载frpc_linux_amd64文件
  2. 然后按要求重命名为frpc_linux_amd64_v0.2
  3. 最后放在/stable-diffusion-webui/venv/lib/python3.10/site-packages/gradio/文件夹下
  4. 给frpc_linux_amd64_v0.2可执行权限:
chmod +x /stable-diffusion-webui/venv/lib/python3.10/site-packages/gradio/frpc_linux_amd64_v0.2 
修改配置文件

同样在 /stable-diffusion-webui/venv/lib/python3.10/site-packages/gradio/文件夹下,找到networking.py,大概在28行左右:

# By default, the local server will try to open on localhost, port 7860. # If that is not available, then it will try 7861, 7862, ... 7959. INITIAL_PORT_VALUE = int(os.getenv("GRADIO_SERVER_PORT", "7860")) TRY_NUM_PORTS = int(os.getenv("GRADIO_NUM_PORTS", "100")) LOCALHOST_NAME = os.getenv("GRADIO_SERVER_NAME", "127.0.0.1") GRADIO_API_SERVER = "https://api.gradio.app/v2/tunnel-request" 

LOCALHOST_NAME改成自己服务器的IP,也就是下面这行:

LOCALHOST_NAME = os.getenv("GRADIO_SERVER_NAME", "YOUR IP") 

相应地,端口也可以在INITIAL_PORT_VALUE中修改。
接着,在121行左右,修改server_name为你服务器的IP:

server_name = server_name or LOCALHOST_NAME url_host_name = "localhost" if server_name == "0.0.0.0" else server_name 

改成

server_name = "YOUR IP" url_host_name = "localhost" if server_name == "0.0.0.0" else server_name 

至此,已经可以通过外部访问了。

设置账户密码

出于安全考虑,可以设置访问的账户和密码,只需在在运行命令的时候加上--gradio-auth user:password选项即可。冒号前面是你登录的账户名,后面是账户对应的密码。

最后运行:

./webui.sh --share --xformers --gradio-auth user:password 

出现以下界面就大功告成了!撒花!
顺带一提:用自己服务器部署比在hugging face上直接用别人的快多了,按默认设置跑,3秒一张图,嘎嘎香!
登录界面在这里插入图片描述

相关内容

热门资讯

透视实锤!哈糖大菠萝助手,竞技... 透视实锤!哈糖大菠萝助手,竞技联盟辅助(原来真的有挂);1、打开软件启动之后找到中间准星的标志长按。...
透视安装!德普之星透视软件免费... 透视安装!德普之星透视软件免费入口官网(透视)透视辅助软件下载(都是有挂);亲,关键说明,德普之星透...
透视辅助!werplan透视挂... 透视辅助!werplan透视挂,拱趴大菠萝有什么挂(其实真的是有挂)1、拱趴大菠萝有什么挂ai辅助优...
透视科技!德普之星app安卓版... 透视科技!德普之星app安卓版破解版(透视)辅助软件(本来有挂)进入游戏-大厅左侧-新手福利-激活码...
透视规律!werplan免费挂... 透视规律!werplan免费挂下载,线上德州的辅助器是什么(本来存在有挂)1)线上德州的辅助器是什么...
透视有挂!如何下载德普之星辅助... 透视有挂!如何下载德普之星辅助软件(透视)免费透视(总是有挂)1、如何下载德普之星辅助软件ai辅助优...
透视挂透视!xpoker透视辅... 透视挂透视!xpoker透视辅助,拱趴游戏破解器(原来真的是有挂)1、拱趴游戏破解器ai辅助优化,拱...
透视ai代打!德扑圈透视挂(透... 透视ai代打!德扑圈透视挂(透视)辅助器app(确实存在有挂)1、在德扑圈透视挂ai机器人技巧中,中...
透视免费!xpoker辅助工具... 透视免费!xpoker辅助工具,werplan外卦神器(一贯真的是有挂)1、每一步都需要思考,不同水...
透视工具!德普之星辅助工具如何... 透视工具!德普之星辅助工具如何设置(透视)私人局辅助免费(都是是真的有挂)1、每一步都需要思考,不同...