mirror of
https://github.com/justUmen/Bjornulf_custom_nodes.git
synced 2026-03-21 12:42:11 -03:00
82 lines
2.9 KiB
Python
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 |