Files
nkchocoai-ComfyUI-PromptUti…/py/node/preset.py
T

76 lines
2.4 KiB
Python

from .base import BaseNode
from ..preset import PresetManager, PresetManagerAdvanced
import folder_paths
class PromptUtilitiesLoadPreset(BaseNode):
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"preset": (list(PresetManager.get_presets().keys()), ),
}
}
RETURN_TYPES = ("STRING",)
FUNCTION = "load_preset"
def load_preset(self, preset):
prompt = PresetManager.get_preset(preset)
return (prompt,)
class PromptUtilitiesLoadPresetAdvanced(BaseNode):
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"preset": (list(PresetManagerAdvanced.get_presets().keys()), ),
}
}
RETURN_TYPES = ("STRING","STRING",folder_paths.get_filename_list("loras"),"FLOAT","FLOAT","LORA_STACK",)
RETURN_NAMES = ("positive prompt","negative prompt","lora name","strength model","strength clip","lora stack",)
FUNCTION = "load_preset"
def load_preset(self, preset):
preset = PresetManagerAdvanced.get_preset(preset)
positive_prompt = preset.get("positive_prompt","")
negative_prompt = preset.get("negative_prompt","")
lora = preset.get("lora", None)
lora_name, strength_model, sterngth_clip = self.load_lora(lora)
loras = preset.get("loras", None)
if loras is None and lora is not None:
lora_stack = [(lora_name, strength_model, sterngth_clip)]
else:
lora_stack = self.load_loras(loras)
return (positive_prompt, negative_prompt, lora_name, strength_model, sterngth_clip, lora_stack)
def load_lora(self, lora):
if lora is None:
return "None", 0, 0
lora_name = lora.get("lora_name", "None")
if "weight" in lora:
strength_model = lora.get("weight", 0)
sterngth_clip = lora.get("weight", 0)
else:
strength_model = lora.get("strength_model", 0)
sterngth_clip = lora.get("strength_clip", 0)
return lora_name, strength_model, sterngth_clip
def load_loras(self, loras):
lora_stack = []
if loras is None:
return lora_stack
for lora in loras:
lora_name, strength_model, sterngth_clip = self.load_lora(lora)
lora_stack.append((lora_name, strength_model, sterngth_clip))
return lora_stack