菜单

高级特性

相关源文件

此页面为高级用户记录了 Stable Diffusion Web UI 中可用的高级功能和脚本。这些功能扩展了界面的基本功能,支持参数探索、批处理和专业的图像生成技术。有关基本 UI 功能,请参阅Web UI 指南,有关扩展系统本身的信息,请参阅扩展系统

1. X/Y/Z 图

X/Y/Z 图脚本是 Stable Diffusion Web UI 中最强大的工具之一,它使您能够通过生成具有不同参数的图像网格来系统地探索参数空间。

1.1 概述

X/Y/Z 图创建一个网格,其中每个轴可以代表不同的参数。这使您可以同时可视化更改多个参数的影响,从而无需手动进行试错即可发现最佳设置。

来源:scripts/xyz_grid.py286-396 scripts/xyz_grid.py537-793

1.2 可用参数

该脚本支持每个轴的广泛参数

参数类别示例描述
基本参数种子、步数、CFG Scale基础生成参数
采样方法采样器名称、调度器控制采样算法
模型设置检查点名称、VAE在不同模型之间切换
高级控制Sigma 调整、token 合并生成过程的微调
尺寸控制宽度/高度更改生成图像的尺寸

可用参数的完整列表定义在 xyz_grid.py 文件中的 axis_options 列表中。

来源:scripts/xyz_grid.py238-283

1.3 参数语法

X/Y/Z 图脚本支持几种特殊的参数值表示法

  1. 范围:使用 start-end 生成一个值范围

    • 示例:1-5 生成值 1, 2, 3, 4, 5
    • 带步长:1-10(2) 生成 1, 3, 5, 7, 9
  2. 带计数的范围:使用 start-end[count] 在范围内生成指定数量的值

    • 示例:0.5-1.5[5] 生成 0.5, 0.75, 1.0, 1.25, 1.5
  3. 逗号分隔值:列出由逗号分隔的单个值

    • 示例:DPM++ 2M Karras, Euler a, LMS

来源:scripts/xyz_grid.py408-615

1.4 用法示例

示例 1:探索采样器和 CFG Scale

  • X 轴:采样器名称
  • X 值:Euler a, DPM++ 2M Karras, DPM++ SDE Karras
  • Y 轴:CFG Scale
  • Y 值:5-9(1)(生成 5, 6, 7, 8, 9)

示例 2:比较模型和步数

  • X 轴:检查点名称
  • X 值:从下拉列表中选择或手动输入名称
  • Y 轴:步数
  • Y 值:10-30[5](生成 5 个等距值)

示例 3:三维探索

  • X 轴:采样器名称
  • Y 轴:CFG Scale
  • Z 轴:步数
  • 这将为每个 Z 值生成单独的网格

来源:scripts/xyz_grid.py767-777

1.5 性能考虑

该脚本会根据资源成本自动优化生成顺序。变化成本较高的参数(如切换模型)被放置在变化频率较低的轴上,以最小化开销。

来源:scripts/xyz_grid.py680-704

2. 基于提示的脚本

几个高级脚本侧重于系统地操作提示以生成变体。

2.1 提示矩阵

提示矩阵脚本允许您使用提示中的 | 分隔符来探索提示元素的组合。

主要功能

  • 允许组合测试多个提示元素
  • 可以将变量放在提示的开头或结尾
  • 支持正面和负面提示
  • 可以为每个变体使用不同的种子

来源:scripts/prompt_matrix.py40-108

2.2 从文件导入提示

此脚本允许从文本文件或输入框批量处理多个提示。

关键能力

  • 按顺序处理提示列表
  • 可以选择为每个提示迭代种子
  • 支持提示内的命令行风格参数
  • 可以将提示插入到基础提示的开头或结尾

示例文件格式

a beautiful landscape with mountains
a futuristic city --steps 30 --cfg_scale 8
--prompt "a cat" --negative_prompt "ugly, deformed" --seed 123456

