智能

Stable Diffusion 系列教程(基础篇) —— 参数详解

波比AI · 5月2日 · 2025年本文共9273个字 · 预计阅读31分钟1次已读

[!quote] 背景
使用过程,总有一些参数,不明其意,不知其作用。所以做了系统整理。后面会结合实际案例,进一步诠释

一、启动参数

1. 配置参数

-h, --help:显示帮助信息并退出。

--exit:安装后立即终止。

--data-dir:指定存储所有用户数据的基本路径,默认为"./"。

--config:用于构建模型的配置文件路径,默认为 "configs/stable-diffusion/v1-inference.yaml"。

--ckpt:稳定扩散模型的检查点路径;如果指定,该检查点将被添加到检查点列表并加载。

--ckpt-dir:稳定扩散检查点的目录路径。

--no-download-sd-model:即使没有找到模型,也不下载SD1.5模型。

--vae-dir:变分自编码器模型的路径。

--gfpgan-dir:GFPGAN目录。

--gfpgan-model:GFPGAN模型文件名。

--codeformer-models-path:Codeformer模型文件的目录路径。

--gfpgan-models-path:GFPGAN模型文件的目录路径。

--esrgan-models-path:ESRGAN模型文件的目录路径。

--bsrgan-models-path:BSRGAN模型文件的目录路径。

--realesrgan-models-path:RealESRGAN模型文件的目录路径。

--scunet-models-path:ScuNET模型文件的目录路径。

--swinir-models-path:SwinIR和SwinIR v2模型文件的目录路径。

--ldsr-models-path:LDSR模型文件的目录路径。

--lora-dir:Lora网络的目录路径。

--clip-models-path:CLIP模型文件的目录路径。

--embeddings-dir:用于文本逆向的嵌入目录,默认为 "embeddings"。

--textual-inversion-templates-dir:文本逆向模板的目录。

--hypernetwork-dir:超网络目录。

--localizations-dir:本地化目录。

--styles-file:用于样式的文件名,默认为 "styles.csv"。

--ui-config-file:用于UI配置的文件名,默认为 "ui-config.json"。

--no-progressbar-hiding:不隐藏Gradio UI中的进度条(默认隐藏,因为在浏览器中使用硬件加速会降低机器学习速度)。

--max-batch-count:UI的最大批次计数值,默认为16。

--ui-settings-file:用于UI设置的文件名,默认为 "config.json"。

--allow-code:允许从Web UI执行自定义脚本。

--share:使用Gradio的share=True,并使UI通过其网站访问(对我来说不起作用,但您可能会更幸运)。

--listen:使用0.0.0.0作为服务器名称启动Gradio,允许响应网络请求。

--port:使用给定的服务器端口启动Gradio,需要根/管理员权限才能使用1024以下的端口,默认为7860(如果可用)。 34. --hide-ui-dir-config:从Web UI中隐藏目录配置。

--freeze-settings:禁用编辑设置。

--enable-insecure-extension-access:无论其他选项如何,都启用扩展选项卡。

--gradio-debug:使用--debug选项启动Gradio。

--gradio-auth:设置Gradio身份验证,如 "username:password";或逗号分隔多个,如 "u1:p1,u2:p2,u3:p3"。

--gradio-auth-path:设置Gradio身份验证文件路径,例如 "/path/to/auth/file",与--gradio-auth的格式相同。

--disable-console-progressbars:不在控制台输出进度条。

--enable-console-prompts:在使用txt2img和img2img生成时,在控制台打印提示。

--api:使用API启动Web UI。

--api-auth:设置API身份验证,如 "username:password";或逗号分隔多个,如 "u1:p1,u2:p2,u3:p3"。

--api-log:启用所有API请求的日志记录。

--nowebui:仅启动API,不启动UI。

--ui-debug-mode:不加载模型以快速启动UI。

--device-id:选择要使用的默认CUDA设备(可能需要在此之前设置CUDA_VISIBLE_DEVICES=0,1等环境变量)。

--administrator:管理员权限。

--cors-allow-origins:以逗号分隔的列表形式允许的CORS来源(无空格)。

--cors-allow-origins-regex:以单个正则表达式的形式允许的CORS来源。

--tls-keyfile:部分启用TLS,需要--tls-certfile才能完全生效。

--tls-certfile:部分启用TLS,需要--tls-keyfile才能完全生效。

--server-name:设置服务器主机名。

--gradio-queue:使用Gradio队列;实验性选项;破坏重新启动UI按钮。

--skip-version-check:不检查torch和xformers的版本。

--no-hashing:禁用检查点的sha256哈希,以提高加载性能。

