Files
CavinHuang-comfyui-nodes-docs/docs/VPScheduler.md
2024-05-15 08:09:49 +08:00

2.4 KiB

Documentation

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,)