背景/简介:

服务器不能翻墙,所以有了这个指南。主要是因为从github上把sd webui拉下来之后,中间过程会从外网上下载很多模型文件、其他github上的项目,需要绕开这部分操作。模型文件没有办法还是得科学上网下载到本地,再通过ftp上传到服务器来解决。

当然,可以的话,自己搭的服务器还是直接搭个梯子更快。

======================================================

先写个简单版

1. 安装anaconda  安装cuda 10.2

安装方法我的主页其他文章有写 链接之后补

2.创建环境,并激活

conda create -n sdwebui python==3.10.9

3.从git上把项目拉下来 使用ghproxy.com代理绕开。

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

github上的网址前缀用这个就可以。拉取时会自动创建一个新文件夹,无需提前创建。(我经验少,每次都是创建了才发现其实不需要)

4.安装项目需要的包

pip install -r requirements_versions.txt
 
pip install -r requirements.txt 

这里遇到一个报错:error 28。报错分析:package的缓存会先下载到~/.cache/pip下。之前装太多项目,导致根目录基本上满了。直接手动删除一些这个目录下的问题就可以。(都是缓存,放心删~)

其他解决办法:
python - Could not install packages due to an EnvironmentError: [Errno 28] No space left on device - Stack Overflow

IOError: [Errno 28] No space left on device while installing torch · Issue #7745 · pypa/pip (github.com)

5. 修改launch.py。第一次打开sd webui过程中,会从github再把其他依赖项目拉下来,没有梯子速度非常慢。解决办法是统一做一次修改。

vim launch.py

之后输入:

:227,241s /https:\/\/github.com/https:\/\/ghproxy.com\/https:\/\/github.com/g

实现替换227-241行中的网址。从https://github.com 变为https://ghproxy.com/https://github.com

支持原作者:GitHub Proxy 代理加速 (ghproxy.com)

6. 启动python launch.py

遇到了报错一:

AssertionError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check

 尝试手动安装一下pytorch(对应cuda10.2版本的),没能解决问题。

conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=10.2 -c pytorch

之后,又找了2个小时的文章,终于知道是啥原因了。这个主要是跟linux系统内核有关,故另起一篇文章写这个解决方案。如需请移步:(138条消息) ubuntu服务器关机重新开机之后nvidia-smi挂了_Branton_Zhenyuan的博客-CSDN博客

遇到报错二:

no module named clip 

直接安装就可以:

pip install clip

7. 下载一个模型(这里还是不可避免的要科学上网),使用ftp工具上传到服务器上。这里就省略了,不同的服务器可能操作不同。

把模型文件放到stable-diffusion-webui/models/stable-diffusion目录下,因为sd webui启动的时候会先预加载一个模型,没有的话会自动从huggingface上下载。

需要的话,可以给大家提供一个stable diffusion v1.5/v2的百度网盘资源,需要评论区留言。但也可以直接下载和上传社区作者训练的模型。强烈建议还是直接到civit.ai上下载(科学上网哈),可以更好的支持到模型的原作者。

——————

至此应该就解决了所有启动会遇到的问题了。

8. 在stable-diffusion-webui目录下,创建一个linux的启动脚本,start.sh。

#!/bin/bash

export COMMANDLINE_ARGS="--listen --port 7860 --no-half"

python_cmd="python"
LAUNCH_SCRIPT="launch.py"

"${python_cmd}" "${LAUNCH_SCRIPT}" "$@"

--listen 会让启动的端口变为 http://0.0.0.0:7860  没有的话就是 http://127.0.0.1:7860

--port 规定需要的端口

--no-half 不加会报错float-32啥啥啥的,也可以先不加,出错了再加

然后执行bash start.sh

8. 🎉🎉🎉完事大吉 就会看到熟悉的sd webui在加载模型参数、把端口输出出来等等

========================================================

之后启动:

1. 先conda activate sdwebui 进入虚拟环境

2. 之后再切换到stable-diffusion-webui目录下,执行start.sh就可以了

3. 需要加什么参数也可以直接在COMMANDLINE_ARGS这个位置加。

至此就可以正常使用了。

========================================================

你说为啥没有成功的截图?因为我想要提高一下计算速度,用xformers加速。然后报错了。还在debug中。。。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