Stable Diffusion Web UI的原理与使用

Stable Diffusion是一套基于Diffusion扩散模型生成技术的图片生成方案,随着技术的不断发展以及工业界对这套工程细节的不断优化,使其终于能在个人电脑上运行,本文将从github下载开始讲一讲如何使用Stable Diffusion Web UI进行AI图像的生成。

1.聊聊Diffusion

1.1 概念简介

StableDiffusion是基于扩散模型的应用,那就先来讲一讲什么是扩散模型。

我们知道在扩散模型出现之前,比较火的是GAN(对抗生成网络),GAN由生成器和判别器组成,两者相互博弈训练,最终产生较理想的输出。

但是GAN也有缺点,首先生成器和判别器不断进化的中间N个步骤完全是黑盒,无法调试。其次还有难以训练、模式坍缩等许多问题。

Diffusion模型并非新技术,而是更像是在另一个技术方向上的不断前进,相比GAN,Diffusion会将生成的每一个步骤都拆解出来进行反复训练。

好比绘制一幅简笔画,GAN是生成器和判别器不断进化,最终绘制完成简笔画。而Diffusion是将绘画的每一步拆解出来不断训练,最后完整的将所有步骤绘制出来:

1.2 讲讲原理

Duffsion是一个在图像加噪去噪过程中进行生成的模型,假设一张完全没有噪点的图像到一张充满噪点无法辨认的图像会经过1000个步骤:

那么在训练阶段,Diffusion模型首先会在这1000个步骤中随机选一步,先加噪,再通过网络去噪,反向传播时用该阶段的原始图片作为Loss。而这个加噪去噪的具体步骤,也并非直接加减,需要通过网络求出噪声变化值再减回去等,这里不做过多讲解。

这个去噪声的操作通过的就是Unet网络,这是一个残差卷积网络,因为结构呈U形所以得名。而我们输入的提示词也会先通过CLIP模型再编码进噪声中。

再后来出现了Latent Diffusion Models,即通过VAE这样的压缩技术,将原图通过VAE网络编码成一张尺寸比较小、包含潜空间数据的图片,再进行扩散处理,最终图像再通过VAE网络解码成原始图片。这项技术大大降低了显存的占用,也为后来的Stable Diffusion打下了基础。

2.Stable Diffusion Web UI

接下来讲讲实用的,关于Stable Diffusion与第三方开源的Web UI仓库。

2.1 Web UI简介

在github上直接查找StableDiffusion可以看到排名最靠前的有3个仓库:

实际上Stable Diffusion 是由 CompVis、Stability AI 和 LAION一起开发的,因此CompVis和Stability-AI的仓库地址理论上都是官方仓库。

而stable diffusion web ui实际上是一个非官方开源项目,但这个才是我么一会要用的仓库,这个仓库真正做到了开箱即用,不需要配置Cuda、不会有奇怪的报错、连基础模型都会帮你自动下载好。

2.2下载与配置

2.2.1 启动Stable Diffusion

首先从AUTOMATIC1111仓库的Stable Diffusion Web UI进行下载,该仓库会自动下载StableDiffusion以及基础模型:
https://github.com/AUTOMATIC1111/stable-diffusion-webui

根据该仓库的教程说明,最后运行webui-user.bat即可。

安装好并且webui-user.bat内的内容下载好后,在ip:127.0.0.1:7860可以打开StableDiffusion界面:

左上角显示的是基础模型。

2.2.2 安装大模型

像SDXL这类算作大模型,像Lora、ControlNet算小模型,小模型需要依赖大模型的版本,大模型版本改变的话小模型就会失效报错。

下载大模型需要去另外2个github仓库查找。

不想折腾,也可以在这里下载大模型:
https://rentry.org/sdmodels
https://civitai.pro/

2.2.3 安装插件

使用Stable Diffusion web ui还可以进行插件的拓展,像较流行的Lora、Control Net这些最早都不是作为SD的插件开发的,而是有正经论文的学术内容,后来才拓展的StableDiffusion插件版本。

Control Net1.1全家桶可以在hugging face上下载:
https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main

还有最近短视频平台比较火的小和尚,嘴型生成SadTalker插件:
https://github.com/OpenTalker/SadTalker

相关推荐
Elastic 中国社区官方博客1 小时前
搜索倍增器:推动收入、生产力和 AI 实现规模化
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
wjkjpcba1 小时前
机器人控制板PCBA怎么加工?从SMT贴片到BGA焊接解析机器人电子制造工艺
大数据·人工智能
青 春 记 忆2 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
小猪妈咪爱学法2 小时前
欧盟最新发布《AI数字综合法案(Digital Omnibus‑on‑AI,AI综合修订法案)
人工智能·网络安全
ZGIAI2 小时前
ZGI Workflow 变量池:接住节点输出
人工智能·架构
梵构广告2 小时前
提升品牌识别度有哪些方法?
人工智能
ZGIAI2 小时前
ZGI 记忆隔离:多人共用不串号
人工智能·架构
星栈独行3 小时前
决定 Agent 交付下限的「操作系统」:Harness 六层架构拆解
人工智能·架构
AKAMAI3 小时前
实时可观测性:Akamai Cloud Pulse 警报功能正式发布
人工智能·云计算
Capricorn19883 小时前
解决全网抄 Karpathy 导致的 LLM Wiki 污染?基于知芽 Notebook Skill 的 raw/ 笔记法排障指南
大数据·论文阅读·人工智能·笔记·论文笔记