Stable Diffusion WebUI 中调度器(Schedule type)简单研究

2024-05-03 04:52

本文主要是介绍Stable Diffusion WebUI 中调度器(Schedule type)简单研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

💎内容概要

在近期,stable diffusion webui更新了1.9版本,其中包含的一项变化就是,把采样器和调度器(Schedule type)分开了,之前是合并在一起来选择的,所以这篇文章主要分两个部分,第一个部分是作者为什么把他们给分开了,第二个是采样器和调度器的概念对于设计师来说,是否需要重点理解。

✨作者怎么说

了解原作者的思路,还是得从官方更新说明上看,主要是这几个相关的帖子:

1.9.0 · AUTOMATIC1111/stable-diffusion-webui · Discussion #15498 · GitHub

这里分为两块,一块是在UI界面上增加了调度器的设置的说明:

emm,简单来说,就是没有太多说明,如果是选择了Automatic,那么会根据采样器自动调取最合适的调度器。

所以,对于使用来说,大家默认选择“Automatic”就好了。

另外还有一个相关的帖子,是关于SDXL-Lightning模型的。

原帖地址在:Sgm uniform scheduler for SDXL-Lightning models by KohakuBlueleaf · Pull Request #15325 · AUTOMATIC1111/stable-diffusion-webui · GitHub

(马赛克部分请忽略,虽然是比较正常的图片,但是csdn的图片屏蔽尺度比较神奇,我就先马赛克为净了)

SDXL-Lightning模型,大家应该之前也都了解过,可以更少的步数,更快的速度,生成质量还不错的图片,所以现在在各个模型网站上还是有一席之地的,貌似感觉比turbo模型更受欢迎一些?

在这位朋友的测试下,SGM Uniform的调度器会比其他调度器更适合lightning类型的模型,并且做了一些尝试,在Euler采样器下,4步采样,分别使用不同的调度器,生成结果如上图,的确SGM Uniform在这里看起来更好一些。

我也做了一点尝试。

模型使用的是,TAILANG XL-Lightning-2.5D 闪电_2.0.safetensors

(大家如果感兴趣也可以自行下载,不需要魔法:LiblibAI·哩布哩布AI -TAILANG XL-Lightning-2.5D 闪电_2.0.safetensors)

SGM Uniform
SGM Uniform + Euler + 4Steps
Automatic + Euler + 4Steps

SGM Uniform + Euler + 4Steps
Automatic + Euler + 4Steps

emm,从效果上看,如果都是4steps,固定种子,SGM Uniform调度器的确会好一丢丢,所以如果追求极致的话,大家还是需要记得在使用lightning模型时,记得手动更改下这个调度器。

🤿概念研究

在Stable Diffusion模型中,采样器(Sampler)和调度器(Scheduler)是生成图像过程中的关键组件,它们共同决定了生成图像的质量和速度,那么这俩概念到底意味着什么呢?

  1. 采样器(Sampler):在Stable Diffusion的上下文中,采样器是指用于从噪声图像生成清晰图像的算法。这个过程被称为采样,因为它在每一步中生成一张新的图像样本。采样器通过在一系列步骤中逐渐减少噪声来生成图像,每一步都会根据预定的噪声计划(Noise Schedule)来减少噪声,并生成新的图像样本。不同的采样器有不同的算法和特性,影响着图像生成的速度和质量。
  2. 调度器(Scheduler):调度器通常与采样器的概念紧密相关,它负责控制采样过程中每一步的噪声水平,也就是所谓的噪声计划(Noise Schedule)。调度器决定了在生成图像的每一步中减少多少噪声,从而影响采样过程的速度和最终图像的清晰度。在某些文献中,调度器和采样器这两个术语有时被交替使用,因为它们都涉及到控制生成过程中的噪声减少。

就算是概念解释部分,这两个词也的确很难分开,或者可以简单的理解为:采样器是图像生成过程中的降噪算法,而调度器则控制这个过程中每一步的噪声水平,两者共同作用,决定了生成图像的质量和所需时间。当然了,这两者本来就是搭配使用的,所以强行分开解释貌似也意义不大。

对于只是想生成一张图片来说的朋友,记住以下结论就好了:

📌调度器选择Automaitc就好了,除非使用了lightning类型的模型,那就手动改一下为SGM Uniform, 当然,就算是忘记修改了,问题也不大。

🎉写在最后~

去年的时候写了两门比较基础的Stable Diffuison WebUI的基础文字课程,大家如果喜欢的话,可以按需购买,在这里首先感谢各位老板的支持和厚爱~

✨StableDiffusion系统基础课(适合啥也不会的朋友,但是得有块Nvidia显卡):

https://blog.csdn.net/jumengxiaoketang/category_12477471.html

​​​​🎆综合案例课程(适合有一点基础的朋友):

https://blog.csdn.net/jumengxiaoketang/category_12526584.html

​​​​

这里是聚梦小课堂,就算不买课也没关系,点个关注,交个朋友😄

这篇关于Stable Diffusion WebUI 中调度器(Schedule type)简单研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/955866

相关文章

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

Ollama整合open-webui的步骤及访问

《Ollama整合open-webui的步骤及访问》:本文主要介绍如何通过源码方式安装OpenWebUI,并详细说明了安装步骤、环境要求以及第一次使用时的账号注册和模型选择过程,需要的朋友可以参考... 目录安装环境要求步骤访问选择PjrIUE模型开始对话总结 安装官方安装地址:https://docs.

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

解决Spring运行时报错:Consider defining a bean of type ‘xxx.xxx.xxx.Xxx‘ in your configuration

《解决Spring运行时报错:Considerdefiningabeanoftype‘xxx.xxx.xxx.Xxx‘inyourconfiguration》该文章主要讲述了在使用S... 目录问题分析解决方案总结问题Description:Parameter 0 of constructor in x

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.