上期图文教程,我们分享过AI绘图大模型Stable Diffusion以及中文版本文心AI绘画大模型的基础知识以及代码实现,截至到目前为止。Stable Diffusion模型已经更新到了V2.1版本,其文生图大模型也越来越火,其在2022年底,由AI绘制的图片被荣为国际大奖,让大家对AI绘画大模型也越来越关注,只是被突然杀出来的ChatGPT抢了风头,本期我们基于Stable Diffusion webui开源项目,介绍一下最近大火的Stable Diffusion模型。
Stable Diffusion模型+chilloutmixni
stable-diffusion-webui
Stable Diffusion是一种扩散模型,可以经过训练,使用文本进行图片的生成任务,很多基于Stable Diffusion模型的训练模型已经发布,最近比较火的便是chilloutmixni(一个真人图片生成模型)与lora模型(一种风格模型),2种模型可以搭配使用,由于Stable Diffusion模型开源的是源代码,针对普通非程序员,交互起来,不是很友好,这不,基于Stable Diffusion的UI可视化项目也同步开源,其中最著名的便是如下开源webUI。
https://github.com/AUTOMATIC1111/stable-diffusion-webui# UI开源
stable-diffusion-webui
stable-diffusion-webui项目是基于stable-diffusion开源的可视化界面,我们可以直接在浏览器上面运行stable-diffusion,基于可视化的效果,我们可以很容易的控制各个模型的参数。目前很多基于stable-diffusion-webui项目开发了很多插件,包含汉化插件,controlNet等。
https://github.com/Stability-AI/stablediffusion
安装stable-diffusion-webui,其官方也有很多相关的教程,本期我们就基于Google colab运行环境进行介绍,关键是stable-diffusion需要大量的GPU,其colab有免费的GPU资源可以使用,我们就基于Google colab来安装stable-diffusion-webui。
stable-diffusion-webui安装
stable-diffusion-webui的安装,我们直接使用git指令来复制整个工程
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
%cd stable-diffusion-webui
!git clone https://github.com/Stability-AI/stablediffusion repositories/stable-diffusion-stability-ai
首先我们需要复制整个stable-diffusion-webui工程,然后进入stable-diffusion-webui文件夹中,再复制Stability-AI相关官方代码库,以上2个工程便可以成功运行stable-diffusion-webui程序了。
然后我们安装相关的第三方库
!pip install -r requirements.txt
!pip install open_clip_torch
!pip install k_diffusion
!pip install taming_transformers-rom1504
!pip install fastapi=0.90
首先我们需要安装requirements要求的第三方库,理论上安装requirements要求的库后,真个工程就可以正常运行,但是整体模型运行下来还需要安装如下四个库,且fastapi的版本需要为0.90,然后我们就可以正常运行整个工程了。
!pip install open_clip_torch
!pip install k_diffusion
!pip install taming_transformers-rom1504
!pip install fastapi=0.90
在运行整个工程之前,由于我们需要使用chilloutmixni真人模型,因此需要下载此模型,在Google colab里面,我们可以使用如下代码来下载chilloutmixni模型。
!curl -Lo chilloutmixni.safetensorshttps://huggingface.co/nolanaatama/chomni/resolve/main/chomni.safetensors
下载完成的chilloutmixni模型,需要放置到如下文件夹下
stable-diffusion-webui>>models>>stable-diffusion
当然,若有lora模型,需要放置到如下文件夹下
stable-diffusion-webui>>models>>Lora
当模型下载完成后,我们便可以使用如下代码来运行整个工程了,代码会自动安装相关的库以及自动下载相关的模型文件。
!python launch.py –share –xformers —enable-insecure-extension-access
Python 3.9.16 (main, Dec 7 2022, 01:11:51)
[GCC 9.4.0]
Commit hash: 3531a50080e63197752dd4d9b49f0ac34a758e12
Installing xformers
Fetching updates forStable Diffusion…
Checkingout commit for Stable Diffusion with hash: 47b6b607fdd31875c9279cd2f4f16b92e4ea958e…
Cloning Taming Transformersintorepositories/taming-transformers…
Cloning K-diffusioninto repositories/k-diffusion…
Cloning CodeFormer intorepositories/CodeFormer…
Cloning BLIPinto repositories/BLIP…
Installing requirements for CodeFormer
Installing requirements for Web UI
Launching Web UI with arguments: –share –xformers –enable-insecure-extension-access
2023-03-11 10:51:02.869144: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary isoptimizedwith oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance–critical operations: AVX2 FMA
To enable them in other operations, rebuild TensorFlow withthe appropriate compiler flags.2023-03-11 10:51:06.507725: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library libnvinfer.so.7; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/lib/python3.9/dist-packages/cv2/../../lib64:/usr/lib64-nvidia
2023-03-11 10:51:06.508205: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could notload dynamic library libnvinfer_plugin.so.7; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/lib/python3.9/dist-packages/cv2/../../lib64:/usr/lib64-nvidia
2023-03-11 10:51:06.508233: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like touse Nvidia GPU with TensorRT, please make sure the missinglibraries mentioned aboveare installed properly.
Calculating sha256 for /content/stable-diffusion-webui/models/Stable-diffusion/chilloutmixni.safetensors:7234b76e423f010b409268386062a4111c0da6adebdf3a9b1a825937bdf17683
Loading weights [7234b76e42] from /content/stable-diffusion-webui/models/Stable-diffusion/chilloutmixni.safetensors
Creatingmodel from config: /content/stable-diffusion-webui/configs/v1-inference.yaml
LatentDiffusion: Runningin eps-prediction mode
DiffusionWrapper has 859.52M params.
Downloading (…)olve/main/vocab.json: 100% 961k/961k [00:00<00:00, 6.44MB/s]
Downloading (…)olve/main/merges.txt: 100% 525k/525k [00:00<00:00, 3.82MB/s]
Downloading (…)cial_tokens_map.json: 100% 389/389 [00:00<00:00, 92.5kB/s]
Downloading (…)okenizer_config.json: 100% 905/905 [00:00<00:00, 305kB/s]
Downloading (…)lve/main/config.json: 100% 4.52k/4.52k [00:00<00:00, 668kB/s]
Applying xformerscross attention optimization.
Textual inversion embeddings loaded(0):
Model loaded in 76.3s (calculatehash: 45.7s, load weights from disk: 0.8s, create model: 3.1s, apply weights to model: 17.6s, apply half(): 1.3s, load VAE: 7.0s, move model to device: 0.6s).
Running on local URL: http://127.0.0.1:7860
Running on public URL: https://61087ab0-8f51-5aee.gradio.live
stable-diffusion-webui
代码运行完成后,我们在最后一行,就可以看到一个public URL ,点击这个URL,就会跳转到一个webui界面了(上图)。由于我们下载了chilloutmixni模型,这里系统会自动检测到此模型,并默认使用此模型。
通过以上的webui界面,我们就可以输入相应的文字,或者上传自己的图片进行文字生成图片,或者图生图的操作了,总结一下其webui界面的安装过程主要包含四步
1、git clone 2个工程
2、安装其第三方库
3、下载需要的模型文件
4、运行webui
通过以上4步,便可以正常运行stable-diffusion-webui项目了,关于stable-diffusion-webui项目的参数设置,模型文件的使用,其他插件的使用,我们后期进行分享。