From 327b2a1fe30716a5aff7aeb460308b5b360e90cc Mon Sep 17 00:00:00 2001 From: Acly Date: Fri, 4 Oct 2024 11:04:35 +0200 Subject: [PATCH] More parameter nodes for shared workflows --- __init__.py | 6 +++++ krita.py | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/__init__.py b/__init__.py index b8f3cd2..cddcfa7 100644 --- a/__init__.py +++ b/__init__.py @@ -23,6 +23,9 @@ NODE_CLASS_MAPPINGS = { "ETN_KritaImageLayer": krita.KritaImageLayer, "ETN_KritaMaskLayer": krita.KritaMaskLayer, "ETN_IntParameter": krita.IntParameter, + "ETN_BoolParameter": krita.BoolParameter, + "ETN_NumberParameter": krita.NumberParameter, + "ETN_TextParameter": krita.TextParameter, } NODE_DISPLAY_NAME_MAPPINGS = { "ETN_LoadImageBase64": "Load Image (Base64)", @@ -47,5 +50,8 @@ NODE_DISPLAY_NAME_MAPPINGS = { "ETN_KritaImageLayer": "Krita Image Layer", "ETN_KritaMaskLayer": "Krita Mask Layer", "ETN_IntParameter": "Integer Parameter", + "ETN_BoolParameter": "Boolean Parameter", + "ETN_NumberParameter": "Number Parameter", + "ETN_TextParameter": "Text Parameter", } WEB_DIRECTORY = "./js" diff --git a/krita.py b/krita.py index 6c30987..1c87fff 100644 --- a/krita.py +++ b/krita.py @@ -124,7 +124,7 @@ class IntParameter: "name": ("STRING", {"default": "Parameter"}), "min": ("INT", {"default": 0}), "max": ("INT", {"default": 100}), - "default": ("INT", {"default": 50}), + "default": ("INT", {"default": 0}), } } @@ -135,3 +135,66 @@ class IntParameter: def placeholder(self, name: str, min: int, max: int, default: int): return (default,) + + +class BoolParameter: + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "name": ("STRING", {"default": "Parameter"}), + "default": ("BOOLEAN", {"default": False}), + } + } + + RETURN_TYPES = ("BOOL",) + RETURN_NAMES = ("value",) + FUNCTION = "placeholder" + CATEGORY = "krita" + + def placeholder(self, name: str, default: bool): + return (default,) + + +class NumberParameter: + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "name": ("STRING", {"default": "Parameter"}), + "min": ("FLOAT", {"default": 0.0}), + "max": ("FLOAT", {"default": 1.0}), + "default": ("FLOAT", {"default": 0.0}), + } + } + + RETURN_TYPES = ("FLOAT",) + RETURN_NAMES = ("value",) + FUNCTION = "placeholder" + CATEGORY = "krita" + + def placeholder(self, name: str, min: float, max: float, default: float): + return (default,) + + +class TextParameter: + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "name": ("STRING", {"default": "Parameter"}), + "type": ( + ["general", "prompt (positive)", "prompt (negative)"], + {"default": "general"}, + ), + "default": ("STRING", {"default": ""}), + } + } + + RETURN_TYPES = ("STRING",) + RETURN_NAMES = ("value",) + FUNCTION = "placeholder" + CATEGORY = "krita" + + def placeholder(self, name: str, style: str, default: str): + return (default,)