Stable Diffusion XL webui Linux服务器摆设(保姆级教程)

[复制链接]
发表于 2026-2-23 14:23:30 | 显示全部楼层 |阅读模式
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克隆到服务器
  1. git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
  2. cd stable-diffusion-webui
复制代码
手动克隆依靠git堆栈

由于网络缘故原由,stable-diffusion-webui所依靠的5个堆栈(stablediffusion、generative-models、k-diffusion、BLIP),根本不大概一次性自动下载下来,以是最好本身事先克隆好。
先把stable-diffusion-webui\modules\launch_utils.py中大概380行左右的5行代码解释掉:
  1.     # git_clone(stable_diffusion_repo, repo_dir('stable-diffusion-stability-ai'), "Stable Diffusion", stable_diffusion_commit_hash)
  2.     # git_clone(stable_diffusion_xl_repo, repo_dir('generative-models'), "Stable Diffusion XL", stable_diffusion_xl_commit_hash)
  3.     # git_clone(k_diffusion_repo, repo_dir('k-diffusion'), "K-diffusion", k_diffusion_commit_hash)
  4.     # git_clone(codeformer_repo, repo_dir('CodeFormer'), "CodeFormer", codeformer_commit_hash)
  5.     # git_clone(blip_repo, repo_dir('BLIP'), "BLIP", blip_commit_hash)
复制代码
再新建一个文件夹repositories,放在stable-diffusion-webui下,操纵如下
  1. mkdir repositories
  2. cd repositories
  3. git clone https://github.com/Stability-AI/stablediffusion.git stable-diffusion-stability-ai
  4. git clone https://github.com/Stability-AI/generative-models.git
  5. git clone https://github.com/crowsonkb/k-diffusion.git
  6. git clone https://github.com/sczhou/CodeFormer.git
  7. 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来安装的,以是必要换成国内镜像源,来加快下载速率,下令如下:
  1. pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
复制代码
安装

预备停当后,先返回到stable-diffusion-webui文件夹下,然后运行webui.sh 文件
  1. cd stable-diffusion-webui
  2. ./webui.sh
复制代码
如果出现以下报错:
  1. File "/stable-diffusion-webui/repositories/k-diffusion/k_diffusion/layers.py", line 4, in <module>
  2.     from dctorch import functional as df
  3. ModuleNotFoundError: No module named 'dctorch'
复制代码
通过指定路径来安装,由于stable-diffusion-webui会创建一个venv文件夹,存放全部的依靠包。详细如下:
  1. pip install dctorch --target /stable-diffusion-webui/venv/lib/python3.10/site-packages/
复制代码
如果在终端输入./webui.sh以后,出现以下环境:
  1. Launching Web UI with arguments:
  2. no module 'xformers'. Processing without...
  3. no module 'xformers'. Processing without...
  4. No module 'xformers'. Proceeding without it.
复制代码
也可以通过同样的方式来安装,不外必要留意的是,要与python版本、torch版本(通过webui.sh来安装的话就是2.0.1)相匹配,我这里安装的xformers是0.0.20 版本,
  1. pip install xformers==0.0.20 --target /stable-diffusion-webui/venv/lib/python3.10/site-packages/
复制代码
xformers是用来加快MHA盘算的,使用xformers包的话可以用以下操纵:
  1. ./webui.sh --xformers
复制代码
出现下面的URL,就表现安装完成了!

设置public link

由于我是摆设在服务器,偶然候想windows当地使用的话,必要能外部访问,以是想设置一个外部链接。
起首,直接将下令改成:
  1. ./webui.sh --share --xformers
复制代码
下载干系文件

如果有如下报错:


  • 起首手动下载frpc_linux_amd64文件
  • 然后按要求重定名为frpc_linux_amd64_v0.2
  • 末了放在/stable-diffusion-webui/venv/lib/python3.10/site-packages/gradio/文件夹下
  • 给frpc_linux_amd64_v0.2可实行权限:
  1. 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行左右:
  1. # By default, the local server will try to open on localhost, port 7860.
  2. # If that is not available, then it will try 7861, 7862, ... 7959.
  3. INITIAL_PORT_VALUE = int(os.getenv("GRADIO_SERVER_PORT", "7860"))
  4. TRY_NUM_PORTS = int(os.getenv("GRADIO_NUM_PORTS", "100"))
  5. LOCALHOST_NAME = os.getenv("GRADIO_SERVER_NAME", "127.0.0.1")
  6. GRADIO_API_SERVER = "https://api.gradio.app/v2/tunnel-request"
复制代码
LOCALHOST_NAME改成本身服务器的IP,也就是下面这行:
  1. LOCALHOST_NAME = os.getenv("GRADIO_SERVER_NAME", "YOUR IP")
复制代码
相应地,端口也可以在INITIAL_PORT_VALUE中修改。
接着,在121行左右,修改server_name为你服务器的IP:
  1. server_name = server_name or LOCALHOST_NAME
  2. url_host_name = "localhost" if server_name == "0.0.0.0" else server_name
复制代码
改成
  1. server_name = "YOUR IP"
  2. url_host_name = "localhost" if server_name == "0.0.0.0" else server_name
复制代码
至此,已经可以通过外部访问了。
设置账户暗码

出于安全思量,可以设置访问的账户和暗码,只需在在运行下令的时间加上--gradio-auth user:password选项即可。冒号前面是你登录的账户名,背面是账户对应的暗码。
末了运行:
  1. ./webui.sh --share --xformers
  2. --gradio-auth user:password
复制代码
出现以下界面就大功告成了!撒花!
顺带一提:用本身服务器摆设比在hugging face上直接用别人的快多了,按默认设置跑,3秒一张图,嘎嘎香!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表