Files
2024-02-03 12:37:10 +09:00

86 lines
3.0 KiB
Python

import json
import numpy as np
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, negative_prompt, lora_name, strength_model, sterngth_clip, lora_stack = \
PresetManagerAdvanced.parse_preset(preset_)
return (positive_prompt, negative_prompt, lora_name, strength_model, sterngth_clip, lora_stack)
class PromptUtilitiesRandomPreset(BaseNode):
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"filename": (list(PresetManager.get_preset_filename_list()), ),
"choice_preset": ("STRING", {"multiline": True, "dynamicPrompts": False}),
"seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff})
}
}
RETURN_TYPES = ("STRING",)
FUNCTION = "random_preset"
def random_preset(self, **kwargs):
choice_preset = kwargs['choice_preset']
return (choice_preset,)
class PromptUtilitiesRandomPresetAdvanced(BaseNode):
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"filename": (list(PresetManagerAdvanced.get_preset_filename_list()), ),
"choice_preset": ("STRING", {"multiline": True, "dynamicPrompts": False}),
"seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff})
}
}
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 = "random_preset"
def random_preset(self, **kwargs):
choice_preset = kwargs['choice_preset']
positive_prompt, negative_prompt, lora_name, strength_model, sterngth_clip, lora_stack = \
PresetManagerAdvanced.parse_preset(json.loads(choice_preset))
return (positive_prompt, negative_prompt, lora_name, strength_model, sterngth_clip, lora_stack)