2. 通用参数

--autolaunch:在启动时使用系统的默认浏览器打开WebUI URL。

--theme:在WebUI中使用指定的主题(“light”或“dark”)。如果未指定,则使用浏览器的默认主题。

--use-textbox-seed:在UI中使用文本框输入种子(没有上/下箭头,但可以输入长种子)。

--disable-safe-unpickle:禁用对PyTorch模型的恶意代码检查。

--ngrok:用于ngrok的自动令牌,是gradio --share的替代方案。

--ngrok-region:ngrok应该在其中启动的区域。

3. 性能参数

--xformers:启用xformers以加速跨注意层。

--reinstall-xformers:强制重新安装xformers。在升级后使用,但升级后请移除,否则将一直重装xformers。

--force-enable-xformers:无论检查代码是否认为可以运行,都强制启用xformers的跨注意层;如果运行失败,请勿提交错误报告。

--opt-split-attention:强制启用Doggettx的跨注意层优化。默认情况下,对于启用CUDA的系统,此选项已开启。

--opt-split-attention-invokeai:强制启用InvokeAI的跨注意层优化。默认情况下,当CUDA不可用时,此选项已开启。

--opt-split-attention-v1:启用旧版本的分割注意力优化,该版本不会消耗所有可用的显存。

--opt-sub-quad-attention:启用内存高效的子二次交叉注意力层优化。

--sub-quad-q-chunk-size:子二次交叉注意力层优化使用的查询块大小。

--sub-quad-kv-chunk-size:子二次交叉注意力层优化使用的kv块大小。

--sub-quad-chunk-threshold:子二次交叉注意力层优化使用的显存使用率阈值。

--opt-channelslast:为4d张量启用备选布局,仅在具有Tensor核心的Nvidia显卡(16xx及更高版本)上可能导致更快的推理。

--disable-opt-split-attention:强制禁用跨注意层优化。

--disable-nan-check:不检查生成的图像/潜在空间是否包含nan值;在持续集成中运行时无需检查点。

--use-cpu:对指定模块使用CPU作为torch设备。

--no-half:不将模型切换为16位浮点数。

--precision:以此精度进行评估。

--no-half-vae:不将VAE模型切换为16位浮点数。

--upcast-sampling:向上采样。与 --no-half 无效。通常产生与 --no-half 类似的结果,但在使用较少内存的情况下性能更好。

--medvram:启用稳定扩散模型优化,牺牲一点速度以减少显存使用。

--lowvram:启用稳定扩散模型优化,牺牲大量速度以极低的显存使用。

--lowram:将稳定扩散检查点权重加载到显存而非RAM。

--always-batch-cond-uncond:禁用使用 --medvram 或 --lowvram 时为节省内存而启用的条件/无条件批处理。

我使用的启动命令如下:

python launch.py --xformers --listen --enable-insecure-extension-access --no-half-vae --disable-nan-check  

二、界面参数

下面界面是加了一些插件之后的,如中文插件,图库浏览器,如果你使用的是一些大佬的整合包,那么一般他们都会帮助你安装好,但是如果没有也无所谓,我们会在之后给大家讲解插件的安装
Stable Diffusion 系列教程(基础篇) —— 参数详解

我Stable Diffusion 分为6个区域:
– 模型区 – 左上角用来更换Stable Diffusion 模型、VAE模型、Clip终止层等的选择,此处功能区,可以在设置中进行增删,参考:[[Stable Diffusion 系列教程(问题篇)—— WebUI 没有显示 VAE模型、CLIP终止层]]
– 菜单栏区 – 主要基本功能,最常用的两个文生图、图生图
– 提示词区 – 最关键的一个区域,也就是我们念咒语的地方,这里用英语撰写(可用翻译软件)
– 风格区
– 出图设置区 – 调整出图质量等的参数设置区域
– 生成图像区

下面会对各项参数,进行解释,某些插件安装后,在此处会有参数展示,此处不做说明,会插件篇([[Stable Diffusion 系列教程(基础篇) —— 插件安装]])详细说明

