Files
Bjornulf_custom_nodes/loop_my_combos_samplers_schedulers.py
2024-07-06 12:05:16 +02:00

82 lines
2.9 KiB
Python

import comfy
class LoopCombosSamplersSchedulers:
combinations = [
"sgm_uniform/euler", "sgm_uniform/dpm_2", "sgm_uniform/dpmpp_2m", "sgm_uniform/lcm",
"sgm_uniform/ddim", "sgm_uniform/uni_pc",
"normal/ddim", "normal/uni_pc", "normal/euler", "normal/heunpp2", "normal/dpm_2",
"ddim_uniform/euler", "ddim_uniform/dpm_2", "ddim_uniform/lcm", "ddim_uniform/uni_pc",
"simple/euler", "simple/heun", "simple/heunpp2", "simple/dpmpp_2m", "simple/lcm", "simple/ipndm", "simple/uni_pc",
"exponential/dpm_adaptive"
]
# "normal/uni_pc_bh2", "ddim_uniform/uni_pc_bh2", "simple/uni_pc_bh2", "sgm_uniform/uni_pc_bh2"
@classmethod
def INPUT_TYPES(cls):
# Generate the list of combinations from specified pairs
combi_list = ["ALL 6 COMBINATIONS (sgm_uniform)", "ALL 5 COMBINATIONS (normal)", "ALL 5 COMBINATIONS (ddim_uniform)", "ALL 7 COMBINATIONS (simple)"] + cls.combinations
return {
"required": {
"combination": (combi_list,),
}
}
RETURN_TYPES = (comfy.samplers.KSampler.SAMPLERS, comfy.samplers.KSampler.SCHEDULERS,)
RETURN_NAMES = ("sampler_name", "scheduler",)
OUTPUT_IS_LIST = (True, False)
FUNCTION = "create_loop_combination"
CATEGORY = "Bjornulf"
def create_loop_combination(self, combination):
if combination == "ALL 6 COMBINATIONS (sgm_uniform)":
return (["euler", "dpm_2", "dpmpp_2m", "lcm", "ddim", "uni_pc"], "sgm_uniform",) #, "uni_pc_bh2" uni_pc_bh2 is too similar to exist....
elif combination == "ALL 5 COMBINATIONS (normal)":
return (["ddim", "uni_pc", "euler", "heunpp2", "dpm_2"], "normal",) #, "uni_pc_bh2"
elif combination == "ALL 5 COMBINATIONS (ddim_uniform)":
return (["euler", "dpm_2", "lcm", "ddim", "uni_pc"], "ddim_uniform",) #, "uni_pc_bh2"
elif combination == "ALL 7 COMBINATIONS (simple)":
return (["euler", "heun", "heunpp2", "dpmpp_2m", "lcm", "ipndm", "uni_pc"], "simple",) #, "uni_pc_bh2"
else:
# Split the input and output the selected sampler and scheduler
scheduler, sampler = combination.split("/")
# return [(sampler, scheduler,)]
return ([sampler], scheduler,)
# + ("exponential", "dpm_adaptive")
# TESTED GOOD WITH SD3, modelsampling 5 / CFG 3 / 28 steps
# sgm_uniform + euler
# sgm_uniform + dpm_2
# sgm_uniform + dpmpp_2m
# sgm_uniform + lcm
# sgm_uniform + ddim
# sgm_uniform + uni_pc
# sgm_uniform + uni_pc_bh2
# normal + ddim
# normal + uni_pc
# normal + uni_pc_bh2
# normal + euler
# normal + heunpp2
# normal + dpm_2
# ddim_uniform + euler
# ddim_uniform + dpm_2
# ddim_uniform + lcm
# ddim_uniform + uni_pc
# ddim_uniform + uni_pc_bh2
# simple + euler
# simple + heun
# simple + heunpp2
# simple + dpmpp_2m
# simple + lcm
# simple + ipndm
# simple + uni_pc
# simple + uni_pc_bh2
# exponential + dpm_adaptive