Windows环境部署stable diffusion web UI

529次阅读

Windows环境部署stable diffusion web UI

前言

  • 这是给纯小白的教程,示范怎么部署stable diffusion web UI(以下简称SD),适合只懂普通电脑基本操作,没有IT经验的又想跑跑图玩或者先试试水再去考虑是否购置硬件入坑的人群。
  • 相对整合包,这个教程部署的是项目原版,跟一键安装差不多,全程没有太多操作。也没有在初始就安装一些你可能不需要用的插件和模型,消耗资源更少一些(整合版一般就算不跑图,单纯开着网页也会占1G内存)。
  • 整合包的话,有些插件会有BUG或者网页卡死,新手可能会觉得莫名其妙不知道怎么处理。如果不介意一键启动整合包,可以B站搜索“秋葉aaaki”。
    Windows环境部署stable diffusion web UI
  • 更多详细进阶使用教程可以自行网上搜索。
    基于Windows版本,原项目作者提供了2种安装方式,这是最简单的一种,接近傻瓜式
    以下全部内容操作均需要魔法上网途径,使用魔法时建议开TUN模式(无法或者不懂魔法上网的,建议直接用秋叶发布的SD整合包)

部署前准备

人员要求

  1. 懂电脑日常的基本操作,知道什么是windwos命令行、powershell,搞懂计算机领域的内存、显存、存储空间的概念和区别。
  2. 懂科学上网,知道什么是github
  3. 懂基础英语,会用翻译途径

基本软硬件要求

  1. CPU:经测用I5四代左右都行,没太高要求,可是不要太老的CPU
  2. 内存:16G起步,虚拟内存设置16-32G左右。经测在16G物理内存环境下,使用6.4G基底模型,设置8G虚拟内存的话,SD运行加载时大几率会崩溃,启动SD后开个QQ,QQ都会崩溃。同样在设置16G-24G虚拟内存下,使用6.4G基底模型,切换大模型也存在SD程序直接崩溃的情况。所以16G物理内存的话,建议设置虚拟内存为:32G。
    (给小白扫盲:虚拟内存的作用只是让你电脑在运行时,当内存不足的情况下把一部分需要用的内存转移到硬盘内的虚拟内存从而防止程序崩溃中断,并不是能让电脑加速和替代物理内存,虚拟内存设置得越大,系统反而越慢,相关知识请在网上自行科普)
    Windows环境部署stable diffusion web UI

  3. 硬盘空间:使用固态硬盘可以大幅度加快模型加载,完成初始部署后,大概占用10G空间。这里建议SD运行目录所在的分区预留100G左右,实际初始会用30G,后续可能会加上虚拟内存和模型(大部分基底模型都在6.4G左右,使用时请留意自身电脑存储空间)。

  4. 显卡:英伟达独显,推荐8G起步,最低2G,要求支持CUDA(只要不是太老的显卡基本都支持CUDA)。
    alt+x,选择 windows power shell (管理员)以下(简称PS),运行:nvidia-smi,查看是否有类似如下信息:

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 566.36 Driver Version: 566.36 CUDA Version: 12.7 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce GT xxxx WDDM | 00000000:01:00.0 On | N/A |
|100% 43C P0 N/A / xxW | xxxxMiB / xxxxMiB | xx% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 252 C+G ....Search_cw5n1h2txyewy\SearchApp.exe N/A |
| 0 N/A N/A 1316 C+G ....Search_cw5n1h2txyewy\SearchApp.exe N/A |
| 0 N/A N/A 1464 C+G C:\Windows\System32\dwm.exe N/A |
| 0 N/A N/A 1868 C+G ...\Huorong\Sysdiag\bin\HipsDaemon.exe N/A |
| 0 N/A N/A 2644 C+G C:\Program Files\Tencent\QQNT\QQ.exe N/A |
| 0 N/A N/A 6380 C+G ...CBS_cw5n1h2txyewy\TextInputHost.exe N/A |
| 0 N/A N/A 8664 C+G C:\Program Files\Tabby\Tabby.exe N/A |
| 0 N/A N/A 8860 C+G C:\Windows\explorer.exe N/A |
| 0 N/A N/A 11032 C+G ...t.LockApp_cw5n1h2txyewy\LockApp.exe N/A |
| 0 N/A N/A 11756 C+G ...n\131.0.2903.112\msedgewebview2.exe N/A |
| 0 N/A N/A 12532 C+G ...al\Programs\Bitwarden\Bitwarden.exe N/A |
| 0 N/A N/A 12896 C+G ...5n1h2txyewy\ShellExperienceHost.exe N/A |
| 0 N/A N/A 13360 C+G ...oogle\Chrome\Application\chrome.exe N/A |
| 0 N/A N/A 13888 C+G ...crosoft\Edge\Application\msedge.exe N/A |
| 0 N/A N/A 19600 C D:\sd.webui\system\python\python.exe N/A |
+-----------------------------------------------------------------------------------------+

