sd很好很强大,关键还开源,可本地化部署。网上的部署手册满天飞,这里只简单记录。
- python:作为新手对python版本和虚拟环境有一些困惑,经历了一些填坑过程。为了之后的兼容,装了python3.10.10。另外,sd的虚拟环境可以用source %sd%/venv/bin/activate激活,来查看、修改sd的python组件。用deactivate命令退出
- 安装:直接git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git,然后到目录里面运行./webui.sh,sd会自己安装需要的组件。有些组件会需要较长时间。
- 组件:sd运行必须的组件它自己会去安装,安装慢的的解决方法大概有以下几种:
- github加速:如gfpgan等。修改launch.py,找到gfpgan_package=os.environ.get('GFPGAN_PACKAGE',"git+https://github.com/TencentARC/GFPGAN.git@...")改成:gfpgan_package=os.environ.get('GFPGAN_PACKAGE',"git+https://ghproxy.com/https://github.com/TencentARC/GFPGAN.git@...")
- pip加速:使用国内镜像
- 安装网络扩展:想要从网络安装扩展就只能以本地方式启动,但远程服务器上这个问题无解。可以直接在extensions目录下git clone https://github.com/...,然后再正常启动
- extra中需要的模型:本地没有时sd会启动从网络下载并在命令行打出从哪下载到哪,这时可以用迅雷等工具去下,然后手工放到目标目录。
- 启动:sd的启动命令参数很多,可以把参数放到webui-user.sh文件的export COMMANDLINE_ARGS=""中,也可以在执行时指定。我用到的如下:
- --listen:将侦听0.0.0.0地址,从网络可以访问
- --port 7861:修改默认端口为7861
- --xformers:这个功能还没用到,加了这个参数会自动安装xformers模块
- --device-id 1:使用第2张显卡。默认为0,也就是第一张显卡