【本地化部署Stable Diffusion WebUI(MACOS安装)】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

随着人工智能的不断发展,AI绘图热兴起,我也想加入到AI绘图大潮中。


一、Stable Diffusion WebUI适配三类芯片

此模型支持三类GPU芯片

  1. NVidia (recommended)
  2. AMD GPUs.
  3. Intel CPUs, Intel GPUs (bothintegrated and discrete) (我的mac属于此情况)

二、安装

说明:期间需要访问外网,自行实现巧妙上网

1.安装git、conda等

brew install cmake protobuf rust python@3.10 git wget miniconda

2.选定目录及下载Github远程仓库文件

mkdir SDW
cd SDW
git clone git@github.com:openvinotoolkit/stable-diffusion-webui.git

3.创建conda虚拟环境

创建虚拟环境

conda env create -p /Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/automatic -f /Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/environment-wsl2.yaml

最后创建完成后显示如下:

# To activate this environment, use                                                                                                                                                                                                 
#                                                                                                                                                                                                                                   
#     $ conda activate /Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/automatic                                                                                                                                                
#                                                                                                                                                                                                                                   
# To deactivate an active environment, use                                                                                                                                                                                          
#                                                                                                                                                                                                                                   
#     $ conda deactivate

激活环境

conda activate /Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/automatic

4.安装依赖

cd stable-diffusion-webui
pip install -r requirements.txt

pip速度慢需添加国内pip源

cd ~
mkdir .pip

cd .pip
touch pip.conf

在pip.conf文件中,添加以下内容:

[global]
index-url = https://pypi.doubanio.com/simple/
trusted-host = pypi.doubanio.com

5.运行

还有未安装的依赖在此步骤执行中会一次安装,当然有报错需要一次解决。

英特尔CPU+GPU的场景执行前环境要生效如下内容:

export PYTORCH_TRACING_MODE=TORCHFX
export COMMANDLINE_ARGS="--skip-torch-cuda-test --precision full --no-half" 
./webui.sh

6.问题处理

运行./webui.sh会有很多报错

缺openai模块等

OSError: Can't load tokenizer for 'openai/clip-vit-large-patch14'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'openai/clip-vit-large-patch14' is the correct path to a directory containing all relevant files for a CLIPTokenizer tokenizer.
手动git clone

在这里插入图片描述
可直接git clone
可以指定git代理实现

#指定git代理
git config --global https.proxy socks5://127.0.0.1:1088
或
git config --global https.proxy https://127.0.0.1:1088
#取消git代理
git config --global --unset https.proxy

在这里插入图片描述
在这里插入图片描述

例如:
git clone https://huggingface.co/openai/clip-vit-large-patch14
或
git clone git@hf.co:openai/clip-vit-large-patch14
类似的v1-5-pruned-emaonly.safetensors模型获取失败

在这里插入图片描述

https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors

此文件较大有4G多,建议通过从源网站下载到云盘,再从云盘下载到本地,然后让入目标文件夹如:stable-diffusion-uebul/models/Stable-diffusion/

RuntimeError: “LayerNormKernelImpl” not implemented for 'Half’等

RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'
/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/nn/functional.py", line 2515, in layer_norm

RuntimeError: "addmm_impl_cpu_" not implemented for 'Half'
/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/torch/nn/modules/linear.py", line 114, in forward

那么执行时添加如下参数:

./webui.sh --precision full --no-half 

正常运行sdw的的话会自动访问http://127.0.0.1:7860/

命令行显示类似如下:

在这里插入图片描述

浏览器显示如下:

注意选择支持intel GPU的script,OpenVINO™ Acceleration Script
在这里插入图片描述

绘图时报错

类似如下报错
报错显示如下:

OSError: We couldn't connect to 'https://huggingface.co' to load this file, couldn't find it in the cached files and it looks like CompVis/stable-diffusion-safety-checker is not the path to a directory containing a file named config.json. Checkout your internet connection or see how to run the library in offline mode at 'https://huggingface.co/docs/transformers/installation#offline-mode'.

