Skip to content

这是一个用于Stable Diffusion web UI的功能展示页面。

除非另有说明,所有示例都是非精选的。

SD-XL

[PR] | [Stability-AI Github]

SD-XL的支持是在版本1.5.0中添加的,版本1.6.0中还添加了额外的内存优化和内置的序列化细化推理。

阅读这里获取有关优化推理的提示列表:Optimum-SDXL-Usage

下载

两个模型可用。第一个是主要模型。

~~它们内置了一个由madebyollin训练的vae,可以修复在fp16中运行时出现的NaN无穷大计算问题。(这是最新的VAE供参考)~~ 错误/过时的信息。使用这个模型不能解决所有模型的fp16问题。你应该将这个VAE与模型合并。

SD-XL BASE

这是一个用于生成1024×1024尺寸图像的模型。

经过测试,它能够产生与Stability-AI的存储库相同(或非常接近)的图像(需要在设置中将随机数生成器源设置为CPU)

img

SD-XL REFINER

这个次要模型被设计用于在1024×1024 SD-XL图像接近完成时进行处理,以进一步增强和细化最终输出图片的细节。从版本1.6.0开始,这个功能已经在webui中本地实现。

SD2 变体模型

PR, (更多信息)

支持用于生成图像变体的stable-diffusion-2-1-unclip检查点。

它的工作方式与当前对SD2.0深度模型的支持相同,即您可以从img2img选项卡中运行它,它会从输入图像中提取信息(在这种情况下是CLIP或OpenCLIP嵌入),并将其与文本提示一起输入模型。通常情况下,您会将去噪强度设置为1.0,因为您实际上不希望正常的img2img行为对生成的图像产生任何影响。

image

InstructPix2Pix

网站. 检查点。检查点在img2img选项卡中完全支持。不需要额外的操作。以前需要一个贡献者的扩展来生成图片:现在不再需要,但应该仍然有效。大部分img2img的实现是由同一个人完成的。

要重现原始存储库的结果,请使用1.0的去噪、Euler采样器,并在configs/instruct-pix2pix.yaml中编辑配置,将其更改为:

    use_ema: true
    load_ema: true

而不是:

    use_ema: false

firefox_Yj09cbmDZ1

额外网络

一个带有卡片图片的按钮。它将多种扩展生成方式统一到一个用户界面中。

在大的生成按钮旁边找到它: firefox_QOnhgmmSi5

额外网络提供了一组卡片,每个卡片对应一个模型文件的一部分,您可以训练或从其他地方获取。点击卡片将模型添加到提示中,它将影响生成。

额外网络 目录 文件类型 在提示中的使用方法
文本反转 embeddings *.pt, 图像 嵌入的文件名
LoRA models/Lora *.pt, *.safetensors <lora:文件名:乘数>
超网络 models/hypernetworks *.pt, *.ckpt, *.safetensors <hypernet:文件名:乘数>

文本反转

这是一种微调CLIP中的令牌权重的方法,CLIP是Stable Diffusion在2021年夏季使用的语言模型。作者的网站。详细解释请参见:文本反转

LoRA

这是一种在Stable Diffusion中微调CLIP和Unet的权重的方法,CLIP是语言模型,Unet是实际使用的图像去噪器,该方法于2021年发表。论文。训练LoRA的一种好方法是使用kohya-ss

LoRA的支持已内置到Web UI中,但也有一个kohya-ss的扩展提供了原始实现。

目前,Web UI不支持Stable Diffusion 2.0+模型的LoRA网络。

将LoRA添加到提示中的方法是在任何位置插入以下文本:<lora:文件名:乘数>,其中文件名是磁盘上LoRA文件的名称(不包括扩展名),乘数是一个数字,通常从0到1,用于选择LoRA对输出的影响程度。无法将LoRA添加到负面提示中。

用于将LoRA添加到提示中的文本<lora:文件名:乘数>仅用于启用LoRA,并在之后从提示中删除,因此无法使用提示编辑进行操作,例如[<lora:one:1.0>|<lora:two:1.0>]。具有多个不同提示的批处理将仅使用第一个提示中的LoRA。

更多LoRA类型

自版本1.5.0以来,Web UI通过内置扩展支持其他网络类型。

详细信息请参见[PR]

超网络

这是一种微调Stable Diffusion中使用的CLIP和Unet的权重的方法,CLIP是语言模型,Unet是实际的图像去噪器,由我们在2022年秋季的朋友Novel AI慷慨捐赠给世界。它的工作方式与LoRA相同,只是在某些层上共享权重。乘数可以用来选择超网络对输出的影响程度。

添加超网络到提示的规则与LoRA相同:<hypernet:文件名:乘数>

Alt-Diffusion

