【A卡,Windows】stable diffusion webui下载安装避坑指南

[复制链接]
查看1166 | 回复0 | 2023-8-9 10:31:21 | 显示全部楼层 |阅读模式
观前提醒

本文内容都是本人亲身经历的,一个一个安装下载测试所感,当然如果你更想用傻瓜式集成包的,那还是跳过这篇文章吧。
当然我不推荐这篇文章的操作,因为我用了差不多1h才有一副图,有N卡,就用N卡,这只是无奈之举而已,方便那些像我一样暂时没有换机子打算的人群,现在主机显卡其实也不贵。
N卡的可以参考这篇文章https://blog.csdn.net/binzai_16/article/details/130216343,但是注意还是要结合这篇文章的避坑指南,不然后续要拿时间去弥补之前所犯的错误。
正文

把该下的东西都下好,就如下的目录清单。


  • git https://git-scm.com/download/win
  • python 3.10.6 https://link.zhihu.com/?target=https%3A//www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe
  • 魔法上网 自己想办法找,这个我不好推荐
避坑1:一开始不要急着gitclone后就打开webui-user.bat

1.1 建议使用如下git clone写法

之所以这样做是避免cd到某个文件夹下时,使用git bash时,提示443或者openSSL等字眼的错误,网上说是网速或者全局的问题,其实也包括权限的问题。
   git clone git的地址 “复制到的本地路径地址\文件夹名”
  比如我的:
   git clone https://github.com/lshqqytiger/stable-diffusion-webui-directml.git “D:\SD”
  1.2 编辑webui-user.bat的第三行如下(因为用A卡)

   set COMMANDLINE_ARGS=–medvram --skip-torch-cuda-test --no-half --precision full --use-cpu all
或者
set COMMANDLINE_ARGS=–precision full --no-half --opt-sub-quad-attention --lowvram --disable-nan-check --autolaunch
  1.3 不使用v1.5SD模型

在文件目录models\Stable-diffusion下放入另一个模型,这是为了避免之后好不容易安装完了,它提示你没有模型,好不容易下载完。
错误提示
   something went wrong。
  如果看到运行webui-user.bat时,还是自己生成了v1.5SD模型,那么之后就删掉它。
因此要到这个下载地址https://cyberes.github.io/stable-diffusion-models/#stable-diffusion-1-4,推荐迅雷下载,下载好后放入到我提到的文件夹中。
1.4 下载rust编辑器

看到这里你肯定会疑惑了,我们不是要用python的吗
这个我也不知道,你下了就对了,不然后面的transformers无法安装
因为是windows到官网选择推荐的下载方式https://www.rust-lang.org/tools/install。

执行文件,输入1即可。

测试是否安装成功。

避坑2:所有的下载都必须git clone,不要本地下载

这是因为git clone下载时会自动有个node tree,我不知道这hash值具体有什么用的,应该类似钥匙,如果本地下载后,它们就会没有这个hash值,运行webui-user.bat时就会提示错误。
错误类似:
   reference is not a tree: 24268930bf1dce879235a7fddd0b2355b84d7ea6
  2.1 在完成上述步骤后,就运行webui-user.bat

等一会,等到命令行工具显示下载installing GFPGAN时,就Ctrl+C停止批量工具操作,这时会产生一个\venv\Scripts的路径。
2.2 git clone命令与相应操作如下(看自己安装目录更改)

使用git bash工具
  1. git clone https://github.com/TencentARC/GFPGAN.git "D:\SD\venv\Scripts\GFPGAN"
复制代码
之后在命令行到D:\SD\venv\Scripts\GFPGAN输入如下的命令。
  1. D:\SD\venv\Scripts\python.exe -m pip install basicsr facexlib
  2. D:\SD\venv\Scripts\python.exe -m pip install -r requirements.txt
  3. D:\SD\venv\Scripts\python.exe setup.py develop
  4. D:\SD\venv\Scripts\python.exe -m pip install realesrgan
