stable diffusion-部署

  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加速:使用国内镜像
    • 安装网络扩展:想要从网络安装扩展,需要带--enable-insecure-extension-access启动,然后在web上装,或者直接在extensions目录下git clone https://github.com/...,然后再正常启动
    • extra中需要的模型:本地没有时sd会自动从网络下载,并在命令行打出日志从哪下载到哪,这时可以用迅雷等工具去下,然后手工放到目标目录。
    • 汉化:安装插件,或者从https://github.com/VinsonLaro/stable-diffusion-webui-chinese.git中拿到汉化文件(chinese-all-0306.jsonchinese-english-0306.json)放到stable-diffusion-webui\localizations目录下,然后在设置、user interface中选择即可。
    • controlnet:这个复杂一点,需要先安装插件(https://github.com/Mikubill/sd-webui-controlnet.git),然后下载模型文件(*.pth)放到对应目录(stable-diffusion-webui/extensions/control-net/models)。
  • 启动:sd的启动命令(webui.sh)参数很多,可以把参数放到webui-user.sh文件的export COMMANDLINE_ARGS=""中,也可以在执行时指定。我用到的如下:
    • --listen:将侦听0.0.0.0地址,从网络可以访问
    • --port 7861:修改默认端口为7861
    • --xformers:这个功能还没用到,加了这个参数会自动安装xformers模块
    • --device-id 1:使用第2张显卡。默认为0,也就是第一张显卡。据说要设置环境变量CUDA_VISIBLE_DEVICES=0,1,2,3...。在webUI.py中设置:os.environ[CUDA_VISIBLE_DEVICES]="0,1,2,3";或者直接export这个环境变量
  • 备忘:
    • git版本过低,报错C参数不支持,升级git
    • 使用CLIP反推时报错:使用该功能会自动下载”model_base_caption_capfilt_large.pth“等文件,下载完成后报“downloading default CLIP interrogate categories: FileExistsError”,原因是还需要interrogate相关文件。下载解压后连目录一起放到sd的根下,然后删除interrogate_tmp文件夹即可。还是网络问题。具体参看:https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/7193。
posted @ 2023-03-31 11:17  badwood  阅读(2232)  评论(0编辑  收藏  举报
Badwood's Blog