AI生成图片Stable Diffusion环境搭建与运行方法,


目录
  • 1 环境搭建
    • 1.1 创建Python环境
    • 1.2 stable-diffusion-webui环境安装
  • 2 启动stable-diffusion-webui
    • 2.1 openclip安装不上
    • 2.2 libGL.so
    • 2.3 NaN
  • 3 模型替换
    •  4 启动端口修改
      • 5 后台运行

                Stable Diffusion是一种基于扩散过程的生成模型,由Ge et al.在2021年提出。该模型利用了随机变量的稳定分布,通过递归地应用扩散过程来生成高质量的图像。与其他生成模型相比,Stable Diffusion在生成高质量的图像方面具有显着优势。具体而言,该模型所生成的图像具有更好的细节保留能力和更自然的外观。通过对不同扩散时间的研究,Stable Diffusion还可以实现通过调整时间精度来生成图像的分辨率。

                 在实践中,Stable Diffusion被广泛应用于图像生成、压缩、修复和增强等应用中。此外,该模型还可以与其他深度学习技术结合使用,例如GAN和VAE,以提高生成图像的质量和多样性。总之,Stable Diffusion是一种非常实用且具有潜力的图像生成模型,在未来的研究和应用中将发挥重要作用。

                本文主要介绍Stable Diffusion webui环境搭建,后续将陆续介绍参数设置、API搭建、模型基本原理、训练、部署等内容。具体更新可关注文章下方公众号,也可关注本专栏。所有相关文章会在《Python从零开始进行AIGC大模型训练与推理》中进行更新。

        1 环境搭建

                显卡驱动、CUDA、CUDNN、Docker、Python等环境搭建请参考本专栏另一篇博文《Docker AIGC等大模型深度学习环境搭建(完整详细版)》,地址为“https://www.jb51.net/article/283300.htm”。

        1.1 创建Python环境

                这里使用conda创建一个Python 3.10环境,命令如下所示。

        conda create -n stdf python=3.10 -y
        conda activate stdf

        1.2 stable-diffusion-webui环境安装

                stable-diffusion-webui提供了网页前端页面用于Stable Diffusion模型生成图片,其Github官方工程地址为“https://github.com/AUTOMATIC1111/stable-diffusion-webui”。官方工程页面提供了安装步骤,包括一些自动安装脚本。这里主要是手动进行安装,并在Ubuntu 18.04与Ubuntu 20.04上进行验证,其环境安装命令如下所示。手动进行安装的好处在于及时了解报错信息并进行修复。

        conda activate stdf
        git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
        cd stable-diffusion-webui
        pip install -r requirements_versions.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
        pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

        2 启动stable-diffusion-webui

                stable-diffusion-webui的启动命令为“python launch.py”,启动后程序会自动安装和下载所依赖的其它环境。安装过程中出现的问题及解决方式如下所示。运行成功后,我们可通过网页浏览器访问,默认端口号为7860,访问地址为“IP:7860”或“0.0.0.0:7860”或“127.0.0.1:7860”或“localhost:7860”。如果需要通过其它主机进行访问,需要让防火墙允许该端口,命令为“sudo ufw allow 7860”。

                运行成功后页面如下。安装过程中出现的问题及解决方式如下所示。

        2.1 openclip安装不上

                Openclip无法安装原因可能是网络问题导致无法获取到github上相应资源,因而可通过将其替换为gitee上对应资源加以解决。具体修改方式为将launch.py文件中的openclip_package所在行替换为如下内容,位于第234行左右。

        openclip_package = os.environ.get('OPENCLIP_PACKAGE', "git+https://gitee.com/ufhy/open_clip.git@bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b")

        2.2 libGL.so

                缺乏libGL.so库的报错信息为“ImportError: libGL.so.1: cannot open shared object file: No such file or directory”。该错误在安装opencv是经常会遇到,是系统本身缺乏相应库所导致的。解决方案如下。

        apt update
        apt install libgl1-mesa-glx -y

        2.3 NaN

                由于精度问题导致模型出现NaN错误,以致于无法正常生成图片。这个问题在切换到Stable Diffusion v2.1版本模型时可能会出现。具体问题如下所示:

        NansException: A tensor with all NaNs was produced in VAE. This could be because there's not enough precision to represent the picture. Try adding --no-half-vae commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check.

                解决方法是将launch.py文件中的commandline_args = os.environ.get('COMMANDLINE_ARGS', "")替换为如下内容,位于第13行左右。

        commandline_args = os.environ.get('COMMANDLINE_ARGS', "--no-half")

        3 模型替换

                Stable Diffusion模型有多个版本,当前运行launch.py程序时会自动下载v1.5版本模型。Stable Diffusion模型存储在models/Stable-diffusion/下,如下图所示。我们可以去huggingface网站“https://huggingface.co/”上搜索并下载对应模型,然后将模型放到该文件夹下即可。下载时仅需要下载.safetensors后缀的模型文件即可。

                 例如,stable-diffusion-2-1的下载地址为“https://huggingface.co/stabilityai/stable-diffusion-2-1”,点击页面中的“Files and versions”即可看到对应的模型文件。我们可以只下载其中.safetensors后缀的模型文件,也可以通过Git LFS下载全部内容。Git LFS安装与模型下载请参考《ChatGPT平替-ChatGLM环境搭建与部署运行》。

         4 启动端口修改

                如上所述,程序默认启动端口为7860,我们可通过命令“python launch.py --port 5800”来指定端口号。修改webui.py文件的第260行也可以改变端口号,如下所示。这里将share直接设置成True后可以允许公网访问。Server_name最好设置成“0.0.0.0”,如果设置成“127.0.0.1”,那么也可能会导致公网无法访问。

        app, local_url, share_url = shared.demo.launch(
                    share=True,
                    server_name='0.0.0.0',
                    server_port=5900,

        5 后台运行

                默认情况下,关闭启动launch.py的终端窗口后,程序会退出。如果希望程序在后台运行,那么可以通过nohup命令实现。

                (1)保存日志到nohup.out

                “nohup python launch.py &”可使程序保持在后台运行,并且日志信息会保存到nohup.out文件。

                (2)不保存日志

                不保存日志的后台运行命令为“: nohup python launch.py > /dev/null 2>&1 &”。

                (3)关闭进程

                如果需要关闭后台进程,可通过“ps -aux | grep launch.py”查询到进程ID,并通过“kill -9 进程ID”来关闭进程。

                本文主要介绍Stable Diffusion webui环境搭建,后续将陆续详细介绍Stable Diffusion的参数设置、API搭建、模型基本原理、训练、部署等内容。所有相关文章会在《Python从零开始进行AIGC大模型训练与推理》中进行更新。

        到此这篇关于AI图片生成Stable Diffusion环境搭建与运行的文章就介绍到这了,更多相关AI图片生成Stable Diffusion内容请搜索3672js教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持3672js教程!

        您可能感兴趣的文章:
        • AI生成图片Stable Diffusion环境搭建与运行方法

        评论关闭