如果CUDA为空白,则请尝试安装最新驱动,如果还是不行,则说明显卡不支持CUDA)

  1. 软件环境:Windows 10、科学上网手段

可以AMD显卡或者用CPU核显跑,可是真不建议

部署stable diffusion web UI

  1. 到项目主页:https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.0.0-pre 下载sd.webui.zip

  2. 解压到你需要部署的地方,例如:D:\sd.webui(以下都假设你解压到这个目录中)

  3. 进入解压后的该目录(这里假设你解压在D:\sd.webui)

  4. 双击 update.bat ,此时会弹出一个命令行窗口,会自动将 web UI 更新到最新版本,并且自动下载依赖,等到完成后再关闭窗口(期间如果长时间没反应,请打开任务管理器,关注查看Python这个进程。留意自身网卡有没有网速,CPU、硬盘之类有没有占用率浮动,有则证明在工作。命令行窗口有时候会在你切换到其他界面后停止刷新,这时候需要,点击一下命令行窗口,在按一下回车才能恢复刷新。如果还是没有反应,请尝试ctrl+c中断后重来)

  5. 双击 run.bat 启动 web UI(期间如果长时间没反应,参考上一步。在第一次启动时它会下载大量文件。等待下载和安装正确后,会自动打开浏览器,并跳转到链接显示 web UI 界面。

到目前为止已经开始可以使用了,可以直接在正面提示词中(第一个文本框,意思是你期望出现的效果)输入:((masterpiece)), best quality, illustration, 1 girl, beautiful,beautiful detailed sky, catgirl,beautiful detailed water, cinematic lighting, dramatic angle, Grey T-Shirt, (few clothes),(yuri),(medium breasts),white hair,cat ears,masturbation,bare shoulders ,(gold eyes),wet clothes

反向提示词(第二个文本框,意思是你不希望出现的效果)输入:lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, bad feet

点击右上角橙色generate按钮生成,如无意外,就可以生成一张图片了,右下方会有图片生成预览区和进度条。

Windows环境部署stable diffusion web UI
生成出来的图片文件在D:\sd.webui\webui\outputs\txt2img-images
生成速度视乎你的硬件配置和生成参数,一般分辨率、Sampling steps越大消耗资源越多,也就越慢。

在同样生成参数下,低配机会明显感觉初始第一次生成会起步比第二次较慢,如上图生成参数:2G显存默认值下,大概1分钟一张,6G显存默认值下,大概30秒一张。

期间观察Windows的任务管理器中:GPU、GPU内存,硬盘、内存三个硬件有没有浮动占用率,如果有则证明在工作,只是速度慢。

关闭命令行窗口的话SD就会退出,以后再运行,双击run.bat即可

示范模型生成

在这里提供两个模型,生成一个原神角色。其他模型请自行网上搜索。

  1. 下载基础模型6G+(基底模型,2个文件一个checkpoint,一个VAE):https://civitai.com/models/257749?modelVersionId=290640

  2. lora模型(辅助模型,如动作、角色、画面风格等,1个文件):https://civitai.com/models/393901?modelVersionId=834400

  3. 下载好后,打开网页:https://spell.novelai.dev/ ,把3个模型文件,依次拖进去,网页会告诉你文件应该放在D:\sd.webui\webui中的哪里。

  4. 配置以下UI界面方便调用模型,进入setting后如下设置:
    Windows环境部署stable diffusion web UI

  5. 在主界面中选择基底模型和VAE:

    Windows环境部署stable diffusion web UI

要注意lora文件名和提示词调用参数的一致性,如:下载文件名为vny-pony-Tanger-0003.safetensors,可是提示词调用为<lora:vny-pony-Tanger:0.8>则需要修改好文件名称保持一致:

  • 假设下载的文件名为:vny-pony-Tanger.safetensors
  • 提示词库中显示为:<lora:vny-pony-Tanger:0.8>
  1. 简单测试一下,输入正面提示词:
<lora:vny-pony-Tanger:0.8>,vny, dress, default clothes, 1girl, solo, blue eyes, long hair, hat, thighhighs, blonde hair,black elbow gloves, bare shoulders

更多提示词请参考:https://www.fszx-ai.com/tags/

  1. 点击生成并等待完成。因为只是测试,这里生成的图片没有改动其他参数,生成的图片会很简陋粗糙,详细参数教程请看:https://guide.novelai.dev/guide/install/sd-webui

对低配机的补充

硬件是主要客观因素,以下建议都是提升能力有限的。以下的大多数原因基本都是因为显卡内存不够大、电脑配置偏低引起的,所以能够提升生成速度和软件稳定性的主要因素还是硬件,使用更好的显卡几乎可以解决以下9成问题

关于对GPU、CPU超频

几乎没作用,只是感觉在加载、初始化时候快了一些,还有就是在你跑图时候做其他事情稍微减轻卡顿,总体没有必要。而且会导致生成时候不稳定,例如程序假死、进度不同步等,其实低端配置超频也起不了大作用,反而折损硬件寿命和增加不稳定性。不要降频,降频却明显降慢速度

无法正常运行

如果你是低配机,例如显存只有4G 2G,而又你无法启动SD,或者无法生成图片、生成速度极慢。这种情况则可能需要如下检测后,并加入参数运行:
1. 在PS输入:cd D:\sd.webui\system\,然后按以下顺序依次输入:

./python
import torch
print(torch.__version__)
print(torch.cuda.is_available())

如果出现 True 字样则正常,可以继续以下操作,否则请重新部署。
2. 对D:\sd.webui\webui中的webui-user.bat右击选编辑
3. 在set COMMANDLINE_ARGS=后加入--lowvram --xformers这两个运行参数,即:set COMMANDLINE_ARGS=--lowvram --xformers
4. 重新运行run.bat,这次运行会自动下载xformers(优化程序),之后才会启动并自动进入SD网页,
5. 进入SD网页界面后,点击setting,选中左则Optimizations右则出显的Cross attention optimization中选择xformers,点击Apply settings保存,然后点击reload UI
6. 现在运行生成图片,应该就可以了。

小部分优化运行参数:

--xformers使用 xFormers 库,大大提高了内存消耗和速度,只支持Nvidia。
--lowvram低显存优化(低于4G显存)。
--medvram中等显存优化(4-8G显存)。
--listen开启监听,允许局域网其他主机访问SDWebUI网页,开启后不会自动打开浏览器进入并且不能在UI内下载插件,局域网内其他主机需要在浏览器地址栏输入:你的IP:7860
--port设置/更改网页的访问端口,例子--port 7861则需要在你的IP:7861打开

  • 部分优化项解释
    在 显存 数量较少(<=4GB)的显卡上运行时,可能会出现显存不足错误。可以通过命令行参数启用各种优化,以牺牲部分或者大量速度为代价来使用较少的 显存:

    • 使用--opt-sdp-no-mem-attention或可选依赖项--xformers可以将许多卡上的 GPU 内存使用量减少一半。
    • 如果您有 4GB 显存 并且想要制作约 1.3 倍大的图像,用--medvram
    • 如果您有 4GB 显存,但在使用时出现内存不足错误请从--medvram,改用--lowvram --always-batch-cond-uncond

    • 如果您有 4GB 显存 并且想要制作比您所能处理的更大的图像从--medvram,改 --lowvram

    • 如果您有 4GB 显存 并且在加载全重模型时出现内存不足错误,加入--disable-model-loading-ram-optimization

低配机建议优化(低于4G显存)

  • 优化参数:set COMMANDLINE_ARGS=--lowvram --xformers

  • 禁用SD内Python程序的共享GPU内存以加快速度
    如果你在任务管理器内,看见,GPU内存大于专用GPU内存则表示Python让显卡不足时候占用了系统运行内存。原因是,较新版本的英伟达显卡驱动,安装后默认是会让显卡在显存不足时共享电脑的运行内存,从而防止程序因为显存不足时崩溃。在低配置电脑情况下这会导致跑图速度会很慢,可以关闭这个功能,从而提升跑图速度。可是这个方法可能导致生成参数在大分辨率的情况下显存不足而停止,如果需要,请按以下流程操作(如果显存足够,或者不介意速度慢可以忽略):

    1. 首先参考以下链接方法:https://nvidia.custhelp.com/app/answers/detail/a_id/5490 (中文选项如下图,选择偏好无系统内存回退操作后需要重新启动SD)
      Windows环境部署stable diffusion web UI

    2. 尝试设置 max_split_size_mb 以避免碎片(如果你在上一部操作后,在跑图没出现中断情况,也可以省略这一步),在webui-user.bat中的call webui.bat前增加一行set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.9,max_split_size_mb:512,即如下:

@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--lowvram --xformers
set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.9,max_split_size_mb:512
call webui.bat

更多详细参数,详见后面参考文章。

生成问题

  • 如果生成图片时候,上一次生成和下一次都使用了相同模型和参数,却出现预览图进度条过了很久都还是雪花,或者完全看不出你要的效果轮廓并只有一堆像颜料一样的物体时,那估计是你添加了模型不能识别、兼容的提示词,需要自己逐步排查到底哪个提示词出现了问题,并把这个提示词删除。
    注意:提示词不至于是通用的,例如有些角色和动作的提示词要似乎基底大模型里头有没有这个角色,假设A模型有B模型没有,而你在B模型加了这个角色或者动作之类的提示词,轻则角色不对或者提示词不生效,重则为上述这种情况。这方面还涉及到提示词权重因素,详细请百度。

  • 低于4G显存时,关于选择生成图片大小
    不建议设置分辨率高于:1024x1024836x1216,也不建议生成时候开启Hires. fix高清修复,因为起步分辨率已经很低,起不了太大作用,例如:当你开启高清修复后,你要生成一张832×1216的图的话那就是416×608了,Hires. fix是需要一个小画面,再通过放大算法放大的,默认放大的倍数为2。低配机下起步分辨率通过这种方法放大效果很有限,消耗资源和时间也多,例如其实你想要832×1216的分辨率,因为硬件性能因素,所以你只能从选择412×608低基础分辨率起步,它会先从412×608的基础上二次放大,结果是生成出来的图确实会比不经过高清修复的图会好些精细些,可是你会发现图片内容的镜头会被拉得很近,视觉很局限。同时也容易导致程序因为显存不足而中断并且增加消耗时间。所以,假设你需要一张1024×1024的图,那就直接长宽数填入1024×1024,不要填入512×512后开启高清修复,除非你想生成一些特写照、大头照。
    正常情况下,通过高清修复算法的放大出来的图固然是比直接生成好的,但是如果你碍于硬件性能瓶颈,那确实是没有办法的事情。除非你一直开启显卡的共享内存功能,同时又不介意生成速度极慢,那么你可以开启。经测在2G显存环境下,开启显卡共享内存是可以超出832×1216、1024×1024的的话,如1280×1080,耗时接近一小时一张图,效率好低。最佳的解决办法只能是使用更好的显卡

关于SD启动运行WEB UI时候的问题

  • 启动后不要急着马上生成图片,因为有一部分东西(尤其是装了插件后)例如插件还没加载完,即使浏览器被自动打开。
  • 启动了xfomers后,不要马上生成,等待命令行窗口出现Applying attention optimization: xformers... done后稍等几秒在继续操作。
  • 以上问题,建议在生成前刷新一次浏览器,然后如下图刷新插件Windows环境部署stable diffusion web UI,之后在预览区的左侧分别点击checkpointslora的选项卡中的刷新图标。
    如果,点击后很久都没跑完进度条,那么证明还没加载好。

  • 关于生成图片中途假死
    有时候感觉是没有释放资源,当你在跑图过程中,网页进度条和命令行进度条都是不动的,而且预览区图片也没有变化,请看看任务管理器里头python进程有没有CPU、内存、GPU占用率浮动(如下图),Windows环境部署stable diffusion web UI
    如果没有浮动,或者显卡只是被占着显存而GPU却没有动作,那大概率是程序假死了,在网页点击setting进入actiong,尝试点击以下两个按钮,一般情况下可以恢复进度(在这之前不要点击中断生成),此操作并不是百分百成功的。如果依然没有反应,那这种情况下只能重开SD了。
    Windows环境部署stable diffusion web UI

参考文章

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-NVidia-GPUs

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Optimizations

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Command-Line-Arguments-and-Settings

https://guide.novelai.dev/guide/install/sd-webui

[toc]

正文完
post-qrcode
 0