「Stable Diffusion」Stable Diffusion Web UI 安装教程

介绍

什么是 Stable Diffusion

CompVis/stable-diffusion 是一个开源项目,它实现了一种基于稳定扩散(Stable Diffusion)的生成对抗网络(GAN)训练方法。这个项目旨在提高 GAN 训练的稳定性和生成图像的质量。

该项目主要包括以下特点:

  1. 稳定扩散技术:通过引入噪声和扩散过程来平滑生成器和判别器之间的优化过程,从而提高训练稳定性。
  2. 高质量图像生成:利用稳定扩散技术,生成器能够产生更高质量、更真实的图像。
  3. 易于使用:项目提供了预训练模型和示例代码,方便用户快速上手和测试。

CompVis/stable-diffusion 可以应用于各种图像生成任务,如将文本描述转换为图像(Text2Img)、风格迁移、超分辨率等。这个项目对于研究人员和开发者来说是一个有价值的资源,可以帮助他们更好地理解和实践基于稳定扩散的 GAN 训练方法。

通俗一些说法是:

Stable Diffusion是2022年发布的深度学习文本到图像生成模型,它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词英语)指导下产生图生图的翻译。

该模型由互联网上数百万图像和文本描述对训练而来,通过理解文本描述与图像信息的内在关联,不断利用扩散过程进而得到满意的生成图片

根据维基百科的描述可以得知,Stable Diffusion主要用于 文本生成图像 的深度学习模型,也就是常说的txt2img的应用场景中:通过给定 文本提示词(text prompt),该模型会输出一张匹配提示词的图片。

例如输入文本提示词:“A cute cat”,Stable Diffusion会输出一张带有可爱猫咪的图片。

Github: CompVis/stable-diffusion: A latent text-to-image diffusion model (github.com)

Stable Diffusion是基于“潜在扩散模型”(latent diffusion model;LDM)的模型,官方项目其实并不适合新手直接使用,好在有一些基于 stable-diffusion 封装的 webui 开源项目,可以通过界面交互的方式来使用,极大的降低了使用门槛,以下是几个比较火的 webui 项目:

Stable-Diffusion-WebUI : AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI

Sygil-WebUI:Sygil-Dev/sygil-webui: Stable Diffusion web UI

下面我们主要使用的是 Stable-Diffusion-WebUI进行讲解安装和使用

安装

依赖环境 Git 、Python 3.10.6

在 Github 地址( AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI)中下载项目到本地。

打开 stable-diffusion-webui/modules/launch.until.py 文件

1
torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==2.0.1 torchvision==0.15.2")

每个https://github.com/ (就在上一步的下面几行,每一个网址都要改)链接前面添加https://ghproxy.com/,替换为以下内容

1
2
3
4
5
6
7
8
gfpgan_package = os.environ.get('GFPGAN_PACKAGE', "https://ghproxy.com/https://github.com/TencentARC/GFPGAN/archive/8d2447a2d918f8eba5a4a01463fd48e45126a379.zip")
clip_package = os.environ.get('CLIP_PACKAGE', "https://ghproxy.com/https://github.com/openai/CLIP/archive/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1.zip")
openclip_package = os.environ.get('OPENCLIP_PACKAGE', "https://ghproxy.com/https://github.com/mlfoundations/open_clip/archive/bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b.zip")
stable_diffusion_repo = os.environ.get('STABLE_DIFFUSION_REPO', "https://ghproxy.com/https://github.com/Stability-AI/stablediffusion.git")
taming_transformers_repo = os.environ.get('TAMING_TRANSFORMERS_REPO', "https://ghproxy.com/https://github.com/CompVis/taming-transformers.git")
k_diffusion_repo = os.environ.get('K_DIFFUSION_REPO', 'https://ghproxy.com/https://github.com/crowsonkb/k-diffusion.git')
codeformer_repo = os.environ.get('CODEFORMER_REPO', 'https://ghproxy.com/https://github.com/sczhou/CodeFormer.git')
blip_repo = os.environ.get('BLIP_REPO', 'https://ghproxy.com/https://github.com/salesforce/BLIP.git')

命令行进入到 stable-diffusion-webui 项目中下载依赖

1
pip install requirements.txt

下载完成之后用命令行执行

1
./webui.sh

等待启动完毕会提示

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

访问 http://127.0.0.1:7860 网站即可

汉化

访问网页后找到 Extensions菜单,选中 Available标签,将 Hide extensions with tags 全部取消勾选,然后点击 Load From 重新加载扩展列表

在搜索框 Search 中搜索 zh_Hans 然后下载 zh_Hans Localization

下载后在 Installed 标签勾选 stable-diffusion-webui-localization-zh_Hans 插件,然后点击 Apply and restart UI 按钮。

然后到 Settings 菜单 -> User interface -> localization 中勾选 zh_CN , 点击 Apply Settings, 然后 restart UI 重启完就变成中文界面了。

如果有直接下载汉化包的用户,可以将文件放置\stable-diffusion-webui\extensions这个目录下,之后重新载入网址,按照 Settings设置步骤依次点击就可以变成中文版。

使用

在使用前我们需要下载不同的SD基础模型。

模型站:

https://civitai.com/

https://huggingface.co/

https://www.liblibai.com/

https://www.liandange.com/

https://i-desai.com/#/

https://aigccafe.com/ 不用翻墙

以及基础模型

Models - Hugging Face

https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.ckpt

Checkpoint模型文件通常以 .safetensors 或者 .ckpt 结尾,在模型站中会有标签标记,下载后放置在

stable-diffusion-webui/module/stable-diffusion-webui/ 目录下

Lora模型文件通常以 .safetensors结尾,下载后放置在stable-diffusion-webui/module/lora/ 目录下

安装完之后就可以愉快使用了

参考

Installation on Apple Silicon · AUTOMATIC1111/stable-diffusion-webui Wiki

Stable Diffusion简介 - 知乎

喂饭级stable_diffusion_webUI使用教程 - 知乎