BasicScheduler¶
Documentation¶
- Class name:
BasicScheduler
- Category:
sampling/custom_sampling/schedulers
- Output node:
False
The BasicScheduler node is designed to calculate and adjust the sigma values for a given model and scheduler over a specified number of steps, incorporating an optional denoise parameter to refine the process. It serves as a foundational element in custom sampling strategies, enabling precise control over the diffusion process in generative models.
Input types¶
Required¶
model
- Specifies the model for which sigma values are to be calculated, playing a crucial role in determining the diffusion process's behavior.
- Comfy dtype:
MODEL
- Python dtype:
comfy.model_management.Model
scheduler
- Defines the scheduler to be used for calculating sigma values, directly influencing the diffusion steps and their granularity.
- Comfy dtype:
COMBO[STRING]
- Python dtype:
str
steps
- Determines the number of diffusion steps to be used, affecting the resolution and granularity of the sigma values.
- Comfy dtype:
INT
- Python dtype:
int
denoise
- Optional parameter to adjust the effective number of steps based on denoising level, allowing for finer control over the diffusion process.
- Comfy dtype:
FLOAT
- Python dtype:
float
Output types¶
sigmas
- Comfy dtype:
SIGMAS
- The calculated sigma values for the specified model and scheduler, essential for controlling the diffusion process.
- Python dtype:
torch.FloatTensor
- Comfy dtype:
Usage tips¶
- Infra type:
CPU
- Common nodes:
- SamplerCustom
- SplitSigmas
- Reroute
Source code¶
class BasicScheduler:
@classmethod
def INPUT_TYPES(s):
return {"required":
{"model": ("MODEL",),
"scheduler": (comfy.samplers.SCHEDULER_NAMES, ),
"steps": ("INT", {"default": 20, "min": 1, "max": 10000}),
"denoise": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.01}),
}
}
RETURN_TYPES = ("SIGMAS",)
CATEGORY = "sampling/custom_sampling/schedulers"
FUNCTION = "get_sigmas"
def get_sigmas(self, model, scheduler, steps, denoise):
total_steps = steps
if denoise < 1.0:
if denoise <= 0.0:
return (torch.FloatTensor([]),)
total_steps = int(steps/denoise)
sigmas = comfy.samplers.calculate_sigmas(model.get_model_object("model_sampling"), scheduler, total_steps).cpu()
sigmas = sigmas[-(steps + 1):]
return (sigmas, )