来源:scripts/prompts_from_file.py102-191

3. 图像处理脚本

这些脚本提供高级的图像处理和操作方法。

3.1 循环反馈

循环反馈脚本通过 img2img 多次迭代地处理图像,将每次的输出作为下一次迭代的输入。

主要功能

  • 控制迭代次数
  • 可调的去噪强度曲线(激进、线性、懒惰)
  • 每次迭代使用不同种子的选项
  • 可以在每个步骤附加解释过的提示(CLIP 或 DeepBooru)

这对于在保持整体结构的同时逐步转换图像特别有用。

来源:scripts/loopback.py10-140

3.2 SD 放大

SD 放大提供了一种智能方式,使用 Stable Diffusion 在保持精细细节的同时放大图像。

主要功能

  • 使用传统方法(Lanczos 等)进行初始放大
  • 分块处理图像
  • 通过 Stable Diffusion 重新处理每个块
  • 无缝地将块重新组合以获得最终结果

与仅使用传统方法相比,这可以产生更高质量的放大效果,尤其适合艺术图像。

来源:scripts/sd_upscale.py12-101

3.3 图像外扩

提供了两种外扩实现方式

  1. Outpainting mk2:高级实现,带噪点匹配,实现无缝扩展

    • 分析现有图像以匹配噪点统计
    • 控制颜色变化和噪点细节
    • 同时支持多个扩展方向
  2. Poor Man's Outpainting:更简单的实现

    • 在选定方向上扩展画布
    • 使用标准图像修复填充新区域
    • 各种填充遮罩内容的选项

两种方法都允许图像扩展到其原始边界之外,这对于扩展背景或在现有图像周围添加内容非常有用。

来源:scripts/outpainting_mk_2.py15-295 scripts/poor_mans_outpainting.py12-146

3.4 Img2img 替代方案

此脚本提供了 img2img 的替代方法,可在去噪过程中提供对噪点使用的更多控制。

主要功能

  • 尝试找到图像的“正确”噪点
  • 允许在匹配的噪点和随机噪点之间混合
  • 匹配噪点时的 CFG Scale 控制
  • 寻找噪点时调整 Sigma 的选项

尝试保留原始图像的特定方面时,这可以产生更可预测的结果。

来源:scripts/img2imgalt.py14-218

4. 自定义脚本

4.1 自定义代码脚本

为了获得最大的灵活性,自定义代码脚本允许直接在 Web UI 中运行 Python 代码。

使用示例

脚本可以访问处理对象 p,并且可以在处理前修改任何参数。

来源:scripts/custom_code.py10-90

4.2 创建自定义脚本

用户可以通过扩展 modules.scripts 中的 Script 类来创建自己的脚本。

一个最小的脚本需要

  1. 一个返回脚本名称的 title() 方法
  2. 一个定义用户界面的 ui() 方法
  3. 一个执行脚本逻辑的 run() 方法

Web UI 启动时,脚本会自动从 scripts 目录检测并加载。

来源:scripts/xyz_grid.py415-536 scripts/prompt_matrix.py40-59

5. 高级采样器设置

许多高级脚本允许通过专用参数对采样过程进行微调。

关键高级参数

  • Sigma 参数:控制噪点调度
  • S Churn, S Noise:微调某些采样器中的噪点行为
  • 调度器类型:不同的噪点调度算法
  • CLIP skip:控制跳过多少层 CLIP

这些参数尤其可以通过 X/Y/Z 图脚本访问,允许对其效果进行系统性探索。

来源: scripts/xyz_grid.py238-283 modules/sd_samplers_kdiffusion.py36-46

结论

Stable Diffusion Web UI 中的高级功能为经验丰富的用户提供了强大的工具,可以超越基本使用来挖掘图像生成的潜力。通过将这些脚本与对底层参数的理解相结合,用户可以获得高度特定和可控的结果。