Files
Dontdrunk-ComfyUI-DD-Nodes/node/model_switcher.py
T

63 lines
1.9 KiB
Python

class DDModelSwitcher:
"""
DD 模型切换 - 在多个模型输入之间选择一个作为输出
支持最多4个模型输入,可以通过选择器指定输出哪一个模型
"""
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"模型1": ("MODEL",),
"模型2": ("MODEL",),
"选择输出": ("INT", {"default": 1, "min": 1, "max": 4, "step": 1}),
},
"optional": {
"模型3": ("MODEL",),
"模型4": ("MODEL",),
}
}
RETURN_TYPES = ("MODEL",)
RETURN_NAMES = ("模型",)
FUNCTION = "switch_model"
CATEGORY = "🍺DD系列节点"
def switch_model(self, 模型1, 模型2, 选择输出, 模型3=None, 模型4=None):
"""
在多个模型之间切换,根据选择输出指定的数字返回对应的模型
Args:
模型1-4: 输入的模型
选择输出: 选择输出第几个模型(1-4)
Returns:
选定的模型
"""
# 创建模型列表
模型列表 = [模型1, 模型2, 模型3, 模型4]
# 确定要输出的模型索引
选择索引 = int(选择输出) - 1 # 转换为0-3的索引
# 检查所选索引处是否有模型
if 选择索引 > 1 and 模型列表[选择索引] is None:
print(f"[模型切换] 警告:模型{选择索引+1}不存在,默认使用模型1")
选择索引 = 0
# 获取要输出的模型
输出模型 = 模型列表[选择索引]
print(f"[模型切换] 已选择输出模型{选择索引+1}")
return (输出模型,)
# 节点类映射
NODE_CLASS_MAPPINGS = {
"DD-ModelSwitcher": DDModelSwitcher
}
# 节点显示名称映射
NODE_DISPLAY_NAME_MAPPINGS = {
"DD-ModelSwitcher": "DD Model Switcher"
}