2.4 KiB
2.4 KiB
Documentation
- Class name: VPScheduler
- Category: sampling/custom_sampling/schedulers
- Output node: False
- Repo Ref: https://github.com/comfyanonymous/ComfyUI
VPScheduler节点旨在为扩散模型生成一个连续的方差保持(VP)噪声时间表。它在采样过程中起着至关重要的作用,通过确定每一步的噪声水平,这对于在生成的样本中实现高质量的结果至关重要。
Input types
Required
- steps
- 参数'steps'定义了噪声时间表中的步数。它是采样过程的一个基本方面,因为它决定了每一步应用的噪声水平的粒度,直接影响最终输出的质量。
- Comfy dtype: INT
- Python dtype: int
Optional
- beta_d
- 参数'beta_d'控制时间表中噪声增加的速率。它很重要,因为它影响着步骤中噪声的分布,进而影响生成样本的收敛和细节。
- Comfy dtype: FLOAT
- Python dtype: float
- beta_min
- 参数'beta_min'设置时间表中噪声的最低水平。它很重要,因为它确保采样过程的初始步骤具有足够的噪声水平,以促进生成多样化和详细的输出。
- Comfy dtype: FLOAT
- Python dtype: float
- eps_s
- 参数'eps_s'指定噪声时间表的结束值。它是确定采样过程中应用的最终噪声水平的关键因素,这对于生成样本的细微细节和整体质量至关重要。
- Comfy dtype: FLOAT
- Python dtype: float
Output types
- sigmas
- 输出'sigmas'提供了VP噪声时间表中每一步计算出的噪声水平。它很重要,因为它构成了采样过程的基础,指导生成最终输出。
- Comfy dtype: SIGMAS
- Python dtype: torch.Tensor
Usage tips
- Infra type: CPU
Source code
class VPScheduler:
@classmethod
def INPUT_TYPES(s):
return {'required': {'steps': ('INT', {'default': 20, 'min': 1, 'max': 10000}), 'beta_d': ('FLOAT', {'default': 19.9, 'min': 0.0, 'max': 1000.0, 'step': 0.01, 'round': False}), 'beta_min': ('FLOAT', {'default': 0.1, 'min': 0.0, 'max': 1000.0, 'step': 0.01, 'round': False}), 'eps_s': ('FLOAT', {'default': 0.001, 'min': 0.0, 'max': 1.0, 'step': 0.0001, 'round': False})}}
RETURN_TYPES = ('SIGMAS',)
CATEGORY = 'sampling/custom_sampling/schedulers'
FUNCTION = 'get_sigmas'
def get_sigmas(self, steps, beta_d, beta_min, eps_s):
sigmas = k_diffusion_sampling.get_sigmas_vp(n=steps, beta_d=beta_d, beta_min=beta_min, eps_s=eps_s)
return (sigmas,)