StupidGame's picture
Upload 1941 files
baa8e90
#---------------------------------------------------------------------------------------------------------------------#
# Comfyroll Nodes by RockOfFire and Akatsuzi https://github.com/Suzie1/CR-Animation-Nodes
# 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:
@classmethod
def INPUT_TYPES(s):
return {"required": {"text": ("STRING", {"multiline": False, "default": "text"}),
},
}
RETURN_TYPES = ("INT", "FLOAT", "STRING", )
RETURN_NAMES = ("INT", "FLOAT", "show_help", )
FUNCTION = "convert"
CATEGORY = icons.get("Comfyroll/Utils/Conversion")
def convert(self, text):
# Check if number
if text.replace('.','',1).isdigit():
float_out = float(text)
int_out = int(float_out)
else:
print(f"[Error] CR String To Number. Not a number.")
show_help = "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Conversion-Nodes#cr-string-to-number"
return (int_out, float_out, show_help,)
#---------------------------------------------------------------------------------------------------------------------#
class CR_TextListToString:
@classmethod
def INPUT_TYPES(s):
return {"required": {
"text_list": ("STRING", {"forceInput": True}),
},
}
RETURN_TYPES = ("STRING", "STRING", )
RETURN_NAMES = ("STRING", "show_help", )
FUNCTION = "joinlist"
CATEGORY = icons.get("Comfyroll/Utils/Conversion")
def joinlist(self, text_list):
string_out = " ".join(text_list)
show_help = "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Conversion-Nodes#cr-text-list-to-string"
return (string_out, show_help, )
#---------------------------------------------------------------------------------------------------------------------#
# based on Repeater node by pythongosssss
class CR_StringToCombo:
@classmethod
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, )
#---------------------------------------------------------------------------------------------------------------------------------------------------#
# Cloned from Mikey Nodes
class CR_IntegerToString:
@classmethod
def INPUT_TYPES(s):
return {"required": {"int_": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}),
}
}
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, )
#---------------------------------------------------------------------------------------------------------------------------------------------------#
# Cloned from Mikey Nodes
class CR_FloatToString:
@classmethod
def INPUT_TYPES(s):
return {"required": {"float_": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 1000000.0}),
}
}
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, )
#---------------------------------------------------------------------------------------------------------------------
class CR_FloatToInteger:
@classmethod
def INPUT_TYPES(cls):
return {"required": {"_float": ("FLOAT", {"default": 0.0})}}
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, )
#---------------------------------------------------------------------------------------------------------------------------------------------------#
# This node is used to convert type Seed to type INT
class CR_SeedToInt:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"seed": ("SEED", ),
}
}
RETURN_TYPES = ("INT", "STRING", )
RETURN_NAMES = ("INT", "show_help", )
FUNCTION = "seed_to_int"
CATEGORY = icons.get("Comfyroll/Utils/Conversion")
def seed_to_int(self, seed):
show_help = "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Conversion-Nodes#cr-seed-to-int"
return (seed.get('seed'), 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 Text List To String":CR_TextListToString,
"CR Seed to Int": CR_SeedToInt,
}
'''