复制代码
然后到下载open_clip,也是同样的git bash
  1. git clone https://github.com/mlfoundations/open_clip "D:\SD\venv\Scripts\open_clip"
复制代码
命令行到D:\SD\venv\Scripts\open_clip输入如下的命令。
  1. D:\SD\venv\Scripts\python.exe setup.py build install
复制代码
也是同样的操作到CLIP
  1. git clone https://github.com/openai/CLIP.git "D:\SD\venv\Scripts\CLIP"
复制代码
到相应的目录下,输入如下命令
  1. D:\SD\venv\Scripts\python.exe -m pip install ftfy regex tqdm
  2. D:\SD\venv\Scripts\python.exe setup.py build install
复制代码
2.3 gitclone与安装依赖

其实操作也跟2.2类型,相应操作也是合起来如下,没有repositories文件夹,就自己新建一个:
  1. git clone https://github.com/Stability-AI/stablediffusion.git "D:\SD\repositories\stable-diffusion-stability-ai"
  2. git clone https://github.com/CompVis/taming-transformers.git "D:\SD\repositories\taming-transformers"
  3. git clone https://github.com/crowsonkb/k-diffusion.git "D:\SD\repositories\k-diffusion"
  4. git clone https://github.com/sczhou/CodeFormer.git "D:\SD\repositories\CodeFormer"
  5. git clone https://github.com/salesforce/BLIP.git "D:\SD\repositories\BLIP"
复制代码
但是要到上面涉及到的每个目录下,检查是否有requirements.txt文件,有就到对应目录的命令行,执行如下命令
  1. D:\SD\venv\Scripts\python.exe -m pip install -r requirements.txt
复制代码
2.4 pip transformers时,麻烦的tokenziers错误

解决方案:网络问题,试多几次(这里我用了差不多3~4h弄成功了)

