Files
2025-04-15 22:43:13 +03:00

59 lines
2.4 KiB
Python

import folder_paths
# Updated Node name for registration (used in JS)
NODE_NAME = "Slider Stacker (DSS)" # Internal name, keep suffix for uniqueness
########################################################################################################################
# TSC Slider Stacker (DSS) - String Inputs for Names
class TSC_Slider_Stacker_Standalone:
@classmethod
def INPUT_TYPES(cls):
# ... (rest of INPUT_TYPES remains the same) ...
max_sliders = 50
inputs = {
"required": {
"slider_max_strength": ("FLOAT", {"default": 1.00, "min": 0.0, "max": 2.0, "step": 0.01, "precision": 2, "display": "number"}),
"slider_count": ("INT", {"default": 1, "min": 0, "max": max_sliders, "step": 1}),
}
}
for i in range(1, max_sliders + 1):
inputs["required"][f"slider_name_{i}"] = ("STRING", {"multiline": False, "default": "None"})
widget_name = f"({i})"
inputs["required"][widget_name] = ("FLOAT", {
"default": 1.0,
"min": 0.0,
"max": 2.0,
"step": 0.01,
"precision": 2,
"display": "slider"
})
return inputs
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("SLIDER_WEIGHTS",)
FUNCTION = "slider_stacker"
# Updated Category
CATEGORY = "Dynamic Sliders Stack"
# ... (slider_stacker function remains the same) ...
def slider_stacker(self, slider_max_strength, slider_count, **kwargs):
sliders_available = [kwargs.get(f"slider_name_{i}") for i in range(1, slider_count + 1)]
weights_raw = [kwargs.get(f"({i})") for i in range(1, slider_count + 1)]
safe_max_strength = max(0.0, slider_max_strength)
weights_clamped_by_widget = [max(0.0, min(w, 2.0)) for w in weights_raw]
weights_clamped_final = [min(w, safe_max_strength) for w in weights_clamped_by_widget]
active_weights = []
for i in range(slider_count):
active_weights.append(f"{weights_clamped_final[i]:.2f}")
weights_string = ", ".join(active_weights)
return (weights_string,)
# --- Mappings ---
NODE_CLASS_MAPPINGS = {
NODE_NAME: TSC_Slider_Stacker_Standalone
}
# Updated Display Name
NODE_DISPLAY_NAME_MAPPINGS = {
NODE_NAME: "Slider Stacker" # Removed suffix for cleaner UI
}