Spaces:
Running
on
L40S
Running
on
L40S
#---------------------------------------------------------------------------------------------------------------------# | |
# 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, | |
} | |
''' | |