Files
CavinHuang-comfyui-nodes-docs/docs/ADE_SigmaScheduleWeightedAverage.md

2.2 KiB

Sigma Schedule Weighted Mean 🎭🅐🅓

Documentation

此节点旨在通过计算两个提供的sigma计划的加权平均值来创建一个新的sigma计划。它允许根据指定的加权因子将两个计划的特性混合成一个新的计划。

Input types

Required

  • schedule_A
    • 第一个要混合的sigma计划。它是加权平均计算的基础之一。
    • Comfy dtype: SIGMA_SCHEDULE
    • Python dtype: SigmaSchedule
  • schedule_B
    • 第二个与第一个混合的sigma计划。它为加权平均计算做出贡献,补充第一个计划。
    • Comfy dtype: SIGMA_SCHEDULE
    • Python dtype: SigmaSchedule
  • weight_A
    • 第一个sigma计划的加权因子。它决定了第一个计划在最终混合计划中的特性比例。
    • Comfy dtype: FLOAT
    • Python dtype: float

Output types

  • sigma_schedule
    • Comfy dtype: SIGMA_SCHEDULE
    • 根据指定的加权因子混合两个输入计划后的结果sigma计划。
    • Python dtype: SigmaSchedule

Usage tips

  • Infra type: CPU
  • Common nodes: unknown

Source code

class WeightedAverageSigmaScheduleNode:
    @classmethod
    def INPUT_TYPES(s):
        return {
            "required": {
                "schedule_A": ("SIGMA_SCHEDULE",),
                "schedule_B": ("SIGMA_SCHEDULE",),
                "weight_A": ("FLOAT", {"default": 0.5, "min": 0.0, "max": 1.0, "step": 0.001}),
            }
        }
    
    RETURN_TYPES = ("SIGMA_SCHEDULE",)
    CATEGORY = "Animate Diff 🎭🅐🅓/sample settings/sigma schedule"
    FUNCTION = "get_sigma_schedule"

    def get_sigma_schedule(self, schedule_A: SigmaSchedule, schedule_B: SigmaSchedule, weight_A: float):
        validate_sigma_schedule_compatibility(schedule_A, schedule_B)
        new_sigmas = schedule_A.model_sampling.sigmas * weight_A + schedule_B.model_sampling.sigmas * (1-weight_A)
        combo_schedule = schedule_A.clone()
        combo_schedule.model_sampling.set_sigmas(new_sigmas)
        return (combo_schedule,)