1. 模型设置区

  • Stable laoxiongb2cDiffusion 模型:文件格式为ckpt或者safetensors格式,它主要是控制生成图片的大致风格,选择一个合适的模型非常重要,模型选对了一般就成功了一大半。
    Stable Diffusion 系列教程(基础篇) —— 参数详解

  • 外挂VAE模型:全称是 Variational Auto-Encoder,翻译过来是变分自动编码器,本质上是一种训练模型,Stable Diffusion 里的 VAE 主要是模型作者将训练好的模型“解压”的解码工具。一般大模型都会自带,不用管他,只有大模型内的VAE出问题了、坏了、或者是我们不满意的情况下,才需要 使用外部手动选择的VAE权重。选择了外挂VAE模型后,大模型内本身带有的VAE则会完全失效。
    Stable Diffusion 系列教程(基础篇) —— 参数详解
    在 C 站下载模型,在下载页面会有文件显示,如图。
    Stable Diffusion 系列教程(基础篇) —— 参数详解
    VAE 的安装路径看我这里,把下载的文件复制粘贴,然后把 web UI 界面刷新一下(就是 SD 操作界面)
    Stable Diffusion 系列教程(基础篇) —— 参数详解

  1. 总的来说就是你在 C 站上下载的模型有些内置就有 VAE 的属性(不需要下载 VAE 文件),有些没有内置下载的时候我们就把 VAE 文件下载。(VAE 文件一般大小在几百兆左右)
  2. VAE 的作用就是没有加载 VAE 的图片是灰灰的,加载之后就是会产生一个润色的效果,色彩更加丰富。
  • Clip终止层数:默认为2,数值越高,生成的图和提词的相关性越低。大部分情况下Clip跳过层的数值保持默认即可。

2. 菜单栏区

  • 文生图:根据输入的正向或反向提示,生成相应图片,参考:[[Stable Diffusion 系列教程(基础篇) —— 文生图]]
  • 图生图:图片重绘,参考:[[Stable Diffusion 系列教程(基础篇) —— 图生图]]

最常用的两个 文生图,图生图

选项 作用
文生图 由prompts提示词生成图片
图生图 由已有的图片+提示词生成图片
图库浏览器(后安装的插件) 查看生成的图片
Tag 反推 由图片反推提示词prompts
设置 进行一些设置操作
扩展 进行扩展安装管理等操作

其他我们用到的时候再介绍

3. 提示词区

最关键的一个区域,也就是我们念laoxiongb2c咒语的地方,这里用英语撰写(可以用翻译软件)

  • 正向提示词:Prompt 描述你想要的图片,比如:girl,long hair,black clothes,big eyes(长发黑衣服大眼睛的女孩)。@注意: 不支持中文
  • 反向提示词:Negative prompt 不希望图片出现的内容,不太建议无脑抄别人的,可以记一些通用的:比如低质量,多手等。新人刚开始玩的时候不用管,根据你生成图片出现了哪些你不希望出现的内容,你在去修改它。比如:low quality(低质量)

之后会给大家专门总结,到时候直接复制粘贴即可
更多详细介绍,参考:[[Stable Diffusion 系列教程(基础篇) —— 提示词]]

4. 风格区

提示词区右边的生成下边有五个小图标,相当于一些laoxiongb2c快捷键,从左到右依次为

| 图标 | 作用 |
| —- | ———————————————— |
| 箭头 | 复原上次生成图片的提示词(自动记录) |
| 垃圾桶 | 清空当前所有提示词 |
| 红色日出 | 打开其他模型选择界面如Embedding,HypernetWork的选择,这些模型后面会单独讲到 |
| 记事薄 | 应用选择的风格模板到当前提示词,就是着五个小图标下面那个风格模板选项 |
| 保存按钮 | 保存当前的正反向提示词 |
箭头:第一按钮的意思是读取你上一张图的所有参数信息(包括关键词),比如你画一张图之后,关掉了软件,再次启动点击这个就会把参数复制进来。
Stable Diffusion 系列教程(基础篇) —— 参数详解

垃圾桶:第二个按钮就是删除了,清空关键词;这里可以和第一个按钮结合用哦
Stable Diffusion 系列教程(基础篇) —— 参数详解

红色日出:第三个按钮就是模型选择管理
Stable Diffusion 系列教程(基础篇) —— 参数详解
小知识:这里可以把你生成的图片添加到模型的封面上,方便你后面看这个模型的效果,看我怎么做:
找到这个模型的名称,然后我这里是跑出来一张图片的,点击这个按钮(lora 一样)
Stable Diffusion 系列教程(基础篇) —— 参数详解

最终效果:
Stable Diffusion 系列教程(基础篇) —— 参数详解

记事簿、保存:后面两个就是一个提示词模板功能:
Stable Diffusion 系列教程(基础篇) —— 参数详解

我们可以先点最后一个按钮,把现在的关键词创建一下,取个名字
Stable Diffusion 系列教程(基础篇) —— 参数详解

然后在模板风格这里选中我们刚刚创建的模板(可以多选)
Stable Diffusion 系列教程(基础篇) —— 参数详解

