RuntimeError: Couldn't install gfpgan

背景

https://cloud.tencent.com/act/pro/gpu-study?from=20318

tx云打折活动买来一台有V100(32G大显存)的云服务器,但是安装SD的时候由于网络原因出现各种问题:

  1. sd本身没法从github下载下来
  2. sd下载下来没法安装,也就是出现RuntimeError: Couldn't install gfpgan
  3. gfpgan安装后还有组件需要从github上下载
  4. huggingface目前畅通,但是c站模型是无法直接下的

首先对于问题1是容易解决的,直接本地从sdui官方页面下载(https://github.com/AUTOMATIC1111/stable-diffusion-webui)上传上去完事儿。

然后就是在服务器对应目录下运行./webui.sh

RuntimeError: Couldn't install gfpgan

这个时候由于网络问题会出现上面这个报错。解决方法也很简单,同样从github下载当本地让后传到服务器,这个借助tx的图形界面,它是自带sftp快捷方式,只要把本地文件拖动到那个命令行就可以上传。但是有一个问题必须特别注意——安装前必须切换到sdui所运行的虚拟环境!本地环境安装无效!

虚拟环境就在sd主目录下的venv里面!如果没有,再次进入sd目录下的sd目录下,一定存在一个venv(前提是你之前启动过./webui.sh)因为在启动这个脚本之后,它会创建一个运行sdui的虚拟环境。

确定存在之后,执行:

source yourpath/stable-diffusion-webui/venv/bin/activate

gfpgan可能需要特定版本的,现行版本可不可以没有测试。我是在github下载的脚本中指定版本,这是一个2022年的提交

GFPGAN-8d2447a2d918f8eba5a4a01463fd48e45126a379

然后切换到gfpgan的目录下执行安装指令(来自https://github.com/TencentARC/GFPGAN/tree/8d2447a2d918f8eba5a4a01463fd48e45126a379):

# Install basicsr - https://github.com/xinntao/BasicSR
# We use BasicSR for both training and inference
pip install basicsr

# Install facexlib - https://github.com/xinntao/facexlib
# We use face detection and face restoration helper in the facexlib package
pip install facexlib

pip install -r requirements.txt
python setup.py develop

# If you want to enhance the background (non-face) regions with Real-ESRGAN,
# you also need to install the realesrgan package
pip install realesrgan

安装好之后通过deactivate回车退出虚拟环境。继续执行./webui.sh会出现另一个网络相关的问题

卡死在Cloning

例如

Cloning Taming Transformers into /home/ubuntu/stable-diffusion-webui-master/stable-diffusion-webui/repositories/taming-transformers...

这次换个方法,就是现成的安装好的sdui把组件搞下来,再上传到对应位置

它实际是缺少下面这个文件夹rep...中的东西:

stable-diffusion-webui/repositories$ ls
BLIP  CodeFormer  k-diffusion  stable-diffusion-stability-ai  taming-transformers

总之,从其他地方打包这个文件夹,上传上去解压到正确的位置就好了。

关于模型

hg目前是畅通的,要啥直接wget就行了,但是c站是无法畅通的,还是借助最开始的方法,在可以畅通的地方中转一下即可。controlnet尽量自己手动下载到对应的位置去,而不是借助ui去安装,这个需要特殊的启动指令,而且感觉失败率还比较高。

远程访问

建议./webui.sh --listen然后借助公网ip:7860(被占用的话就是另外一个)访问即可。访问前需要在tx云控制台添加安全组规则。

官方貌似也有弄好的包含sd的docker镜像,但是我看了一下那个版本比较旧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章