stable diffusion webui 安装与参数配置
STEP0 – 需要提前准备的环境
1.版本控制软件: git
2.运行环境: python
3.科学上网环境或 :
- 配置好的pip国内镜像
- 配置好的github国内镜像
STEP1 – 安装 Stable Diffusion web UI
拉取官方镜像:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
安装所需的依赖包:
pip install -r requirements_versions.txt
该步骤请注意异常提示,若有异常提示,很有可能是网络环境的问题
STEP2 – 编辑配置文件并运行
编辑webui-user.bat文件
@echo off
:: 配置本地python位置
set PYTHON="C:\Users\xxx\AppData\Local\Programs\Python\Python310\python.exe"
set GIT=
:: 配置虚拟环境
set VENV_DIR= mewtea
call webui.bat
直接运行 webui.bat , 即可自动下载依赖包以及运行程序
运行成功后可以打开 http://127.0.0.1:7860 直接访问服务。
STEP3 – 模型说明
下载的模型文件models文件夹的对应目录下
如Stable-diffusion模型 放置 models/Stable-diffusion 下
LORA 放置在models/Lora 下
模型可以通过civitai获取,这里就不推荐模型了。
放置完模型需要重启服务
STEP4 – 中文界面配置
将 Chinese.json并放置在 localizations 目录下,重启服务
之后在 setting -> User interface -> Localization (requires restart) 中选择 Chinese,然后点击上方的Apply settings,Reload UI重载页面。
也可以在 dtlnor 大佬的仓库中查看其他的配置方法。
参数简述
更加具体的参数说明详见参考链接。
提示词 Prompt
文字描述你想要生成的东西,推荐使用英文描述,推荐使用逗号分隔, 例如:
(masterpiece, best quality),bangs, black_hair, bowtie, cherry_blossoms, collared_shirt, confetti, depth_of_field, earrings, falling_leaves, falling_petals, feathers, flower, flower_earrings, hair_between_eyes, hair_flower, hair_ornament, jewelry, leaves_in_wind, long_hair, long_sleeves, looking_at_viewer, motion_blur, , petals, petals_on_liquid, simple_background, red_bow, red_bowtie, red_eyes, rose_petals, shirt, skirt, solo, twintails, very_long_hair, white_shirt,
反向提示词 Negative prompt
文字描述你不想在图像中出现的东西,推荐使用英文描述,推荐使用逗号分隔,例如:
ng_deepnegative_v1_75t,bad prompt,(worst quality, low quality:1.6),(malformed hands:1.4),(poorly drawn hands:1.4),(mutated fingers:1.6),(extra limbs:1.35),(poorly drawn face:1.4),(bad hands:1.4),(malformed anatomy:1.4),(bad anatomy:1.4),(mutated anatomy:1.4), watermark,(mutated legs:1.6),(bad perspective:1.4),(bad body proportions:1.4), (bad proportion:1.4), (watermark:2.0), EasyNegativeV2
影响因子
提示词中,参数写的越靠前,影响权重越大,因此,我们应该尽量把重要的提示词写在前面,如 best quality
, masterpiece
, ultra-detailed
等。
另外,影响因子还有一些其他类型:
(圆括号)
增强权重 等价于NovelAI的{花括号}
每个圆括号一通常是提升1.1倍的权重,圆括号可以嵌套使用,例如
((black_hair))
那么它的权重就是1.1*1.1 = 1.21还可以通过冒号来指定权重,例如
(black_hair:1.4)
那么它的权重就是1.4倍.[方括号]
削弱权重方括号包裹tag 会削弱提示词的权重,通常每个括号是削弱1.1(除以1.1)同样可以嵌套使用,例如
[[black_hair]]
则是削弱至0.82左右。也可以直接通过圆括号来指定削弱的权重 如 :
(black_hair:0.8)
|
切换单字 Alternating Words,同等权重使用
|
时,AI将会在两个参数间来回切换绘制,首先绘制一边左边参数,再绘制一遍右边参数,再绘制一遍左边参数…以此类推,例如red_hair|blue_hair
会生成红色和蓝色的混合发色,cat|dog
则会生成不猫不狗的奇怪生物。还可以和前面括号组合使用,例如[red|blue hair]
AND
可组合性扩散 Composable DiffusionAND
必须大写, AI依照权重混合两个不同的物件,可以直接组合,也可以指定权重组合,例如:orange :1.5 AND apple :2.5
,搭配 ControlNet和Latent Couple,可以准确控制图中物件的位置。
图像分辨率 Width x Height
分辨率越高,会占用越大的VRAM,参考 :
采样方法 Sampling method
各种采样方法,计算得出的结果不太一样。
Stable Diffusion 为生成一个图像,首先在潜空间 (Latent space) 产生一个完全随机的图像。之后,使用 噪声预测 (noise predictor) 预估图像的噪声。预测的噪声被从图像中减去。这个过程要重复十几次。最终得到一个清晰的图像。
这个去噪过程被称为采样(sampling),因为 Stable Diffusion 在每一步都会生成一个新的样本图像。采样中使用的算法被即为采样方法。
虽然整体框架是一样的,但有许多不同的方法来进行这个去噪过程。一般是速度和准确性之间权衡方法的区别。
采样仅仅只是 Stable Diffusion 中的一个部分,如果想了解更加具体的 Stable Diffusion 工作方式,可以参见: how-stable-diffusion-work
即使是采样部分的内容,本文也只是简单介绍,具体详见官方文档:Stable Diffusion Samplers
采样的步骤越多,噪点越低,得到的图像自然质量越好,但是也会更加的耗时。
Old-School ODE solvers
Euler – The simplest possible solver.
最简单的求解器。
Heun – A more accurate but slower version of Euler.
更准确但更慢的 Euler 版本
LMS (Linear multi-step method) – Same speed as Euler but (supposedly) more accurate.
与Euler的速度相同,但(据称)更准确
Ancestral 采样
你会可能发现一些采样器中带着一个字母 a
,例如
- Euler a
- DPM2 a
- DPM++ 2S a
- DPM++ 2S a Karras
这些采样器将会在每一个步骤中增加图像的噪点,以增加图像的随机性。
Karras
含有Karras的采样器意味着采样器采用了一种特殊的噪声模型,随着步骤的增长,它的优势会比一般的采样器更明显,噪点下降的更快。
DDIM and PLMS
DDIM(Denoising Diffusion Implicit Model)和PLMS(Pseudo Linear Multi-Step method)是最初的Stable Diffusion v1 版所配备的采样器。DDIM是最早为扩散模型设计的采样器之一。PLMS是DDIM的一个更新、更快的替代品。
现在已经不再被广泛使用。
DPM and DPM++
DPM(Diffusion probabilistic model solver)和DPM++是在2022年发布的为 diffusion 设计的新采样器。
DPM和DPM2相似,只是DPM2是二阶的(更准确但慢)。
DPM++是对DPM的改进。
DPM会自适应调整步骤,可能会很慢,因为采样步数不确定。
常用的采样器
DPM++ SDE Karras
DPM++ 2M Karras
DPM++ 2S a Karras
UniPC
Euler
…
所以… 哪个最好?
如果你想要快,要新,质量还不错:
DPM++ 2M Karras 20-30个步骤
UniPC 20-30个步骤
如果你想要好,不关心收敛性:
DPM++ SDE Karras 8-12 个步骤 (该采样器会比较慢)
DDIM 8-12 个步骤
如果你想要稳定,尽量可重复,那就不要用任何带
a
(Ancestral) 的如果你只要一些简单的东西 Euler 和 Heun 是一个不错的选择
参考链接
ControlNet: Control human pose in Stable Diffusion
Latent Couple extension (two shot diffusion port)