46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
class PromptJournal:
|
|
def __init__(self):
|
|
self.prompts = [""]
|
|
self.prompt_number = 0
|
|
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"prompts": ("STRING", {"multiline": True, "default": ""}),
|
|
"prompt_number": ("INT", {"default": 0, "min": 0, "step": 1}),
|
|
},
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING", "STRING")
|
|
FUNCTION = "process"
|
|
CATEGORY = "🎬🔀MediaMixer"
|
|
|
|
def process(self, prompts, prompt_number):
|
|
self.prompts = prompts.split('\n')
|
|
self.prompt_number = prompt_number
|
|
|
|
# Filter out empty rows for prompt selection
|
|
non_empty_prompts = [prompt for prompt in self.prompts if prompt.strip()]
|
|
|
|
# Wrap around the prompt_number if it's too high
|
|
effective_prompt_number = self.prompt_number % len(non_empty_prompts)
|
|
|
|
# Get the selected prompt
|
|
prompt = non_empty_prompts[effective_prompt_number]
|
|
|
|
# Join all prompts back into a single string, keeping empty rows
|
|
all_prompts = '\n'.join(self.prompts)
|
|
|
|
return (prompt, all_prompts)
|
|
|
|
# A dictionary that contains all nodes you want to export with their names
|
|
NODE_CLASS_MAPPINGS = {
|
|
"PromptJournal": PromptJournal
|
|
}
|
|
|
|
# A dictionary that contains the friendly/humanly readable titles for the nodes
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"PromptJournal": "Prompt Journal"
|
|
}
|