2.7 KiB
2.7 KiB
tags
| tags | |
|---|---|
|
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, )