Stable Diffsuion Webui 入门安装
前言
目前 AI 有两个主流的方向,一个是以 Stable Diffusion 为代表的 AI 图像生成领域,一个是 ChatGPT 为代表的大语言模型领域,本篇主要聚焦 AI 图像生成领域,Stable Diffusion WebUI 是目前比较主流的图片生成方向的软件,特点是开源 + 自定义程度高,适合比较喜爱折腾的同学使用,其强大的扩展性使在社区获得了广泛的应用。
本篇不讲原理只讲使用(我也没来得及深入理解),当前可以简单理解使用 Diffusion 扩散模型生成图片的过程就是一个添加噪声再去除噪声的过程,在这个过程中 AI 将你的意图以及它通过无数训练样本建立起来的特征和原图的关联所形成的潜在变量空间为指导生成图片,而 WebUI 就是用于控制 AI 生成图片的工具。
如果将 AI 生成图片比作魔法,那么提示词就是“咒语”,WebUI 就是“魔杖”,当然不止有这一种魔杖,其他比如 ComfyUI 是另一种魔杖。
B站 UP 主有一个比较形象的比喻,尝试着把眼睛眯到只剩一条缝去看它(世界名画《戴珍珠耳环的少女》),图像会变得模糊,保持这个状态想象着她正逐渐变得二次元,随后慢慢睁开眼睛:
工具链
-
stable diffusion 原理
- https://blog.csdn.net/jarodyv/article/details/129280836
-
GUI
- stable-diffsion-webui 社区非常活跃的,开源插件较丰富,提供各种功能
- DiffusionBee (针对Macos 电脑的安装包)
开源项目,对macos做过一点性能优化,但是插件功能相对较少。
Mac 想要体验的话最简单的可以下载一个 DiffusionBee 客户端,生成图像有多种方式,最简单的是 Text2Img 文字生成和 Img2Img 图像生成
-
stable diffusion 法术解析(解析出图片的参数)
-
模型下载地址(魔法加持)
-
寻找Prompt提示词和出售Prompt
stable-diffusion-webui 前期铺垫
模型
这里包括三大类:大模型、Lora 模型以及 VAE 模型。(当然还有其他细分小模型,后续介绍)
这一步可以先扔一个大模型上去,后续有需要可以再慢慢下载其他的。
大模型
放在 stable-diffusion-webui/models/Stable-diffusion 下面
文件后缀:ckpt 或者 safetensors
Lora 模型
放在 stable-diffusion-webui/models/Lora 下面(在没有执行 ./webui.sh 前,是没有 Lora 这个目录的,可以先不放)
VAE 模型
Variational Auto Encoder
可以简单理解为滤镜
放在 stable-diffusion-webui/models/VAE 下面
从 C 站下载
选中「Models」-「筛选」- 选择「Model types」(是大模型、还是 LoRA、还是 VAE等) - 然后选择一个模型点进去。
如果知道要下载的模型的名称的话,也可以直接在搜索框搜索模型名字,然后点进模型。
参数
提示词
prompt 顾名思义是"提示词"的意思,在 AI 文生图中用于指导 AI 生成过程,告诉 AI 你想要的画面效果。提示词是我们与 AI 科学高效沟通的桥梁,有点像魔咒一样,输入一段神奇的词语,AI 会将你的想法变成现实。一个 AI 能够读懂的好咒语应该是内容充实丰富且画面具有清晰标准的,
想要了解如何写好提示词可以参考:
Prompt 提示词魔法书
Embedding 提示词
Embedding 可以改变画面风格,快速得到你想要的画面特征的图片,常用于负向提示词,可有效提高出图质量。
通俗理解 Embedding是“提示词打包”,即通过触发词将相关的一组特征词描述打包在一起。在没有 Embedding 之前如果在不借助任何插件的情况你要生成一张想要的图片时需要大量的 tag 和描述词去描述,在引入 embedding 之后只需要一个词作为触发词即可达到上面的效果:
插件
安装插件
webui 提供两种方式安装插件,一个是从它的官方列表安装,一个是从一个指定网址安装。当然我们也可以手动下载插件文件后复制到插件文件夹
- 从官方列表安装
切到扩展插件选项卡,点击”可用“,然后点击”加载自”,webui 会从右侧扩展列表的网址中读取插件列表,默认是官方列表,选择你想要的插件,然后安装即可,安装完成后记得“应用并重启界面”。
● 有些插件光重启界面还不够,需要重新启动 webui 才可,注意查看插件说明。
● 如果国内无法加载官方列表,可以用 https://gitee.com/good-new-gitee/stable-diffusion-webui-extensions-cn/raw/master/index.json
- 从网址安装
第二种方式是“从网址安装”,该网址即插件的 github 地址,比如 ControlNet: https://github.com/Mikubill/sd-webui-controlnet
- 自己复制插件文件
比如这里可以先进入到 extensions 目录,然后 git clone 即可。
- 查看和更新插件
可以从“已安装”tab 中查看已安装的插件,如果不想要启用某个插件,去掉前面的勾选,然后应用并重启界面即可。如果要将插件升级到最新版本请点击“检查更新”
- 常见的插件
stable-diffusion-webui 启动
克隆项目
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
启动 WebUI
- 进到 Stable Diffusion WebUI 对应的安装目录:
cd stable-diffusion-webui
- 启动 Stable Diffusion WebUI:
./webui.sh
第一次启动,会下载一些组件库和依赖,可能会比较慢,大家耐心等待。
注意:
如果上一步没有下载模型,这里也会自动帮我们下载一个默认的模型。因为大模型一般都好几个 GB,下起来比较慢,所以推荐大家还是在上一步中自己先将模型下载下来(至少放一个大模型进去,这样这一步就不会再自动去下模型了)。
当出现 Running on local URL: http://127.0.0.1:7860 的时候,说明 Stable Diffusion WebUI 已经启动好了。
- 在浏览器中输入 http://127.0.0.1:7860 就可以看到 Stable Diffusion WebUI 的界面了。
温馨提示:
在运行过程中,不要关闭 Terminal,否则页面就打不开了。
下次再启动,进到 Stable Diffusion WebUI 对应的目录,执行 ./webui.sh 即可。
^跳过GPU检测^
我们用的是老Mac笔记本了,Intel芯片,显卡也用不了。只能用CPU进行计算,跳过GPU检测的配置如下:
执行命令:
打开配置文件 vim ~/.bash_profile
# 把下面两行拷贝进去,保存后source命令使其生效
export COMMANDLINE_ARGS="--lowvram --precision full --no-half --skip-torch-cuda-test"
export PYTORCH_ENABLE_MPS_FALLBACK=1
过程中遇到的错误基本上都能在issues上找到。
==========================================================================================
快速体验
克隆项目和下载模型觉得麻烦,推荐用平台去体验,不要把前期的热情和好奇浪费在环境配置上。
推荐飞浆
注册以后搜索Stable Diffusion,启动项目,就可以体验
毕竟是免费的,生成的图片质量和可操作性相对较弱,但是两个小时已够体验生成几张图片了。
文生图——生成汉服装
按如下填写提示词
masterpiece, best quality, realistic, photorealistic,ultra detailed,extremely detailed face,8k, 1girl,(white/blue/red/black/green/pink/yellow chinese shirt),(white/blue/red/black/green/pink/yellow chinese long skirt), long hair, black hair, upper body, cowboy shot, looking at viewer,sitting on the bench, (smile:0.5),outdoors, chinese style,pink lips, perfect mouth,clear eyes ,complex details, <lora:FilmVelvia3:0.65>,
ng_deepnegative_v1_75t, (badhandv4:1.3), (worst quality:2), (low quality:2), (normal quality:2),lowres, bad anatomy, bad hands, ((monochrome)), ((grayscale)) ,watermark,asymetric eyes
图生图——让二维码丰富
1. 物料准备
在开始用AI制作二维码之前,还需要做一些准备工作,生成普通的二维码免费生成二维码
核心就是:Q是容错率20%,超过这个数基本微信就无法识别了。
2.上传二维码图片
前面制作好的图片保持不动,直接往下拉动页面,一直滑动到脚本上面那个【controlnet v1.1.234】这个选项,点开它然后双击图片位置,上传你的二维码图片。
3.参数选择
- 选择:启用、完美像素模式;
- 模型:选择qr patten这个模型;
- 控制权重:选择1.15;
- 引导介入时机:为0;
- 引导终止时机:为1.;
- 控制模式:选择均衡;
权重和终止时机这两个参数很重要。如果你生成的二维码无法扫描,那么你就去调整这两个数值。
权重越高二维码越明显,扫描不出来,你就拉高权重就行。
引导时机越低,则代表AI在渲染过程中终止渲染自由发挥的时间。举个例子你的图层渲染比如是10层,那么引导终止时机选择0.8时,就代表围绕二维码的渲染在第8层结束,剩下的2层AI会自由发挥,这要是为什么有的创意二维码生成出来不像二维码的关键。
让图会说话
SadTakler
安装此插件会遇到各式各样的错误,等待一个个解决后
根据提示将对应python文件内的np.complex语句改成np.complex128
需要下载对应的模型文件,放入对应的目录中
降级对应的numpy版本(pip install numpy==1.23.4)
根据提示将对应python文件内的np.float语句改成np.float64
等解决一系例错误以后,就能正常生成小Mov的
利用chatgpt生成文字,文字转换成语言
文字生成语音在线网址 TTSmaker(需要魔法)
等待一段时间,你的图会张口说话
csdn和掘金赞不支持上传视频,因此生成的内容放到网盘中
链接: https://pan.baidu.com/s/19_j4PMRb8QogzDGQbmsNlg?pwd=czqf 提取码: czqf 复制这段内容后打开百度网盘手机App,操作更方便哦
tmp84m5vza1ttsmaker-file-2023-9-6-15-27-42-0-100_enhanced
图片高清
要提升成图质量,可以选用精度高表现好的模型,添加质量标准化提示词,增加分辨率等方式,除了以上方式之外,在 WebUI 中还有一系列功能时为了专门优化图像产出质量,为了我们获得更大更高清的分辨率而存在的。比如:
- Hires.fix 高清修复
- SD Upscale 脚本
- 附加功能中的图像放大算法
有人会问为什么不直接设置更高的分辨率呢?
更高的分辨率意味着更多的生成时间和更高的显存占用,非常容易爆显存,当然这个问题可以通过 Tiled 分块插件解决部分,代价是更长的生成时间。
由于 SD 训练时大多采用 512 * 512或 768* 768 的图进行训练,如果设置非常高的分辨率往往会导致多个人或者多个头的情况出现。
文生图: Hires.fix 高清修复
Hires.fix 的原理是先生成一张低分辨率图像,在此画面基础上结合文本提示词进一步添加画面细节,从而提高分辨率,达到放大图像的目的。它的优势是:
- 不会改变画面的构图(通过随机种子固定)
- 稳定克服多人多头等高分辨率产生的问题
- 操作简便,清晰,直观
放大算法推荐
SD 默认提供多种高清化算法,GAN 就是生成对抗网络,这里有空再做详细的比对,可以根据自己的喜好进行尝试,当前提供一些推荐算法:
- ● 一般照片生成使用推荐:ESRGAN_4x, R-ESRGAN 4x+, SwinIR_4x 算法。
- ● 针对二次元相关图片推荐: R-ESRGAN 4x+ Anime6B 是针对动漫风格图片优化过的算法,效果较好。
采样步数
一般设置 20 步足够,如果设置为 0 表示和图像原始生成时采用相同的步数
重绘强度
重绘强度用来调整原始低分辨率图片对重新生成图片的影响程度:
● 当设置为 0 时,则生成的图片和原始图片时一样的。
● 当设置为 1 时,则生成的图片和原始图片完全不同。
如果只是为了放大安全区间在 0.3 ~ 0.5,如果想要赋予 AI 更多的发挥空间可以设置为 0.5 ~ 0.7
放大倍数
放大倍率有两种设置方式:
● 一种是将原图等比例放大到一定倍率,比如 2 倍,就是长宽都放大 2 倍。
● 一种是将原图放大到指定数值,比如 1024 * 1024。
通常放大 2 倍即可获得不错的效果,更大的倍率需要更高的显存,最多放大 4 倍。
图生图: SD Upscale 放大脚本
在图生图的页面中其实是没有高清修复的选项的,如果原图分辨率比较低,只要按更高的分辨率设置就可以实现"高清修复",如果想要生成的图片更大,画面更精细,可以使用 UpScale 放大脚本,在脚本栏开启 “SD upscale” ,UpScale 放大脚本的原理是将原图切成若干块之后分别重新绘制,最后拼合到一起。
UpScale 放大脚本的优势是:
- 可以突破内存限制,获得更大的分辨率,最大四倍宽高
- 画面精细度高,对细节的丰富效果出色
缺点是: - 分割重绘的过程比较不可控,比如分界线割裂
- 操作繁琐,相对不直观
- 偶尔加戏,出现莫名其妙的奇怪区
后期处理:图像放大
链接: https://pan.baidu.com/s/1B0V20ZUICXSgdQwueDkXhw?pwd=56t5 提取码: 56t5 复制这段内容后打开百度网盘手机App,操作更方便哦
结束