• 【Stable Diffusion系列】(一):AI绘画本地部署教程


    目录

    一、总览

    二、本地部署

    1、安装cuda

    2、安装python

    3、安装git 

    4、方法一 

    1)获取安装包

    2)update

    3)run

    5、方法二 

    1)git clone

    2)双击webui-user.bat

    3)更新 

    6、设置启动参数

    7、可能的问题

    问题一

    问题二

    问题三

    问题四

    问题五

    8、安装ControlNet

    三、模型下载地址

    四、模型简介

    五、后记


    一、总览

    AI技术势头正盛,俨然成为当前人类社会科技树的主分支。不管你是技术人员,还是其他人员,在生活与工作之中,AI已触手可及。从本文起,我将带你迈进AI绘画的大门,从头创造专属于你的虚拟开放世界。

    二、本地部署

    建议事先安装python和cuda。

    1、安装cuda

    cuda安装教程参考专栏文章:http://t.csdnimg.cn/uRr1D

    2、安装python

    python选择3.10.6版本,才可使用。

    Python Release Python 3.10.6 | Python.org

    下拉网页,依据自己的系统选择。

    1自定义安装,2勾选加入系统变量。 

    此页默认

    修改安装地址

     

    等待安装完成即可。

     最后,点击Disable path length limit。可取消系统变量路径长度限制。

    安装完成之后,请换源,具体操作参见:

    http://t.csdnimg.cn/6gFn3 

    pip换源。

    3、安装git 

    官网:Git - Downloads (git-scm.com)

    根据自己的系统下载:

    第一步,直接next

     第二步,修改安装目录

    第三步,可保持默认即可,后续一路默认下去。安装结束。

    4、方法一 

    1)获取安装包

    新建一个空白文件夹,用于放置stable diffusion。

    进入github网址:AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI (github.com)

    选择wiki

    依据自己的系统和显卡,选择合适的安装包。以我来说,选择英伟达显卡版。即第一个。 

    进入这个网址:Release v1.0.0-pre · AUTOMATIC1111/stable-diffusion-webui (github.com) 

    以简单起见,选择安装包即可,不下载源码编译。

    下载完成之后,解压。

    2)update

    双击解压文件夹的update.bat文件,此处将运行系统脚本文件,更新安装包。

    弹出控制台不久,即可完成。

    以后如有更新,即可使用此方法。

    3)run

    运行之前,建议首先配置启动参数,参见下文。

    双击run.bat,运行安装脚本文件。

    使用记事本打开run.bat,可以看到如下内容:

    1. @echo off
    2. call environment.bat
    3. cd %~dp0webui
    4. call webui-user.bat

    简单地说,run,bat其实本身没有什么功能代码,它只做两件事:

    一是调用运行环境脚本,安装相关依赖;二是cd到webui文件夹下,调用webui-user.bat脚本,启动程序。

    所以,我们使用这种方法配置Stable Diffusion时,以后只需点击run.bat启动程序即可,而不能直接点击webui\webui-user.bat启动,因为使用webui-user.bat还得再创建一个虚拟依赖环境去运行程序。

    run.bat的过程中,有部分内容需要科学上网。

    但是,首先,先不要科学上网,直接运行,等待安装完成。

    一部分是依赖下载,但可以通过给python换源解决问题

    一部分是会自动下载"https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors"模型文件

    但这个模型文件下载有问题的,后续还得手动下载。

    各位需要自行发挥。

    这个过程,需要下载不少文件,用时会久一些。

    如果不成功,请看下文目录7可能的问题解决

    最后显示这句话表示完成安装。

    并且浏览器会弹出新窗口,即:

      Running on local URL:  http://127.0.0.1:7860

    关闭浏览器,关闭控制台之后,下次再启动程序,只需双击run.bat脚本即可,切不可直接使用webui-user.bat启动, 只使用它设置启动参数。打开之后,控制台的效果:

    5、方法二 

    1)git clone

    打开github网址:AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI (github.com)icon-default.png?t=N7T8https://github.com/AUTOMATIC1111/stable-diffusion-webui

    复制克隆地址:

    git控制台不支持复制,故,需手动输入

    https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

    这是项目在github的远程仓库地址。 

     

     新建一个空白文件夹用于项目存储位置。

    在如下空白位置右键鼠标,选择Open Git Bash here

     手动输入代码

    git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

     回车等待。

    项目路径下,会下载好文件

    2)双击webui-user.bat

    打开上述文件夹,右键webui-user.bat,建议优先按照下文设置启动参数,再进行操作。

    1. @echo off
    2. set PYTHON=D:\python3106\python.exe
    3. set GIT=
    4. set VENV_DIR=
    5. set COMMANDLINE_ARGS=--autolaunch --update-check --precision full --no-half --no-half-vae --xformers
    6. call webui.bat

    双击webui-user.bat,先不要科学上网,前提已经python换源,耐心的等待依赖下载完成。

    出现这个时:

    科学上网,然后重新运行webui-user.bat,下载模型,虽然不能用,还是得去手动下载的,如方法一一样。 

    此后,使用方法二启动程序,就在stable-diffusion-webui\webui-user.bat脚本。

    3)更新 

    若要更新程序,则在项目文件夹下,空白处右键鼠标,选择Open Git Bash here,输入

    git pull

    6、设置启动参数

    基于方法一,打开webui文件夹,即是我们安装好的stable diffusion。


     基于方法二,打开项目目录下的webui-user.bat

    按官方示例,我们使用webui-user.bat配置stable diffusion启动信息。

    在启动之前,我们设置启动参数。

    右键webui-user.bat,以记事本编辑即可。

    上图可以看出,有四个变量可供我们修改。

    1、set PYTHON

    设置python的路径,不可用stale diffusion给我们的,在上图文件夹里。

    以我为例,我选择安装的python。

    注意:python版本不可高于3.10版本。若不小心使用错了python版本,请直接再下载安装合适的python版本,并将已生成的venv文件夹删除。

    设置代码为(替换为你自己的):

    set PYTHON=D:\python3106\python.exe

    2、set GIT

    设置代码版本管理工具git的启动路径,可不使用,如使用,同python一致。

    不建议设置。设置会出现下文问题五

    set GIT=E:\software\Git\Git\git-bash.exe
    

    3、set VENV_DIR

    设置或者创建python运行虚拟环境,这个不建议修改,因为使用本地的虚拟环境的话,每个工程需要的依赖不同,一虚拟环境多用的话,必然造成臃肿;若要创建虚拟环境,实属没有这个必要,因为会在stable diffusion文件夹下创建venv文件夹,便于管理。

    4、set COMMANDLINE_ARGS

    设置命令行变量是常用的。首先,依据教程设置两个参数:自动打开浏览器和检查更新。

    不同参数之间使用空格隔开,每个参数开头使用--。

    set COMMANDLINE_ARGS=--autolaunch --update-check

     其他可供参考的命令行参数:

    • GPU低VRAM数,即显存,请增加参数"--medvram"或者"--lowvram"。一般8G显存足以,或许会生成速度慢,但无所谓。
    •  避免导出出错,变成黑图或者绿图,添加参数"--precision full"和"--no-half"。
    • 使用vae或者其他模型时,减少出黑图概率,再添加参数"--no-half-vae"
    • N卡显卡建议添加"--xformers",可提速和优化显存。

    最终设置的参数为:不设置git和venv_dir。

    1. set PYTHON=D:\python3106\python.exe
    2. set GIT=
    3. set VENV_DIR=
    4. set COMMANDLINE_ARGS=--autolaunch --update-check --precision full --no-half --no-half-vae --xformers

    其他参数详见:Command Line Arguments and Settings · AUTOMATIC1111/stable-diffusion-webui Wiki (github.com)

    7、可能的问题

    问题一

    RuntimeError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check

    这个问题很大的概率是没有一次性安装好需要的依赖,即运行run.bat脚本时,没有一次性成功。或者中间发生网络波动。这个运行过程很脆弱。

    依方法一部署的话,关闭run.bat的控制台,将system\python\Lib\site-packages文件夹下的文件全数删除,然后重新运行run.bat脚本。

    依方法二,删除venv文件夹即可,重新运行webui-user.bat。

    问题二

    RuntimeError: Couldn't clone Stable Diffusion.

    出现则个问题的原因是,git从远程仓库克隆时,网络出现问题,关闭控制台,方法一重新打开run.bat,方法二重新打开webui-user.bat。再不行就如问题一,删除虚拟环境,在运行。

    问题三

    1. loading stable diffusion model: SafetensorError
    2. ...
    3. safetensors_rust.SafetensorError: Error while deserializing header: MetadataIncompleteBuffer
    4. Stable diffusion model failed to load

     解决方案:手动重新下载这个模型,放到对应文件夹下。

    问题四

    RuntimeError: Couldn't install xformers.

    关闭控制台

    基于方法一,删除system\python\Lib\site-packages文件夹,重新点击运行run.bat

    基于方法二,删除venv文件夹,重新运行webui-user.bat

    问题五

    1. Traceback (most recent call last):
    2. File "E:\AI_StableDiffusion\webui_git\stable-diffusion-webui\launch.py", line 48, in <module>
    3. main()
    4. File "E:\AI_StableDiffusion\webui_git\stable-diffusion-webui\launch.py", line 44, in main
    5. start()
    6. File "E:\AI_StableDiffusion\webui_git\stable-diffusion-webui\modules\launch_utils.py", line 465, in start
    7. import webui
    8. File "E:\AI_StableDiffusion\webui_git\stable-diffusion-webui\webui.py", line 13, in <module>
    9. initialize.imports()
    10. File "E:\AI_StableDiffusion\webui_git\stable-diffusion-webui\modules\initialize.py", line 26, in imports
    11. from modules import paths, timer, import_hook, errors # noqa: F401
    12. File "E:\AI_StableDiffusion\webui_git\stable-diffusion-webui\modules\paths.py", line 34, in <module>
    13. assert sd_path is not None, f"Couldn't find Stable Diffusion in any of: {possible_sd_paths}"
    14. AssertionError: Couldn't find Stable Diffusion in any of: ['E:\\AI_StableDiffusion\\webui_git\\stable-diffusion-webui\\repositories/stable-diffusion-stability-ai', '.', 'E:\\AI_StableDiffusion\\webui_git']

     设置Git所致,取消设置git,即可正常克隆所需依赖。

    8、安装ControlNet

    Stable Diffusion是一种用于分布式控制和协调的算法,旨在保持系统的稳定性和收敛性。它使用了一种称为ControlNet的扩展来增强其功能。

    ControlNet是Stable Diffusion的一个重要组成部分,它允许系统中的节点在进行分布式控制和协调时相互通信。通过ControlNet,节点可以传输信息并接收其他节点的信息,以便在系统中做出更好的决策。

    ControlNet的扩展主要包括以下几个方面:

    1. 节点加入和离开:ControlNet允许系统中的节点根据需要动态加入和离开。当一个节点加入时,它会通过ControlNet接收到其他节点的信息,并开始参与系统的控制和协调。当一个节点离开时,它会将自己的信息从ControlNet中删除,并通知其他节点进行相应的调整。

    2. 信息传输:ControlNet允许节点之间传输信息,以便在系统中进行分布式控制和协调。节点可以选择将信息直接发送给其他单个节点,或者向整个系统广播信息。通过ControlNet传输的信息可以包括系统状态、决策建议等。

    3. 信息处理:ControlNet扩展还提供了一些功能来处理传输的信息。节点可以使用自定义的算法来对接收到的信息进行处理和分析,并根据需要做出相应的决策。这些算法可以包括领导者选择、信息聚合等。

    通过ControlNet的扩展,Stable Diffusion能够更好地实现分布式控制和协调。节点之间可以更有效地传输和处理信息,以便在系统中做出更准确的决策,从而提高系统的稳定性和收敛性。

    以上内容来自:创作助手 

    打开run.bat之后,来到网页,选择扩展插件

    第一个空,填入插件github地址链接:Mikubill/sd-webui-controlnet: WebUI extension for ControlNet (github.com)icon-default.png?t=N7T8https://github.com/Mikubill/sd-webui-controlnet

    等待安装完成 

    点击Installed,然后点击Apply and restart UI,等待重新加载。

    之后,ControlNet模型就可放于自动生成的ControlNet文件夹下

    使用方法,下次再做示范。 

    三、模型下载地址

    目前,汇集的网址有:

    需科学上网的:

    https://civitai.com/

    https://huggingface.co/

    Stable Diffusion Models (rentry.co)

    无需科学上网:

    Ai提示词-AI图片图像生成AI模型Prompt提示词语交易分享平台! (4b3.com)

    LiblibAI·哩布哩布AI - 中国领先的AI创作平台

    吐司 tusi.cn | 可在线生图的 AI 模型分享社区,还是免费的!

    Stable Diffusion Models (cyberes.github.io)

    www.liandange.com

    模型效果不一,大家多尝试,自会找到自己中意的网址。

    四、模型简介

    模型类型很多,不同类型放在不同的文件夹下:

    各种模型对号入座,只要是模型文件,不用管文件后缀,复制进去即可。

     注意:

    Checkpoint模型对应路径:models\Stable-diffusion

    五、后记

    部署结束,后续将实操演示。

  • 相关阅读:
    5 why 分析法,一种用于归纳抽象出解决方案的好方法
    YOLOV8模型改进-添加CBAM注意力机制
    健身耳机哪款好,几款适合健身的耳机分享
    Java-堆和栈的概念和区别-1
    刷题笔记之八(字符串通配符+参数解析+计算日期到天数)
    物联网AI MicroPython学习之语法 PWM脉宽调制模块
    工程化实战 - 前端AST(进阶)
    Java安全之Mojarra JSF反序列化
    Qt实现最小化窗口到托盘图标
    项目管理PMP考试技巧
  • 原文地址:https://blog.csdn.net/weixin_46248871/article/details/138134366