尽管之前已经安装好了rust编辑器,但是它还会提示各种千奇百怪的错误,比如我下面这个。
  1. Building wheels for collected packages: tokenizers
  2.   Building wheel for tokenizers (pyproject.toml) ... error
  3.   error: subprocess-exited-with-error
  4.   × Building wheel for tokenizers (pyproject.toml) did not run successfully.
  5.   │ exit code: 1
  6.   ╰─> [62 lines of output]
  7.       running bdist_wheel
  8.       running build
  9.       running build_py
  10.       creating build
  11.       creating build\lib.win-amd64-cpython-310
  12.       creating build\lib.win-amd64-cpython-310\tokenizers
  13.       copying py_src\tokenizers\__init__.py -> build\lib.win-amd64-cpython-310\tokenizers
  14.       creating build\lib.win-amd64-cpython-310\tokenizers\models
  15.       copying py_src\tokenizers\models\__init__.py -> build\lib.win-amd64-cpython-310\tokenizers\models
  16.       creating build\lib.win-amd64-cpython-310\tokenizers\decoders
  17.       copying py_src\tokenizers\decoders\__init__.py -> build\lib.win-amd64-cpython-310\tokenizers\decoders
  18.       creating build\lib.win-amd64-cpython-310\tokenizers\normalizers
  19.       copying py_src\tokenizers\normalizers\__init__.py -> build\lib.win-amd64-cpython-310\tokenizers\normalizers
  20.       creating build\lib.win-amd64-cpython-310\tokenizers\pre_tokenizers
  21.       copying py_src\tokenizers\pre_tokenizers\__init__.py -> build\lib.win-amd64-cpython-310\tokenizers\pre_tokenizers
  22.       creating build\lib.win-amd64-cpython-310\tokenizers\processors
  23.       copying py_src\tokenizers\processors\__init__.py -> build\lib.win-amd64-cpython-310\tokenizers\processors
  24.       creating build\lib.win-amd64-cpython-310\tokenizers\trainers
  25.       copying py_src\tokenizers\trainers\__init__.py -> build\lib.win-amd64-cpython-310\tokenizers\trainers
  26.       creating build\lib.win-amd64-cpython-310\tokenizers\implementations
  27.       copying py_src\tokenizers\implementations\base_tokenizer.py -> build\lib.win-amd64-cpython-310\tokenizers\implementations
  28.       copying py_src\tokenizers\implementations\bert_wordpiece.py -> build\lib.win-amd64-cpython-310\tokenizers\implementations
  29.       copying py_src\tokenizers\implementations\byte_level_bpe.py -> build\lib.win-amd64-cpython-310\tokenizers\implementations
  30.       copying py_src\tokenizers\implementations\char_level_bpe.py -> build\lib.win-amd64-cpython-310\tokenizers\implementations
  31.       copying py_src\tokenizers\implementations\sentencepiece_bpe.py -> build\lib.win-amd64-cpython-310\tokenizers\implementations
  32.       copying py_src\tokenizers\implementations\sentencepiece_unigram.py -> build\lib.win-amd64-cpython-310\tokenizers\implementations
  33.       copying py_src\tokenizers\implementations\__init__.py -> build\lib.win-amd64-cpython-310\tokenizers\implementations
  34.       creating build\lib.win-amd64-cpython-310\tokenizers\tools
  35.       copying py_src\tokenizers\tools\visualizer.py -> build\lib.win-amd64-cpython-310\tokenizers\tools
  36.       copying py_src\tokenizers\tools\__init__.py -> build\lib.win-amd64-cpython-310\tokenizers\tools
  37.       copying py_src\tokenizers\__init__.pyi -> build\lib.win-amd64-cpython-310\tokenizers
  38.       copying py_src\tokenizers\models\__init__.pyi -> build\lib.win-amd64-cpython-310\tokenizers\models
  39.       copying py_src\tokenizers\decoders\__init__.pyi -> build\lib.win-amd64-cpython-310\tokenizers\decoders
  40.       copying py_src\tokenizers\normalizers\__init__.pyi -> build\lib.win-amd64-cpython-310\tokenizers\normalizers
  41.       copying py_src\tokenizers\pre_tokenizers\__init__.pyi -> build\lib.win-amd64-cpython-310\tokenizers\pre_tokenizers
  42.       copying py_src\tokenizers\processors\__init__.pyi -> build\lib.win-amd64-cpython-310\tokenizers\processors
  43.       copying py_src\tokenizers\trainers\__init__.pyi -> build\lib.win-amd64-cpython-310\tokenizers\trainers
  44.       copying py_src\tokenizers\tools\visualizer-styles.css -> build\lib.win-amd64-cpython-310\tokenizers\tools
  45.       running build_ext
  46.       running build_rust
  47.       cargo rustc --lib --message-format=json-render-diagnostics --manifest-path Cargo.toml --release -v --features pyo3/extension-module --crate-type cdylib --
  48.       warning: unused manifest key: target.x86_64-apple-darwin.rustflags
  49.           Updating crates.io index
  50.       warning: spurious network error (2 tries remaining): failed to send request: 鎿嶄綔瓒呮椂
  51.       ; class=Os (2)
  52.       warning: spurious network error (1 tries remaining): failed to send request: 鎿嶄綔瓒呮椂
  53.       ; class=Os (2)
  54.       error: failed to get `env_logger` as a dependency of package `tokenizers-python v0.10.3 (C:\Users\LENOVO\AppData\Local\Temp\pip-install-bw47mt33\tokenizers_3b1650888a634bdab4e4c98d147e7833)`
  55.       Caused by:
  56.         failed to load source for dependency `env_logger`
  57.       Caused by:
  58.         Unable to update registry `crates-io`
  59.       Caused by:
  60.         failed to fetch `https://github.com/rust-lang/crates.io-index`
  61.       Caused by:
  62.         failed to send request: 鎿嶄綔瓒呮椂
  63.         ; class=Os (2)
  64.       error: `cargo rustc --lib --message-format=json-render-diagnostics --manifest-path Cargo.toml --release -v --features pyo3/extension-module --crate-type cdylib --` failed with code 101
  65.       [end of output]
  66.   note: This error originates from a subprocess, and is likely not a problem with pip.
  67.   ERROR: Failed building wheel for tokenizers
  68. Failed to build tokenizers