选中之后按一下第四个按钮,我们创建的关键词就被填入进去了,这块收工!
Stable Diffusion 系列教程(基础篇) —— 参数详解

5. 出图设置区

  • Sampling Method:抽样法,常用于去噪,内置多种算法可供选择。比如 DPM++ 2M Karras,可以很好地平衡了速度和质量。
  • Sampling Steps: 采样步骤数。虽然越多越好,但是值越大生成的时间越长。大部分情况选择:20 ~ 25
  • Width & Height:输出图像的大小长和宽。长宽也不是随意设置; 目前使用 v1 模型时,至少将一变设置为 512。目前已知可选的组合有:512*512、512*768、768*512
  • Batch Count: 批次数量。
  • Batch size:每一批次要生成的图像数量。
  • CFG scale: 用于控制模型生成的图片,和提示词的符合度。默认为 7,数值越小 AI 自由发挥的空间就越大,数值越大相对来说就越刻板 (严格按照提示词);
  • Seed:指定一个随机种子,用于初始化图像生成过程。相同的种子值每次都会产生相同的图像集,这对于再现性和一致性很有用,如果将值设置为 -1,则每次运行都会生成一个随机种子。
  • Hires.Fix: 高清修复,主要是提高生成的图像的分辨率,注意: 开启后生成图片会很慢; 其他选项说明:
  • Upscaler:指的是放大算法,内置了很多算法,其中 R-ESRGAN 4x+:擅长写实图片、R-ESRGAN 4x+ Anime6B:擅长二次元图片
  • Hires setps: 高清修复的步数和 Sampling Steps 代表的意义一样;
  • Denoising strength: 重绘幅度,AI 的自由发挥空间,值越大 AI 就越放飞自我,值越小就越按照原图重绘;
  • Upscale by: 放大的倍数,和下面两个互斥;
  • Resize width to: 指的是把图片放大后,宽度的像素;
  • Resize height to: 指的是把图片放大后,高度的像素;

采样方法

采样方法具体是什么涉及到模型原理,不必深究,我们这里只需要知道什么时候用什么样的采样方法即可,一般遵循如下原则

(1)在显卡给力,时间充裕的条件下,可以自己尝试比较不同的采样方法

(2)一般在C站下载模型的同时,模型作者会给出他觉得比较好的采样方式,这是作者已经经过大量实验的结论,可以帮助你节约时间

(3)没有作者相关建议的时候

对于二次元图 DPM++ 2M或DPM++ 2M Karras UniPC

对于真实系图 Euler a、DPM++ SDE、DPM++ SDE Karras

同时,一般而言带++的都相对来说不戳

这里的采用方式有很多,但是我们常用的就那几个,我们可以去设置里面把不需要用到的关掉,不展示在这个界面中。然后点击右边的重启 UI 就好了。

Stable Diffusion 系列教程(基础篇) —— 参数详解

Stable diffusion支持多种采样方法。这些方法仅代表了不同的扩散方程求解方法。它们应该产生相似的结果,但由于数字偏差可能略有不同。然而,由于没有绝对正确的答案——唯一的标准是图像看起来不错,因此您不必过于担心方法的准确性。

下面是这些采样器的简单介绍:

Euler a :有很高的多样性,tag利用率仅次与DPM2和DPM2 a。但是构图有时很奇葩,而且步数大于30,效果减弱

Euler:柔和,也适合插画,环境细节与渲染好,背景模糊较深。同时是最简单、最快的

LMS 是 Euler 的衍生,它们使用一种相关但稍有不同的方法(平均过去的几个步骤以提高准确性)。大概30step可以得到稳定结果,更倾向于动画的风格

Heun:单次出图平均质量比Euler和Euler a高,但速度最慢,高step表现好。

DPM2:该采样方法对tag的利用率最高,几乎占80%+

DPM2 a:几乎与DPM2相同,是对于DDIM的改进,减少步骤以获得良好的结果,它的速度大约是DDIM的两倍,生图效果也非常好

DPM fast:此为上界开发者所遗留的测试工具,不适合魔术师使用

LMS Karras:会大改成油画的风格,写实不佳。

DDIM:适合宽画,速度偏低,高step表现好,负面tag不够时发挥随意,环境光线与水汽效果好,写实不佳。

UniPC 效果较好且速度非常快,对平面、卡通的表现较好,推荐使用。

DDIM 收敛快,但效率相对较低,因为需要很多 step 才能获得好的结果,适合在重绘时候使用。

PLMS 是 Euler 的衍生,可以更好地处理神经网络结构中的奇异性。

不同的方法处理时间并不相同,以下是各种方法的处理时间。
Stable Diffusion 系列教程(基础篇) —— 参数详解

