菜单

其他高级脚本

相关源文件

本页面文档介绍了Stable Diffusion Web UI中提供的专门脚本,这些脚本提供了超越基本图像生成的高级功能。这些脚本扩展了核心功能,支持提示矩阵、图像外绘、回环处理等专用工作流程。有关X/Y/Z图脚本的信息,请参阅X/Y/Z图

脚本架构概述

WebUI中的高级脚本基于脚本架构中描述的脚本系统。每个脚本都继承自Script基类,并实现特定的方法以与UI集成和处理图像。

来源:scripts/prompt_matrix.py40-108 scripts/prompts_from_file.py110-191 scripts/loopback.py10-140 scripts/sd_upscale.py12-101 scripts/outpainting_mk_2.py121-295 scripts/poor_mans_outpainting.py12-146 scripts/img2imgalt.py121-218 scripts/custom_code.py38-90

提示词操作脚本

提示词矩阵

提示词矩阵脚本通过管道符(|)分隔的提示词部分组合来生成多个图像。它会创建一个图像网格,展示所有可能的组合。

参数

参数描述
将变量部分放在提示词的开头启用后,会将变体放在提示词的开头,而不是放在基础提示词之后
为每张图片使用不同的种子启用后,为每个生成的图像使用不同的种子
选择提示词选择是将矩阵应用于正面提示词还是负面提示词
选择连接符在逗号或空格之间选择,作为连接提示词部分的定界符
网格边距设置结果网格中图像之间的像素边距大小

使用示例

使用提示词 一只猫 | 在海滩上 | 戴着太阳镜,该脚本将生成

  • 一只猫
  • 一只海滩上的猫
  • 一只戴着太阳镜的猫
  • 一只在海滩上戴着太阳镜的猫

来源:scripts/prompt_matrix.py40-108

文件提示词

此脚本允许从文件或文本框中提供的提示词列表中生成图像,并为每个提示词提供可选的命令行式参数。

参数

参数描述
每次换行迭代种子启用后,每次换行会递增地更改种子
对所有行使用相同的随机种子启用后,对所有提示词使用相同的随机种子
将提示词插入到选择是将文件提示词插入到基础提示词的开头还是结尾
提示词输入列表用于输入多个提示词的文本区域,每行一个

命令行式参数

脚本支持每行提示词中的命令行式参数,使用 --参数 值 语法

a cat --steps 20 --cfg_scale 7
a dog --width 768 --height 512

支持的参数包括

  • --prompt, --negative_prompt
  • --steps, --cfg_scale, --seed
  • --width, --height, --batch_size
  • --sampler_name, --tiling
  • 以及更多(请参阅scripts/prompts_from_file.py35-59)

来源:scripts/prompts_from_file.py35-191

迭代处理脚本

回环

回环脚本使用img2img迭代方法,将每次生成的输出反馈回下一次作为输入图像。这允许在多次迭代中逐步优化图像。

参数

参数描述
循环执行的迭代次数
最终去噪强度最终迭代的目标去噪强度
去噪强度曲线控制去噪强度在迭代过程中如何变化
附加被查询的提示词在每次迭代中选择性地附加AI生成的标签

来源:scripts/loopback.py10-140

SD 放大

此脚本通过将图像分割成小块,对每个小块使用img2img进行处理,然后将它们重新组合成一张高分辨率图像来放大图像。

参数

参数描述
切片重叠切片之间的重叠像素(值越高,接缝越少)
放大系数将图像放大多少倍(1.0-4.0)
放大器初始放大时使用的放大器

来源:scripts/sd_upscale.py12-101

画布扩展脚本

外绘 Mk 2

一个复杂的外绘脚本,通过在扩展区域生成内容来将图像扩展到其原始边界之外。此版本使用先进的噪声匹配技术来创建无缝的扩展。

参数

参数描述
扩展像素在选定方向上添加的像素数
蒙版模糊应用于蒙版的模糊量(影响过渡)
外绘方向扩展的边(左、右、上、下)
衰减指数控制细节保留(值越低 = 细节越多)
颜色变化生成区域中颜色随机化的量

来源:scripts/outpainting_mk_2.py16-117 scripts/outpainting_mk_2.py121-295

简易外绘

一个更简单的外绘实现,它扩展画布并使用标准的图像修复功能填充新区域。

参数

参数描述
扩展像素在选定方向上添加的像素数
蒙版模糊应用于蒙版的模糊量
蒙版内容如何初步填充蒙版区域
外绘方向扩展的边(左、右、上、下)

此脚本与外绘 Mk 2 的主要区别在于,此脚本不使用专门的噪声匹配技术,因此更简单,但可能不够无缝。

来源:scripts/poor_mans_outpainting.py12-146

替代处理脚本

img2img 替代测试

此脚本提供了一种 img2img 处理的替代方法,它尝试找到会生成输入图像的噪声,然后对其进行调整以创建变体。

参数

参数描述
覆盖采样方法强制使用 Euler 采样器
原始提示词/负面提示词用于查找输入图像噪声的提示词
解码步数查找噪声过程的步数
解码 CFG 缩放查找噪声过程的 CFG 缩放
随机性在找到的噪声和随机噪声之间混合
Sigma 调整查找噪声的替代方法

来源:scripts/img2imgalt.py14-118 scripts/img2imgalt.py121-218

自定义代码

此脚本允许执行自定义Python代码来创建自定义工作流。只有在启动WebUI时启用了--allow-code选项时才可用。

参数

参数描述
Python代码用于输入自定义Python代码的文本区域
缩进级别用于缩进的空格数

示例代码

来源:scripts/custom_code.py38-90

高级脚本使用技巧

  1. 组合脚本:大多数高级脚本不能同时使用,因为它们各自控制着处理流程。

  2. 最佳实践:

    • 对于外绘:较高的重叠值和更多的步数通常会产生更好的结果。
    • 对于SD放大:将切片大小与源图像的纵横比匹配以获得最佳效果。
    • 对于回环:从较低的去噪强度开始,并使用“线性”曲线以获得最可预测的结果。
    • 对于提示词矩阵:使用较短的变体以保持网格的可管理性。
  3. 性能考量:

    • SD放大和外绘等脚本会处理多个切片/区域,从而增加处理时间。
    • 回环会将生成时间乘以循环次数。
    • 提示词矩阵会根据变体的数量呈指数级增加生成时间。
  4. API兼容性:这些脚本中的大多数也可以通过API使用,如SD放大测试文件中所示。

来源:test/test_img2img.py65-68