Windows使用Stable Diffusion进行AI画图(GPU)¶
引言¶
https://github.com/CompVis/stable-diffusion
Stable Diffusion is a latent text-to-image diffusion model.
Stable Diffusion是近年来流行的AI生成图片工具,这里尝试在Windows系统电脑上使用GPU进行图片生成。
准备工作¶
- 1)、Windows11系统,提前安装好Git工具(https://git-scm.com/download/win)
- 2)、电脑内存16GB以上,否则电脑会很卡,即使有显卡也发挥不了作用
- 3)、相对顺畅的网络,需要频繁访问github下载大量文件,这部分文件可以预下载放到对应位置
- 4)、NVIDIA显卡,这里使用的是RTX3080
Windows开启SSH服务¶
因为日常使用一台Mac,然后另有一台Windows台式机带GPU用于生成图片,采用SSH登录Windows方式进行操作:
- 进入【设置】-【应用】-【可选功能】-【OpenSSH服务器】-【安装】, 也可以使用PowerShell方式进行安装:
$ Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
$ Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Path :
Online : True
RestartNeeded : False
- 管理员身份启动Powershell来开启SSH服务:
$ Start-Service sshd # 启动服务
$ Set-Service -Name sshd -StartupType 'Automatic' # 设置开启自动启动服务
$ Get-NetFirewallRule -Name *ssh* # 查看防火墙是否放行
Name : OpenSSH-Server-In-TCP
DisplayName : OpenSSH SSH Server (sshd)
Description : Inbound rule for OpenSSH SSH Server (sshd)
DisplayGroup : OpenSSH Server
Group : OpenSSH Server
Enabled : True
......
Miniconda工具与Python 3.10.6虚拟环境¶
- 下载对应版本的Miniconda安装好(https://docs.conda.io/en/latest/miniconda.html):
- 修改配置:
$ conda config --set show_channel_urls yes
$ conda config --show-sources
==> C:\Users\lesliezhu\.condarc <== # 手动修改这个文件
channels:
- defaults
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
show_channel_urls: True
$ conda clean -i # 清理缓存索引
- 创建Python 3.10.6虚拟环境:
$ conda create -n sd python=3.10.6
$ conda info --envs
# conda environments:
#
C:\Users\lesliezhu\miniconda3\envs\sd
base D:\Anaconda3
$ conda activate C:\Users\lesliezhu\miniconda3\envs\sd
$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
Writing to C:\Users\lesliezhu\AppData\Roaming\pip\pip.ini
$ python -m pip install --upgrade pip
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: pip in c:\users\lesliezhu\miniconda3\envs\sd\lib\site-packages (23.0.1)
CUDA 11.7工具¶
通过命令nvidia-smi
查看对应的CUDA版本,然后下载对应工具包(https://developer.nvidia.com/cuda-toolkit-archive):
$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 517.02 Driver Version: 517.02 CUDA Version: 11.7 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... WDDM | 00000000:01:00.0 On | N/A |
| 30% 32C P8 20W / 320W | 436MiB / 10240MiB | 3% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 2000 C+G C:\Windows\System32\dwm.exe N/A |
| ...... |
+-----------------------------------------------------------------------------+
stable-diffusion-webui项目源码¶
- 下载stable-diffusion-webui:
$ git --version
git version 2.36.1.windows.1
$ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
$ cd stable-diffusion-webui/
下载模型¶
- 官方模型(checkpoint模型):
- https://huggingface.co/CompVis/stable-diffusion-v-1-4-original
- https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt
- https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4-full-ema.ckpt
- https://civitai.com/models/6424/chilloutmix
- 该类模型存放目录:stable-diffusion-webui/models/Stable-diffusion/
- LoRA模型:
- https://civitai.com/models/11619/korean-doll-likenesss
- 该类模型存放目录:stable-diffusion-webui/models/Lora/
网站( https://civitai.com/models )上各种模型都有,文件比较大,下载好放到对应目录即可。
启动¶
$ cd stable-diffusion-webui/
$ conda activate C:\Users\lesliezhu\miniconda3\envs\sd
$ webui-user.bat
如果顺利,执行完打开: http://127.0.0.1:7860 即可使用了。
WebUI使用¶
目前使用的不太熟练,记录这么几点:
- 从模型网站上很多图片生成例子,复制其参数后,点击【箭头】可以自动读取参数内容
- 右侧【Save Style】可以将现有参数命名保存起来
- 右侧【Show Extrac Networks】可以显示其他Lora模型等
- 下方【Batch count】是一次生成多少张图片,默认是1张,建议4张
- 下载的Lora模型注意文件名和复制过来参数是否一致
- 根据自己SD版本下载支持的模型文件,否则会出现兼容问题,这里是SD-1.4
其它¶
- 可以修改文件
launch.py
里面的github网站链接,加上代理前缀https://ghproxy.com/
以加速下载,也可能导致更慢 - 可以在
webui-user.bat
里面设置额外参数,比如:
$ type webui-user.bat
@echo off
set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:32 # GPU内存可能出现不足错误
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=
call webui.bat
- 微信搜索: 「 MinYiLife 」, 关注公众号!
- 本文链接: https://www.lesliezhu.com/blog/2023/03/14/use_StableDiffusion_gen_photo_with_gpu_on_windows/
- 版权声明: 原创文章,如需转载请注明文章作者和出处。谢谢!