迭代采样步数

之前讲原理的时候,模型将噪声一步一步恢复到真实图片,此参数控制这些去噪步骤的数量。通常越高越好,但在一定程度上,我们使用的默认值是25个步骤。以下是不同情况下使用哪个步骤编号的一般指南:

(1)如果正在测试新的提示,并希望获得快速结果来调整您的输入,请使用10-15个步骤

(2)当您找到您喜欢的提示时,请将步骤增加到25

(3)如果是有毛皮的动物或有纹理的主题,生成的图像缺少一些细节,尝试将其提高到40

面部修复:修复人物的面部,但是非写实风格的人物开启面部修复可能导致面部崩坏。 平铺/分块:生成一张可以平铺的图像 高分辨率重绘:使用两个步骤的过程进行生成,以较小的分辨率创建图像,然后在不改变构图的情况下改进其中的细节,选中后会有新的参数.

宽度高度 出图分辨率设置 最佳的范围应在512至768像素之间

设置的出图分辨率太低,会导致图像不清晰

设置的出图的分辨率过高,一方面显存支撑不了,另外一方面可能会导致图像生成多人情况,

生成批次:每次生成图像的组数。 每批数量:每组多少个图像。图像总数是这个值乘以批次数。除 4090 等高级显卡以外通常保持为 1

提示词相关性CFG:较高的数值将提高生成结果与提示的匹配度。 OpenArt上使用的默认CFG是7,这在创造力和生成你想要的东西之间提供了最佳平衡。通常不建议低于5。 CFG量表可以分为不同的范围,每个范围都适合不同的提示类型和目标 CFG 2 – 6:有创意,但可能太扭曲,没有遵循提示。对于简短的提示来说,可以很有趣和有用 CFG 7-10:推荐用于大多数提示。创造力和引导一代之间的良好平衡 CFG 10-15:当您确定您的提示是详细且非常清晰的,您希望图像是什么样子时 CFG 16-20:除非提示非常详细,否则通常不推荐。可能影响一致性和质量 CFG >20:几乎无法使用

Classifier FreeGuidancescale(分类器自由指导比例)是一个参数,用于控制模型应尊重你的提示的程度。如果CFG值太低,稳定扩散将忽略你的提示。太高时图像的颜色会饱和。

1  –大多忽略你的提示。
3  –更有创意。
7  –遵循提示和自由之间的良好平衡。
15 –更加遵守提示,图片的对比度和饱和度增加。
30 –严格按照提示操作,但图像的颜色会过饱和。

这是在控制其他参数的情况下,不同CFG的结果:
Stable Diffusion 系列教程(基础篇) —— 参数详解

至于CFG的系数选择,其实不同的采样方法对应着不同最佳的CFG数值,而且随着迭代步数的增加,细节增加后的高位CFG数值也会有所变化。

CFG在4-10之间比较适合,最佳的还是建议将迭代步数、采样方法结合起来看

随机种子(Seed):生成每张图片时的随机种子,这个种子是用来作为确定扩散初始状态的基础。不懂的话,用随机的即可。保持这个值不变,可以多次生成相同(或几乎相同,如果启用了 xformers)的图像。没有什么种子天生就比其他的好,但如果你只是稍微改变你的输入参数,以前产生好结果的种子很可能仍然会产生好结果。差异随机种子,需要勾选这个按钮:
Stable Diffusion 系列教程(基础篇) —— 参数详解

这个功能是固定一个种子,然后调整差异强度来生成图片,因为是固定的 seed 值,所以生成的图风格都是类似的。
Stable Diffusion 系列教程(基础篇) —— 参数详解

如果设置为-1,将使用随机种子值;如果设置为一个固定的种子值(比如用那个绿色的回收图标定为之前的图片样式),可以增加或替换关键词达到在图片上增加或替换的效果。

过强的关键词也会导致构图的改变,更推荐蒙版重绘进行修改。

变异随机种子:简单来说就是在原有的种子图上,新加入一个用其他种子值的图,最后生成两种图片的混合。其中“变异强度”指种子与变异种子之间的选择程度(权重),将其设置为0使用种子值。将其设置为1使用变异种子值。

需要注意:在同一个种子值下,图片的内容会随着生成的长度和宽度的改变而改变,所以,要获得清晰的原图,还是建议在后期处理中采用放大算法

从宽度和高度中调整种子:就是调整变异种子增加后生成后的图片大小。

变异强度0到1之间变化的简单例子:
Stable Diffusion 系列教程(基础篇) —— 参数详解

6. 生成图像区

总结

参考

其他

[Total: 0 Average: 0]
0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!