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

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

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

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

1 环境搭建

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

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环境搭建与部署运行》,地址为“https://blog.csdn.net/suiyingy/article/details/130370190”。

 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大模型训练与推理》中进行更新,地址为“https://blog.csdn.net/suiyingy/article/details/130169592”。

GitHub前缀:https://ghproxy.com/
launch.py:commandline_args = os.environ.get('COMMANDLINE_ARGS', "--xformers")
modules/launch_utils.py:  os.environ['COMMANDLINE_ARGS'] = "xformers"

python launch.py  --server-name 0.0.0.0 --port 8888 --xformers --gradio-queue --enable-insecure-extension-access

https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111.git

https://github.com/Mikubill/sd-webui-controlnet.git
https://github.com/Mikubill/sd-webui-controlnet

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
文字生成图片稳定扩散是一种将文字内容转化为像的技术。通过将文字作为输入,通过特定的算法将文字逐渐转化为像的过程。这种技术可以用于各种场景,例如艺术创作、广告设计、生成等。 文字生成图片稳定扩散的方法包括两个关键步骤:生成和扩散。首先,将输入的文字转化为像,可以通过字体、大小、颜色等参数来控制生成的效果。生成像可以是黑白的、彩色的,或者带有特定的纹理和效果。然后,通过扩散的过程逐渐将文字像填充为完整的像。扩散可以采用不同的方式,例如像素级别的扩散、区域级别的扩散或者混合的方式。 文字生成图片稳定扩散的关键在于保持生成的过程稳定和可控。稳定性意味着生成像在不同的输入下保持相对一致的效果,而可控性意味着可以通过调整参数来控制生成像的样式和效果。这样可以保证生成图片符合需求,并满足设计师或者用户的要求。 文字生成图片稳定扩散可以应用于多个领域。在艺术创作中,可以通过文字生成图片来表达创作者的思想和感情,将文字转化为像来传达更加具体和直观的意义。在广告设计中,可以通过文字生成图片来制作吸引人的广告海报或者宣传图片,增加视觉冲击力和吸引力。在生成中,可以将大量文字数据转化为像,用于数据可视化和像分析等领域。 总之,文字生成图片稳定扩散是一项将文字转化为像的技术,通过生成和扩散的过程,将输入的文字逐渐转化为具有稳定和可控效果的像。该技术具有广泛的应用前景,在艺术、设计和数据可视化等领域中都具有重要的意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coding的叶子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值