以及

   Traceback (most recent call last):
      File "/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/urllib3/connection.py", line 198, in _new_conn
        sock = connection.create_connection(
      File "/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/urllib3/util/connection.py", line 85, in create_connection
        raise err
      File "/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/urllib3/util/connection.py", line 73, in create_connection
        sock.connect(sa)
    TimeoutError: timed out

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
      File "/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line 793, in urlopen
        response = self._make_request(
      File "/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line 491, in _make_request
        raise new_e
      File "/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line 467, in _make_request
        self._validate_conn(conn)
      File "/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line 1099, in _validate_conn
        conn.connect()
      File "/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/urllib3/connection.py", line 616, in connect
        self.sock = sock = self._new_conn()
      File "/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/urllib3/connection.py", line 207, in _new_conn
        raise ConnectTimeoutError(
    urllib3.exceptions.ConnectTimeoutError: (<urllib3.connection.HTTPSConnection object at 0x7ff2fbebe290>, 'Connection to huggingface.co timed out. (connect timeout=10)')

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
      File "/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/requests/adapters.py", line 486, in send
        resp = conn.urlopen(
      File "/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/urllib3/connectionpool.py", line 847, in urlopen
        retries = retries.increment(
      File "/Users/zhaoyao/Downloads/SDW/stable-diffusion-webui/venv/lib/python3.10/site-packages/urllib3/util/retry.py", line 515, in increment
        raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /CompVis/stable-diffusion-safety-checker/resolve/main/config.json (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7ff2fbebe290>, 'Connection to huggingface.co timed out. (connect timeout=10)'))

在这里插入图片描述

很显然是绘图时需要访问huggingface.co下载模块

考虑直接添加代理的方式,因为不可能每次画图每次需要下载模块的时候每次手动下载

修改webu.sh

在此文件while [[ “$KEEP_GOING” -eq “1” ]]; 上一行添加一行如下内容:

export HF_ENDPOINT=https://hf-mirror.com

在这里插入图片描述

绘图时会有如下显示:

在这里插入图片描述

绘图结束显示

在这里插入图片描述
在这里插入图片描述


总结

参考于https://github.com/openvinotoolkit/stable-diffusion-webui
https://openai.wiki/stable-diffusion-webui-localization.html。

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Stable Diffusion WebUI是一种用于管理CodePlex常见操作的网络用户界面(WebUI),这意味着您不需要登录到服务器上的命令行界面来管理项目。安装过程并不复杂,但需要一些基本的技术知识。下面是安装过程的一些步骤: 首先,确保您的服务器已安装一个数据库管理系统。Stable Diffusion WebUI支持MSSQL Server、MySQL和SQLite等数据库系统,您可以根据自己的需要选择。然后,您需要在服务器上安装.NET框架,因为Stable Diffusion WebUI是一个基于.NET开发的应用程序。您可以在微软官网上下载适合您的版本。 接下来,您需要下载最新版本的Stable Diffusion WebUI。您可以从官方网站或GitHub页面上找到下载链接。将安装包下载到服务器上的任何目录中,然后解压缩它。安装包中包含了一些必要的文件和文件夹,包括安装向导(Install.bat)、WebUI配置文件(StableDiffusion.config)和WebUI启动程序(WebUI.exe)。 在使用安装向导之前,您需要进一步配置您的数据库。因此,您需要使用数据库管理系统(如MSSQL Server Management Studio)创建一个新的Database,并确保您对其具有足够的权限。然后,将您的数据库连接字符串添加到StableDiffusion.config文件中,并更改一些其他设置,例如端口号和SSL证书等。您还需要指定用于启动WebUi的帐户和密码。 一旦您完成了这些准备工作,就可以启动安装向导了。双击Install.bat脚本文件,它会自动安装Stable Diffusion WebUI,并将相关的文件复制到服务器上的指定目录中。安装程序还可以安装.NET框架和其他必要的组件(如IIS和ASP.NET)。 最后,您可以尝试连接到WebUI界面并登录到您的CodePlex项目。在您经过手动或自动设置后,您可以使用Stable Diffusion WebUI的各种功能来管理代码版本控制、问题跟踪、建立代码合并请求等等。它非常方便、强大,是一个非常受欢迎的开源项目管理工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值