复制代码
后面我找了网上不少答案,发现它们的回答根本就不统一,后面我问了一下chatGPT,人家的回答如下:
说人话:chatGPT不知道为什么会这样啊?

注意
   其实就是网络问题,跟你的工具版本没关系的,你多试几次,或者找找有没有更快下载的通道
  
错误信息表明在安装过程中构建tokenizers包的wheel文件出现了问题。错误发生在运行cargo rustc命令时,该命令用于编译Rust代码。
具体的错误信息如下:
  1. error: failed to get `env_logger` as a dependency of package `tokenizers-python v0.10.3`
复制代码
这个错误表明构建过程无法获取tokenizers包所需的env_logger依赖项。
错误进一步说明了以下内容:
  1. Caused by:
  2.   Unable to update registry `crates-io`
  3. Caused by:
  4.   failed to fetch `https://github.com/rust-lang/crates.io-index`
  5. Caused by:
  6.   failed to send request: 鎿嶄綔瓒呮椂
  7. ; class=Os (2)
复制代码
这些消息表明更新注册表和获取所需的依赖项时出现了问题。错误信息failed to send request: 鎿嶄綔瓒呮椂表明可能存在网络问题或者crates.io索引的临时问题。
以下是解决该问题的几个步骤:

  • 检查网络连接:确保您拥有稳定的互联网连接,并能够访问外部资源。
  • 重试安装:有时网络问题可能是暂时的。再次尝试运行安装命令,看看问题是否能够解决。
  • 清除pip缓存:pip会缓存软件包以提高安装速度。然而,缓存文件有时会引发问题。您可以尝试通过运行以下命令清除pip缓存:
    1. pip cache purge
    复制代码
  • 指定其他软件包源:您可以尝试从其他软件包源安装该软件包。例如,您可以使用--index-url选项来指定另一个软件包索引:
    1. pip install --index-url https://pypi.python.org/simple/ tokenizers
    复制代码
  • 升级pip和setuptools:过时的pip和setuptools版本有时会引发问题。尝试运行以下命令升级它们:
    1. pip install --upgrade pip
    2. pip install --upgrade setuptools
    复制代码
  • 安装Rust:tokenizers包依赖于Rust。确保您的系统上已安装Rust并且是最新版本。您可以按照官方Rust网站(https://www.rust-lang.org/tools/install)上的说明安装Rust。
如果尝试了这些步骤后问题仍然存在,建议搜索与tokenizers包相关的类似问题或错误消息,看看是否有已知的解决方案或变通方法。您可以在论坛或问题跟踪器上寻找相关信息。
避坑3:正常运行webui-user.bat,测试

如果它莫名其妙自己下载v1.5SD模型,就后续删掉,正常会得到如下结果,

其中Installing requirements不用管它,过会就行了。
输入网址http://127.0.0.1:7860,查看

如果没有在页面上出现something went wrong那么就是成功了
3.1 如果出现 AttributeError: 'NoneType' object has no attribute 'process_texts'错误

回答你问题的网址https://github.com/vladmandic/automatic/issues/382
其实就是你没等SD模型加载完,就开始生图了,过会再尝试就行了
3.2 如果出现RuntimeError: Could not allocate tensor with 402653184 bytes. There is not enough GPU video memory available!

那是因为你在使用A卡的情况下,就算有个16G内存,因为你要调的因子可能需要的算力太大,所以计算机直接不干了,解决的方法如下:


  • 设置webui.bat的配置成medvram,以时间换空间
  • 自己用linux虚拟机
  • 白嫖谷歌的colar的GPU
  • 使用一些SD的插件也同样是牺牲质量换取时间
    具体可以参考这个帖子 https://www.zhihu.com/question/590045937

来源:https://blog.csdn.net/kokool/article/details/130888083
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则