该模型经过训练,可以接受不同语言的输入。 更多信息PR

  • 从Huggingface上下载检查点。点击向下箭头进行下载。
  • 将文件放入models/Stable-Diffusion目录中。
注释(点击展开): 从机械上讲,支持注意力/强调机制,但似乎效果较小,可能是由于Alt-Diffusion的实现方式。 不支持剪辑跳过,设置会被忽略。 建议使用`--xformers`运行。添加额外的节省内存的标志,如`--xformers --medvram`不起作用。

Stable Diffusion 2.0

  1. 从Huggingface上下载您的检查点文件。点击向下箭头进行下载。
  2. 将文件放入models/Stable-Diffusion目录中。

  3. 768 (2.0) - (模型)

  4. 768 (2.1) - (模型)
  5. 512 (2.0) - (模型)
注释:(点击展开) 如果2.0或2.1生成黑色图像,请使用`--no-half`启用完全精度,或尝试使用`--xformers`优化。 _**注意:**_ SD 2.0和2.1对FP16数值不稳定性更敏感(如它们自己在[这里](https://github.com/Stability-AI/stablediffusion/commit/c12d960d1ee4f9134c2516862ef991ec52d3f59e)所述),这是由于它们的新交叉注意力模块。 关于fp16:[评论](https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/5503#issuecomment-1341495770)以启用,在webui-user.bat中: @echo off set PYTHON= set GIT= set VENV_DIR= set COMMANDLINE_ARGS=your command line options set STABLE_DIFFUSION_COMMIT_HASH="c12d960d1ee4f9134c2516862ef991ec52d3f59e" set ATTN_PRECISION=fp16 call webui.bat

深度引导模型

深度引导模型仅在img2img选项卡中可用。 更多信息PR

Inpainting模型SD2

专门用于修复图像的模型,基于SD 2.0 512基准训练。

inpainting_mask_weight或修复条件掩码强度也适用于此模型。

Outpainting

Outpainting扩展了原始图像并修复了创建的空白区域。

示例:

原始图像 Outpainting 再次Outpainting

原始图像由匿名用户从4chan提供。谢谢,匿名用户。

您可以在底部的img2img选项卡中找到此功能,位于脚本 -> Poor man's outpainting下。

与普通图像生成不同,外扩图像似乎非常受益于较大的步数。一个好的外扩图像的配方是一个与图片匹配的好提示,用于去噪的滑块和将CFG比例设置为最大值,以及使用Euler祖先或DPM2祖先采样器的50到100步的步数。

81步,Euler A 30步,Euler A 10步,Euler A 80步,Euler A

图像修复

在img2img选项卡中,对图像的一部分进行遮罩处理,该部分将被修复。

修复选项: - 在Web编辑器中自己绘制遮罩 - 在外部编辑器中擦除图片的一部分,并上传一个透明图片。任何稍微透明的区域都将成为遮罩的一部分。请注意,某些编辑器默认将完全透明的区域保存为黑色。 - 更改模式(位于图片右下角)为“上传遮罩”,并选择一个单独的黑白图像作为遮罩(白色=修复)。

修复模型

RunwayML还训练了一个专门用于修复的附加模型。该模型接受额外的输入-没有噪声的初始图像加上遮罩-并且在这方面似乎更加出色。

有关该模型的下载和其他信息,请访问:https://github.com/runwayml/stable-diffusion#inpainting-with-stable-diffusion

要使用该模型,您必须将检查点的文件名重命名为以inpainting.ckpt结尾,例如1.5-inpainting.ckpt

之后,只需像通常选择任何检查点一样选择该检查点,然后就可以开始使用了。

遮罩内容

遮罩内容字段确定在修复之前放入遮罩区域的内容。这不代表最终输出,只是在处理过程中查看正在进行的工作。

遮罩 填充 原始图像 潜在噪声 潜在空白

补全区域

通常,补全会将图像调整为UI中指定的目标分辨率。启用补全区域:仅遮罩后,只有遮罩区域会被调整大小,处理后会粘贴回原始图片中。 这样可以让您处理大型图片,并以更高的分辨率渲染补全的对象。

输入 补全区域:整个图片 补全区域:仅遮罩

遮罩模式

遮罩模式有两个选项: - 补全遮罩 - 遮罩下的区域会被补全 - 非遮罩补全 - 遮罩下的区域保持不变,其他区域会被补全

Alpha遮罩

输入 输出

彩色素描

img2img标签的基本上色工具。基于Chromium的浏览器支持吸管工具。 color-sketch_NewUI (这是在Firefox上的截图)

提示矩阵

使用|字符分隔多个提示,系统将为每个组合生成一张图片。 例如,如果使用一个现代城市的繁忙街道|插图|电影般的照明提示,有四种可能的组合(提示的第一部分始终保持不变):

  • 一个现代城市的繁忙街道
  • 一个现代城市的繁忙街道,插图
  • 一个现代城市的繁忙街道,电影般的照明
  • 一个现代城市的繁忙街道,插图,电影般的照明

将会生成四张图片,按照此顺序,所有图片使用相同的种子,并且每个图片都有相应的提示:

另一个例子,这次有5个提示和16个变体:

您可以在底部找到此功能,位于脚本 -> 提示矩阵下。

稳定扩散放大

ℹ️ 注意: 这不是首选的放大方法,因为这会导致SD由于平铺而失去对图像的关注。它只应在VRAM受限或与ControlNet + 平铺模型等组合使用时使用。有关首选方法,请参见Hires. fix

使用RealESRGAN/ESRGAN放大图像,然后通过结果的平铺来改善它们。 它还有一个选项,可以让您在外部程序中自行进行放大,然后使用img2img处理平铺。

原始想法来自:https://github.com/jquesnelle/txt2imghd。这是一个独立的实现。

要使用此功能,请选择脚本下拉选择中的SD放大(img2img选项卡)。

chrome_dl8hcMPYcx

输入图像将放大到原始宽度和高度的两倍,并且UI的宽度和高度滑块指定了单个平铺的大小。由于重叠,平铺的大小非常重要:512x512图像需要九个512x512的平铺(因为有重叠),但只需要四个640x640的平铺。

放大的推荐参数: - 采样方法:Euler a - 降噪强度:0.2,如果您感到冒险,可以增加到0.4 - 由于SD放大在平铺中工作,较大的降噪强度存在问题,因为扩散过程无法对整个图像进行关注。

原始图像 RealESRGAN Topaz Gigapixel SD放大

无限提示长度

在标准的75个标记之后继续输入会将提示大小限制从75个标记增加到150个标记。在超过这个限制后继续输入会进一步增加提示大小。这是通过将提示分成75个标记的块,独立地使用CLIP的Transformers神经网络处理每个块,然后在将结果连接起来输入到稳定扩散的下一个组件Unet中来实现的。

例如,一个包含120个标记的提示将被分成两个块:第一个块有75个标记,第二个块有45个标记。两个块都会填充到75个标记,并在开头和结尾添加起始/结束标记以形成77个标记。在通过CLIP处理这两个块之后,我们将得到两个形状为(1, 77, 768)的张量。将这些结果连接起来得到形状为(1, 154, 768)的张量,然后将其无问题地传递给Unet。

BREAK关键词

添加一个BREAK关键词(必须大写)会用填充字符填充当前块。在BREAK文本之后添加更多文本将开始一个新的块。

注意/强调

在提示中使用()会增加模型对其中的词的关注,而[]会减少关注。您可以组合多个修饰符:

提示速查表:

  • a (word) - 将对word的关注增加1.1倍
  • a ((word)) - 将对word的关注增加1.21倍(= 1.1 * 1.1)
  • a [word] - 将对word的关注减少1.1倍
  • a (word:1.5) - 将对word的关注增加1.5倍
  • a (word:0.25) - 将对word的关注减少4倍(= 1 / 0.25)
  • a \(word\) - 在提示中使用字面的()字符

使用(),可以像这样指定权重:(text:1.4)。如果未指定权重,则默认为1.1。指定权重只适用于(),而不适用于[]

如果您想在提示中使用任何字面的()[]字符,请使用反斜杠进行转义:anime_\(character\)

2022-09-29,添加了一个新的实现,支持转义字符和数字权重。新实现的一个缺点是旧实现并不完美,有时会吃掉字符:"a (((farm))), daytime",例如,会变成没有逗号的"a farm daytime"。新实现不会出现这种行为,它可以正确地保留所有文本,这意味着您保存的种子可能会产生不同的图片。目前,在设置中有一个选项可以使用旧的实现。

NAI使用的是2022-09-29之前的我的实现,只是他们将乘数设为1.05,并使用{}代替()。所以转换如下:

  • 他们的{word} = 我们的(word:1.05)
  • 他们的{{word}} = 我们的(word:1.1025)
  • 他们的[word] = 我们的(word:0.952) (0.952 = 1/1.05)
  • 他们的[[word]] = 我们的(word:0.907) (0.907 = 1/1.05/1.05)

回环

在img2img中选择回环脚本可以自动将输出图像作为下一批的输入。相当于保存输出图像并用它替换输入图像。批次计数设置控制您可以获得多少次迭代。

通常,在这样做时,您会自己选择下一次迭代的许多图像,因此这个功能的有用性可能是有问题的,但我已经成功地使用它获得了一些非常好的输出,这是我以前无法获得的。

示例:(精选结果)

原始图像由4chan的匿名用户提供。谢谢,匿名用户。

X/Y/Z 图

创建多个具有不同参数的图像网格。X和Y用作行和列,而Z网格用作批次维度。

xyz-grid

选择使用X类型、Y类型和Z类型字段来共享行、列和批次的参数,并将这些参数用逗号分隔输入到X/Y/Z值字段中。支持整数、浮点数和范围。示例:

  • 简单范围:
  • 1-5 = 1, 2, 3, 4, 5
  • 带有增量的范围(在括号中):
  • 1-5 (+2) = 1, 3, 5
  • 10-5 (-3) = 10, 7
  • 1-3 (+0.5) = 1, 1.5, 2, 2.5, 3
  • 带有计数的范围(在方括号中):
  • 1-10 [5] = 1, 3, 5, 7, 10
  • 0.0-1.0 [6] = 0.0, 0.2, 0.4, 0.6, 0.8, 1.0

提示S/R

提示S/R是X/Y图的一种较难理解的操作模式。S/R代表搜索/替换,它的作用是输入一个词或短语列表,它将取列表中的第一个词作为关键词,并用列表中的其他词替换所有该关键词的实例。

例如,使用提示a man holding an apple, 8k clean和提示S/Ran apple, a watermelon, a gun,你将得到三个提示:

  • a man holding an apple, 8k clean
  • a man holding a watermelon, 8k clean
  • a man holding a gun, 8k clean

该列表使用与CSV文件中的行相同的语法,因此如果要在条目中包含逗号,必须将文本放在引号中,并确保引号和分隔逗号之间没有空格:

  • darkness, light, green, heat - 4个条目 - darkness, light, green, heat
  • darkness, "light, green", heat - 错误 - 4个条目 - darkness, "light, green", heat
  • darkness,"light, green",heat - 正确 - 3个条目 - darkness, light, green, heat

从文件或文本框中获取提示

使用此脚本可以创建一个按顺序执行的作业列表。

示例输入:

--prompt "日落的照片"
--prompt "日落的照片" --negative_prompt "橙色,粉色,红色,海,水,湖" --width 1024 --height 768 --sampler_name "DPM++ 2M Karras" --steps 10 --batch_size 2 --cfg_scale 3 --seed 9
--prompt "冬山的照片" --steps 7 --sampler_name "DDIM"
--prompt "冬山的照片" --width 1024

示例输出:

image

支持以下参数:

    "sd_model", "outpath_samples", "outpath_grids", "prompt_for_display", "prompt", "negative_prompt", "styles", "seed", "subseed_strength", "subseed", 
    "seed_resize_from_h", "seed_resize_from_w", "sampler_index", "sampler_name", "batch_size", "n_iter", "steps", "cfg_scale", "width", "height", 
    "restore_faces", "tiling", "do_not_save_samples", "do_not_save_grid"

调整大小

在img2img模式下,有三种调整输入图像大小的选项:

  • 仅调整大小 - 简单地将源图像调整为目标分辨率,导致宽高比不正确
  • 裁剪和调整大小 - 调整源图像的大小,保持宽高比,使其完全占据目标分辨率,并裁剪超出部分
  • 调整大小并填充 - 调整源图像的大小,保持宽高比,使其完全适应目标分辨率,并用源图像的行/列填充空白区域

示例:

采样方法选择

在txt2img中选择多个采样方法之一:

种子调整大小

这个函数允许你根据不同的分辨率从已知的种子生成图像。通常情况下,当你改变分辨率时,图像会完全改变,即使你保持所有其他参数不变,包括种子。使用种子调整大小,你可以指定原始图像的分辨率,模型很可能会生成一个看起来非常相似的图像,即使分辨率不同。 在下面的示例中,最左边的图片是512x512,其他图片使用完全相同的参数生成,只是垂直分辨率更大。

信息 图像
未启用种子调整大小
从512x512调整大小的种子

祖先采样器在这方面稍差一些。

你可以通过在种子旁边点击“Extra”复选框来找到这个功能。

变化

变化强度滑块和变化种子字段允许你指定现有图片应该如何改变以看起来像另一张图片。在最大强度下,你将得到具有变化种子的图片,而在最小强度下,你将得到具有原始种子的图片(除非使用祖先采样器)。

你可以通过在种子旁边点击“Extra”复选框来找到这个功能。

样式

点击“Save prompt as style”按钮将当前提示写入styles.csv,这是一个样式集合文件。在提示右侧的下拉框中,你可以选择之前保存的任何样式,并自动将其附加到你的输入中。 要删除一个样式,手动从styles.csv中删除它,并重新启动程序。

如果你在样式中使用特殊字符串{prompt},它将把当前提示中的任何内容替换到该位置,而不是将样式附加到你的提示中。

负面提示

允许您在生成图片时使用另一个提示,告诉模型应该避免的事物。这是通过在采样过程中使用负面提示来进行无条件调节来实现的,而不是使用空字符串。

高级解释:负面提示

原始图片 负面提示: 紫色 负面提示: 触手

CLIP询问者

原始来源:https://github.com/pharmapsychotic/clip-interrogator

CLIP询问者允许您从图像中获取提示。该提示不能让您复制这个确切的图像(有时甚至不会接近),但它可以作为一个很好的起点。

第一次运行CLIP询问者时,它会下载几个GB的模型。

CLIP询问者有两个部分:一个是BLIP模型,用于从图片中创建文本描述。另一个是CLIP模型,它将从列表中挑选出与图片相关的几行。默认情况下,只有一个列表 - 艺术家列表(来自artists.csv)。您可以通过以下方式添加更多列表:

  • 在webui的同一位置创建interrogate目录
  • 将文本文件放入其中,每行包含一个相关描述

例如,要使用的文本文件示例,请参见https://github.com/pharmapsychotic/clip-interrogator/tree/main/clip_interrogator/data。 实际上,您可以直接从那里获取文件并使用它们-只需跳过artists.txt,因为您已经在artists.csv中有一个艺术家列表(或者也可以使用它,谁会阻止您)。每个文件都会向最终描述添加一行文本。 如果在文件名中添加".top3.",例如flavors.top3.txt,则会将该文件的三行最相关的文本添加到提示中(其他数字也可以)。

与此功能相关的设置有: - Interrogate: keep models in VRAM - 使用完Interrogate模型后不要从内存中卸载它们。适用于具有大量VRAM的用户。 - Interrogate: use artists from artists.csv - 在询问时添加来自artists.csv的艺术家。当您在interrogate目录中有自己的艺术家列表时,可以禁用此选项。 - Interrogate: num_beams for BLIP - 影响BLIP模型生成的详细描述的参数(生成提示的第一部分) - Interrogate: minimum description length - BLIP模型文本的最小长度 - Interrogate: maximum descripton length - BLIP模型文本的最大长度 - Interrogate: maximum number of lines in text file - 询问器只会考虑文件中的前几行。将其设置为0,即默认值为1500,这大约是一个4GB显卡可以处理的量。

提示编辑

xy_grid-0022-646033397

提示编辑允许您在开始采样一张图片后,中途切换到其他内容。其基本语法如下:

[from:to:when]

其中fromto是任意文本,when是一个数字,定义了在采样周期的多晚时刻进行切换。它越晚,模型在绘制to文本替代from文本时的能力越弱。如果when是0到1之间的数字,则它是切换之后的步骤数的一部分。如果它是大于零的整数,则它只是在哪个步骤之后进行切换。

嵌套一个提示编辑在另一个内是有效的。

此外: - [to:when] - 在固定的步骤数(when)之后将to添加到提示中 - [from::when] - 在固定的步骤数(when)之后从提示中删除from

示例: a [fantasy:cyberpunk:16] landscape

  • 开始时,模型将绘制一个“幻想景观”。
  • 在第16步之后,它将切换到绘制一个“赛博朋克景观”,从幻想景观停止的地方继续。

以下是一个更复杂的示例,包含多个编辑:

“幻想景观,有一座[山:湖:0.25]和[一棵橡树:一棵圣诞树:0.75][在前景中::0.6][在背景中:0.25][粗糙的:精湛的:0.5]”(采样器有100步)

  • 开始时,“幻想景观,有一座山和一棵橡树在前景中,粗糙的”
  • 在第25步之后,“幻想景观,有一座湖和一棵橡树在前景中,在背景中,粗糙的”
  • 在第50步之后,“幻想景观,有一座湖和一棵橡树在前景中,在背景中,精湛的”
  • 在第60步之后,“幻想景观,有一座湖和一棵橡树在背景中,精湛的”
  • 在第75步之后,“幻想景观,有一座湖和一棵圣诞树在背景中,精湛的”

顶部的图片是使用以下提示制作的:

“一位微笑的二战将军的官方肖像,[男性:女性:0.99],开朗,快乐,面部细节,20世纪,高度详细,电影般的照明,由Greg Rutkowski的数字艺术绘画”

并且数字0.99被替换为您在图像列标签中看到的内容。

图片中的最后一列是[男性:女性:0.0],这意味着您要求模型从一开始就绘制一个女性,而不是从男将军开始,这就是为什么它看起来与其他图片如此不同。

注意:此语法不适用于额外的网络,如LoRA。有关详细信息,请参阅此讨论帖。对于类似的功能,请参阅sd-webui-loractl扩展

交替词语

交替每一步的便捷语法。

在田野中的[牛|马]

第一步,提示是“在田野中的牛”。第二步是“在田野中的马”。第三步是“在田野中的牛”,依此类推。

交替的词语

下面是一个更高级的例子。在第8步,链从“人”回到“牛”。

这篇reddit帖子中,Doggettx首次实现了提示编辑。

注意:这种语法不适用于额外的网络,比如LoRA。有关详细信息,请参阅这篇讨论帖子。对于类似的功能,请参阅sd-webui-loractl扩展

高分辨率修复

这是一个方便的选项,可以部分渲染图像的较低分辨率,然后将其放大,并在高分辨率下添加细节。换句话说,这相当于在txt2img中生成一个图像,通过您选择的方法将其放大,然后在img2img中对现在放大的图像进行第二次处理,进一步改善放大并创建最终结果。

默认情况下,基于SD1/2的模型在非常高的分辨率下生成糟糕的图像,因为这些模型只在512px或768px的分辨率下进行了训练。通过在更大版本的去噪过程中利用小图片的构图,这种方法可以避免这个问题。在txt2img页面上勾选“Hires. fix”复选框即可启用此功能。

无缩放 缩放
00262-836728130 00261-836728130
00345-950170121 00341-950170121

小图片的分辨率由宽度/高度滑块设置。 大图片的尺寸由三个滑块控制:"缩放倍数"(高分辨率放大)、"调整宽度至"和/或"调整高度至"(高分辨率调整)。

  • 如果"调整宽度至"和"调整高度至"都为0,则使用"缩放倍数"。
  • 如果"调整宽度至"为0,则根据宽度和高度计算"调整高度至"。
  • 如果"调整高度至"为0,则根据宽度和高度计算"调整宽度至"。
  • 如果"调整宽度至"和"调整高度至"都不为零,则将图像放大至至少这些尺寸,并裁剪部分区域。

在旧版本的WebUI中,最后的宽度和高度是手动输入的(上述最后一个选项)。在新版本中,默认使用"缩放倍数"因子,这是默认和首选的选项。

要进一步提高高分辨率修复中的细节,请参阅额外噪点的说明。

放大器

下拉菜单允许您选择用于调整图像大小的放大器类型。除了在附加选项卡上可用的所有放大器之外,还有一种选项可以放大潜在空间图像,这是稳定扩散在内部使用的内容 - 对于一个3x512x512的RGB图像,其潜在空间表示将是4x64x64。要查看每个潜在空间放大器的效果,可以将去噪强度设置为0,将高分辨率步骤设置为1 - 您将得到一个非常好的近似,这是稳定扩散在放大图像上的工作。

以下是不同潜在空间放大模式的示例。

原始图像
00084-2395363541
潜在空间,潜在空间(抗锯齿) 潜在空间(双三次),潜在空间(双三次,抗锯齿) 潜在空间(最近邻)
00071-2395363541 00073-2395363541 00077-2395363541

抗锯齿变体由一位贡献者提交,并且似乎与非抗锯齿相同。

可组合扩散

一种允许组合多个提示的方法。 使用大写的AND来组合提示:

一只猫 AND 一只狗

支持提示的权重:一只猫 :1.2 AND 一只狗 AND 一只企鹅 :2.2 默认权重值为1。 将多个嵌入组合到结果中非常有用:生物嵌入在树林中:0.7 AND 奥秘嵌入:0.5 AND 故障嵌入:0.2

使用小于0.1的值几乎没有效果。一只猫 AND 一只狗:0.03的输出基本上与一只猫相同。

这对于生成经过精细调整的递归变体非常方便,只需继续添加更多提示即可。生物嵌入在原木上 AND 青蛙:0.13 AND 黄色眼睛:0.08

中断

按下中断按钮停止当前处理。

支持4GB显卡

针对显存较低的GPU进行了优化。这应该使得在具有4GB内存的显卡上生成512x512的图像成为可能。

--lowvram是由basujindal提出的一种优化思路的重新实现。 模型被分成多个模块,只有一个模块保留在GPU内存中;当需要运行另一个模块时,前一个模块将从GPU内存中移除。这种优化的性质使得处理速度变慢,与在我的RTX 3090上正常运行相比大约慢10倍。

--medvram是另一种优化,通过在同一批次中不处理条件和无条件去噪来显著减少VRAM的使用。

这种优化的实现不需要对原始的Stable Diffusion代码进行任何修改。

TAESD

在版本1.6.0中添加了标准推理支持

通过启用设置中的轻量级VAE,它通常允许进行非常大的、快速的生成,同时只有很小的质量损失。 这种收益可能非常大,使用--lowvram的最大生成可以从1152x1152增加到2560x2560

image

人脸修复

使用GFPGANCodeFormer可以改善图片中的人脸。每个选项卡中都有一个复选框可以使用人脸修复功能, 还有一个单独的选项卡,可以在任何图片上使用人脸修复,滑块控制效果的可见程度。您可以在设置中选择这两种方法。

原始图片 GFPGAN修复 CodeFormer修复

检查点合并

指南由一位匿名的恩人慷慨捐赠。

1674918832052087

完整的指南和其他信息在这里:https://imgur.com/a/VjFi5uM

保存

在输出部分下点击保存按钮,生成的图像将保存到设置中指定的目录中; 生成参数将追加到同一目录中的csv文件中。

加载

Gradio的加载图形对神经网络的处理速度有很大的负面影响。 当不活动的标签与gradio一起使用时,我的RTX 3090使图像快约10%。现在,默认情况下,UI隐藏加载进度动画,并用静态的“加载中…”文本替换它,从而达到相同的效果。使用--no-progressbar-hiding命令行选项可以恢复此设置并显示加载动画。

缓存模型

image

如果您想在模型之间更快地切换,请增加设置中的计数器。Webui将保留您从中切换的模型在内存中。

请确保根据您剩余的可用内存设置适当的数字。

提示验证

稳定扩散对输入文本长度有限制。如果您的提示太长,您将在文本输出字段中收到警告,显示您的文本的哪些部分被截断并被模型忽略。

PNG信息

将生成参数作为文本块添加到PNG中。您可以使用任何支持查看PNG块信息的软件来查看此信息,例如:https://www.nayuki.io/page/png-file-chunk-inspector

设置

一个带有设置的选项卡,允许您使用UI编辑超过一半的以前是命令行的参数。设置将保存到config.js。仍然作为命令行选项的设置是启动时所需的设置。

文件名格式

在设置选项卡中的Images filename pattern字段允许自定义生成的txt2img和img2img图像的文件名。该模式定义了您想要包含在文件名中的生成参数及其顺序。支持的标签有:

[seed],[steps],[cfg],[width],[height],[styles],[sampler],[model_hash],[model_name],[date],[datetime],[job_timestamp],[prompt_hash],[prompt],[prompt_no_styles],[prompt_spaces],[prompt_words],[batch_number],[generation_number],[hasprompt],[clip_skip],[denoising]

这个列表会不断发展,会有新的添加。您可以通过将鼠标悬停在UI中的"Images filename pattern"标签上来获取最新的支持标签列表。

模式示例:[seed]-[steps]-[cfg]-[sampler]-[prompt_spaces]

关于"prompt"标签的说明:[prompt]会在提示词之间添加下划线,而[prompt_spaces]会保持提示词的完整性(更容易复制/粘贴到UI中)。[prompt_words]是您的提示的简化和清理版本,已用于生成子目录名称,只包含您的提示的单词(没有标点符号)。

如果您将此字段留空,则将应用默认模式([seed]-[prompt_spaces])。

请注意,标签实际上是在模式中替换的。这意味着您还可以在此模式中添加非标签单词,以使文件名更加明确。例如:s=[seed],p=[prompt_spaces]

用户脚本

如果使用--allow-code选项启动程序,则在页面底部的脚本->自定义代码下方会有一个额外的文本输入字段用于脚本代码。它允许您输入处理图像的Python代码。

在代码中,使用p变量从Web UI访问参数,并使用display(images, seed, info)函数为Web UI提供输出。脚本的所有全局变量也是可访问的。

一个简单的脚本只会处理图像并正常输出它:

import modules.processing

processed = modules.processing.process_images(p)

print("种子是:" + str(processed.seed))

display(processed.images, processed.seed, processed.info)

UI配置

您可以在ui-config.json中更改UI元素的参数,该文件在程序第一次启动时会自动创建。一些选项:

  • 单选组:默认选择
  • 滑块:默认值、最小值、最大值、步长
  • 复选框:选中状态
  • 文本和数字输入:默认值

将作为UI配置条目的复选框通常不会在初始设置时展开隐藏的部分。

ESRGAN

可以在“Extras”选项卡和SD放大中使用ESRGAN模型。论文在这里。

要使用ESRGAN模型,请将其放入与webui.py相同位置的ESRGAN目录中。 如果文件具有.pth扩展名,则将其作为模型加载。从模型数据库获取模型。

并非所有数据库中的模型都受支持。所有2x模型很可能不受支持。

img2img替代测试

使用Euler扩散器的反向过程来解构输入图像,以创建用于构建输入提示的噪声模式。

例如,您可以使用这张图片。从scripts部分选择img2img替代测试。

alt_src

调整重构过程的设置: - 使用一个简短的场景描述:“一个笑着的棕发女人。”描述您想要改变的特征会有所帮助。将其设置为您的起始提示,并在脚本设置中选择'Original Input Prompt'。 - 您必须使用Euler采样方法,因为该脚本是基于它构建的。 - 采样步骤:50-60。这个值必须与脚本中的解码步骤值匹配,否则会出现问题。在此演示中使用50。 - CFG缩放:2或更低。在此演示中,使用1.8。(提示:您可以编辑ui-config.json将"img2img/CFG Scale/step"更改为.1而不是.5。) - 降噪强度 - 这是很重要的,与旧文档所说的相反。将其设置为1。 - 宽度/高度 - 使用输入图像的宽度/高度。 - 种子...您可以忽略这个。反向Euler现在正在生成图像的噪声。 - 解码cfg缩放 - 较低于1的某个值是最佳选择。在演示中使用1。 - 解码步骤 - 如上所述,这应与您的采样步骤匹配。演示中使用50,考虑增加到60以获得更详细的图像。

一旦上述所有设置都调整好了,您应该能够点击"Generate"并获得一个非常接近原始图像的结果。

在验证脚本以相当高的准确度重新生成源照片后,您可以尝试更改提示的细节。原始图像的较大变化可能会导致与源图像完全不同的构图的图像。

使用上述设置和下面的提示的示例输出(红发/马尾未显示)

demo

"一个笑着的棕发女人。"可以。 "一个皱眉的棕发女人。"可以。 "一个皱眉的红发女人。"可以。 "一个皱眉的红发女人骑着一匹马。"似乎完全替换了女人,现在我们有了一匹红发的小马。

user.css

webui.py附近创建一个名为user.css的文件,并将自定义的CSS代码放入其中。例如,这会使画廊变得更高:

#txt2img_gallery, #img2img_gallery{
    min-height: 768px;
}

一个有用的提示是,您可以在webui的URL后面添加/?__theme=dark来启用内置的暗色主题
例如 (http://127.0.0.1:7860/?__theme=dark)

或者,您可以在webui-user.batset COMMANDLINE_ARGS=中添加--theme=dark
例如 set COMMANDLINE_ARGS=--theme=dark

chrome_O1kvfKs1es

notification.mp3

如果webui的根文件夹中存在名为notification.mp3的音频文件,则在生成过程完成时会播放该文件。

作为灵感的来源: * https://pixabay.com/sound-effects/search/ding/?duration=0-30 * https://pixabay.com/sound-effects/search/notification/?duration=0-30

调整

跳过剪辑

这是设置中的一个滑块,用于控制CLIP网络对提示文本的处理应该提前停止的时间。

更详细的解释:

CLIP是一个非常先进的神经网络,它将您的提示文本转换为数值表示。神经网络非常适合处理这种数值表示,这就是为什么SD的开发人员选择将CLIP作为稳定扩散方法中生成图像的3个模型之一。由于CLIP是一个神经网络,这意味着它有很多层。您的提示以简单的方式被数字化,然后通过各个层进行馈送。在第一层之后,您会得到提示的数值表示,然后将其馈送到第二层,将其结果馈送到第三层,依此类推,直到到达最后一层,这是在稳定扩散中使用的CLIP的输出。这是滑块值为1。但是您可以提前停止,并使用倒数第二层的输出 - 这是滑块值为2。停止得越早,神经网络处理提示的层数就越少。

一些模型是使用这种调整进行训练的,因此设置此值有助于在这些模型上产生更好的结果。

额外噪声

通过随机种子添加额外的噪声,由设置确定,默认为0。在版本1.6.0中通过#12564实现,在设置中可在img2img -> Extra noise multiplier for img2img and hires fix下找到。如UI中所述,此参数应始终低于用于获得最佳结果的去噪强度

这个调整的一个目的是为了在高分辨率修复中添加额外的细节。对于一个非常简化的理解,你可以将其视为GAN放大和潜在放大的结合。

下面的示例是一个512x512的图像应用了高分辨率修复,使用了GAN放大器(4x-UltraSharp),去噪强度为0.45。右侧的图像使用了这个额外的噪声调整。 额外噪声 = 0 | 额外噪声 = 0.2 :-------------------------:|:-------------------------: without | with

请注意,以前在很多个月前实施的设置(Noise multiplier for img2img)在技术上实现了相同的效果,但如名称所示,适用于img2img(不适用于hires.fix),并且由于它的实施非常敏感,实际上只有在11.1的范围内有用。对于几乎所有操作,建议使用新的Extra noise参数。

对于开发人员,还存在一个回调函数(on_extra_noise)。下面是一个使用示例,使添加噪声的区域可遮罩。https://gist.github.com/catboxanon/69ce64e0389fa803d26dc59bb444af53