Spaces:
Runtime error
Runtime error
| #---------------------------------------------------------------------------------------------------------------------# | |
| # Comfyroll Studio custom nodes by RockOfFire and Akatsuzi https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes | |
| # for ComfyUI https://github.com/comfyanonymous/ComfyUI | |
| #---------------------------------------------------------------------------------------------------------------------# | |
| from ..categories import icons | |
| class AnyType(str): | |
| def __ne__(self, __value: object) -> bool: | |
| return False | |
| any = AnyType("*") | |
| #---------------------------------------------------------------------------------------------------------------------# | |
| class CR_StringToNumber: | |
| def INPUT_TYPES(s): | |
| return {"required": {"text": ("STRING", {"multiline": False, "default": "text", "forceInput": True}), | |
| "round_integer": (["round", "round down","round up"],), | |
| }, | |
| } | |
| RETURN_TYPES = ("INT", "FLOAT", "STRING", ) | |
| RETURN_NAMES = ("INT", "FLOAT", "show_help", ) | |
| FUNCTION = "convert" | |
| CATEGORY = icons.get("Comfyroll/Utils/Conversion") | |
| def convert(self, text, round_integer): | |
| # Check if the text starts with a minus sign | |
| if text.startswith('-') and text[1:].replace('.','',1).isdigit(): | |
| # If it starts with '-', remove it and convert the rest to int and float | |
| float_out = -float(text[1:]) | |
| else: | |
| # Check if number | |
| if text.replace('.','',1).isdigit(): | |
| float_out = float(text) | |
| else: | |
| print(f"[Error] CR String To Number. Not a number.") | |
| return {} | |
| if round_integer == "round up": | |
| if text.startswith('-'): | |
| int_out = int(float_out) | |
| else: | |
| int_out = int(float_out) + 1 | |
| elif round_integer == "round down": | |
| if text.startswith('-'): | |
| int_out = int(float_out) - 1 | |
| else: | |
| int_out = int(float_out) | |
| else: | |
| int_out = round(float_out) | |
| show_help = "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Conversion-Nodes#cr-string-to-number" | |
| return (int_out, float_out, show_help,) | |
| #---------------------------------------------------------------------------------------------------------------------# | |
| # based on Repeater node by pythongosssss | |
| class CR_StringToCombo: | |
| def INPUT_TYPES(cls): | |
| return { | |
| "required": { | |
| "text": ("STRING", {"multiline": False, "default": "", "forceInput": True}), | |
| }, | |
| } | |
| RETURN_TYPES = (any, "STRING", ) | |
| RETURN_NAMES = ("any", "show_help", ) | |
| FUNCTION = "convert" | |
| CATEGORY = icons.get("Comfyroll/Utils/Conversion") | |
| def convert(self, text): | |
| text_list = list() | |
| if text != "": | |
| values = text.split(',') | |
| text_list = values[0] | |
| print(text_list) | |
| show_help = "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Conversion-Nodes#cr-string-to-combo" | |
| return (text_list, show_help, ) | |
| #---------------------------------------------------------------------------------------------------------------------# | |
| # based on Repeater node by pythongosssss | |
| class CR_StringToBoolean: | |
| def INPUT_TYPES(cls): | |
| return { | |
| "required": { | |
| "text": ("STRING", {"multiline": False, "default": "", "forceInput": True}), | |
| }, | |
| } | |
| RETURN_TYPES = ("BOOLEAN", "STRING", ) | |
| RETURN_NAMES = ("BOOLEAN", "show_help", ) | |
| FUNCTION = "convert" | |
| CATEGORY = icons.get("Comfyroll/Utils/Conversion") | |
| def convert(self, text): | |
| show_help = "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Conversion-Nodes#cr-string-to-boolean" | |
| if text == "True" or text == "true": | |
| boolean_out = True | |
| if text == "False" or text == "false": | |
| boolean_out = False | |
| else: | |
| pass | |
| return (boolean_out, show_help, ) | |
| #---------------------------------------------------------------------------------------------------------------------------------------------------# | |
| # Cloned from Mikey Nodes | |
| class CR_IntegerToString: | |
| def INPUT_TYPES(s): | |
| return {"required": {"int_": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff, "forceInput": True}), | |
| } | |
| } | |
| RETURN_TYPES = ("STRING","STRING", ) | |
| RETURN_NAMES = ("STRING","show_help", ) | |
| FUNCTION = 'convert' | |
| CATEGORY = icons.get("Comfyroll/Utils/Conversion") | |
| def convert(self, int_): | |
| show_help = "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Conversion-Nodes#cr-integer-to-string" | |
| return (f'{int_}', show_help, ) | |
| #---------------------------------------------------------------------------------------------------------------------------------------------------# | |
| # based on Mikey Nodes | |
| class CR_FloatToString: | |
| def INPUT_TYPES(s): | |
| return {"required": {"float_": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 1000000.0, "forceInput": True}), | |
| } | |
| } | |
| RETURN_TYPES = ('STRING', "STRING", ) | |
| RETURN_NAMES = ('STRING', "show_help", ) | |
| FUNCTION = 'convert' | |
| CATEGORY = icons.get("Comfyroll/Utils/Conversion") | |
| def convert(self, float_): | |
| show_help = "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Conversion-Nodes#cr-float-to-string" | |
| return (f'{float_}', show_help, ) | |
| #--------------------------------------------------------------------------------------------------------------------- | |
| # based on Mikey Nodes | |
| class CR_FloatToInteger: | |
| def INPUT_TYPES(cls): | |
| return {"required": {"_float": ("FLOAT", {"default": 0.0, "forceInput": True, "forceInput": True}), | |
| } | |
| } | |
| RETURN_TYPES = ("INT", "STRING", ) | |
| RETURN_NAMES = ("INT", "show_help", ) | |
| FUNCTION = "convert" | |
| CATEGORY = icons.get("Comfyroll/Utils/Conversion") | |
| def convert(self, _float): | |
| show_help = "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Conversion-Nodes#cr-float-to-integer" | |
| return (int(_float), show_help, ) | |
| #---------------------------------------------------------------------------------------------------------------------# | |
| # MAPPINGS | |
| #---------------------------------------------------------------------------------------------------------------------# | |
| # For reference only, actual mappings are in __init__.py | |
| # 10 nodes published | |
| ''' | |
| NODE_CLASS_MAPPINGS = { | |
| "CR String To Number": CR_StringToNumber, | |
| "CR String To Combo": CR_StringToCombo, | |
| "CR Float To String": CR_FloatToString, | |
| "CR Float To Integer": CR_FloatToInteger, | |
| "CR Integer To String": CR_IntegerToString, | |
| "CR String To Boolean": CR_StringToBoolean, | |
| } | |
| ''' | |