multimodalart's picture
Squashing commit
4450790 verified
#---------------------------------------------------------------------------------------------------------------------#
# 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 CR_ImageSize:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"width": ("INT", {"default": 512, "min": 64, "max": 2048}),
"height": ("INT", {"default": 512, "min": 64, "max": 2048}),
"upscale_factor": ("FLOAT", {"default": 1, "min": 1, "max": 2000})
}
}
RETURN_TYPES = ("INT", "INT", "FLOAT", "STRING", )
RETURN_NAMES = ("Width", "Height", "upscale_factor", "show_help", )
FUNCTION = "ImageSize"
CATEGORY = icons.get("Comfyroll/Essential/Legacy")
def ImageSize(self, width, height, upscale_factor):
show_help = "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Legacy-Nodes#cr-image-size"
return(width, height, upscale_factor, show_help, )
#---------------------------------------------------------------------------------------------------------------------#
class CR_AspectRatio_SDXL:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"width": ("INT", {"default": 1024, "min": 64, "max": 2048}),
"height": ("INT", {"default": 1024, "min": 64, "max": 2048}),
"aspect_ratio": (["custom", "1:1 square 1024x1024", "3:4 portrait 896x1152", "5:8 portrait 832x1216", "9:16 portrait 768x1344",
"9:21 portrait 640x1536", "4:3 landscape 1152x896", "3:2 landscape 1216x832", "16:9 landscape 1344x768", "21:9 landscape 1536x640"],),
"swap_dimensions": (["Off", "On"],),
"upscale_factor1": ("FLOAT", {"default": 1, "min": 1, "max": 2000}),
"upscale_factor2": ("FLOAT", {"default": 1, "min": 1, "max": 2000}),
"batch_size": ("INT", {"default": 1, "min": 1, "max": 64})
}
}
RETURN_TYPES = ("INT", "INT", "FLOAT", "FLOAT", "INT", "STRING", )
RETURN_NAMES = ("INT", "INT", "FLOAT", "FLOAT", "INT", "show_help", )
#RETURN_NAMES = ("Width", "Height")
FUNCTION = "Aspect_Ratio"
CATEGORY = icons.get("Comfyroll/Essential/Legacy")
def Aspect_Ratio(self, width, height, aspect_ratio, swap_dimensions, upscale_factor1, upscale_factor2, batch_size):
show_help = "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Legacy-Nodes#cr-aspect-ratio-sdxl"
if aspect_ratio == "1:1 square 1024x1024":
width, height = 1024, 1024
elif aspect_ratio == "3:4 portrait 896x1152":
width, height = 896, 1152
elif aspect_ratio == "5:8 portrait 832x1216":
width, height = 832, 1216
elif aspect_ratio == "9:16 portrait 768x1344":
width, height = 768, 1344
elif aspect_ratio == "9:21 portrait 640x1536":
width, height = 640, 1536
elif aspect_ratio == "4:3 landscape 1152x896":
width, height = 1152, 896
elif aspect_ratio == "3:2 landscape 1216x832":
width, height = 1216, 832
elif aspect_ratio == "16:9 landscape 1344x768":
width, height = 1344, 768
elif aspect_ratio == "21:9 landscape 1536x640":
width, height = 1536, 640
if swap_dimensions == "On":
return(height, width, upscale_factor1, upscale_factor2, batch_size,show_help,)
else:
return(width, height, upscale_factor1, upscale_factor2, batch_size,show_help,)
#---------------------------------------------------------------------------------------------------------------------------------------------------#
class CR_PromptMixer:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(s):
return {
"required":{
},
"optional":{
"prompt_positive": ("STRING", {"multiline": True, "default": "BASE_POSITIVE"}),
"prompt_negative": ("STRING", {"multiline": True, "default": "BASE_NEGATIVE"}),
"style_positive": ("STRING", {"multiline": True, "default": "REFINER_POSTIVE"}),
"style_negative": ("STRING", {"multiline": True, "default": "REFINER_NEGATIVE"}),
"preset": (["preset 1", "preset 2", "preset 3", "preset 4", "preset 5"],),
},
}
RETURN_TYPES = ("STRING", "STRING", "STRING", "STRING", "STRING", "STRING", )
RETURN_NAMES = ("pos_g", "pos_l", "pos_r", "neg_g", "neg_l", "neg_r", )
FUNCTION = "mixer"
CATEGORY = icons.get("Comfyroll/Essential/Legacy")
def mixer(self, prompt_positive, prompt_negative, style_positive, style_negative, preset):
show_help = "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes/wiki/Legacy-Nodes#cr-prompt-mixer"
if preset == "preset 1":
pos_g = prompt_positive
pos_l = prompt_positive
pos_r = prompt_positive
neg_g = prompt_negative
neg_l = prompt_negative
neg_r = prompt_negative
elif preset == "preset 2":
pos_g = prompt_positive
pos_l = style_positive
pos_r = prompt_positive
neg_g = prompt_negative
neg_l = style_negative
neg_r = prompt_negative
elif preset == "preset 3":
pos_g = style_positive
pos_l = prompt_positive
pos_r = style_positive
neg_g = style_negative
neg_l = prompt_negative
neg_r = style_negative
elif preset == "preset 4":
pos_g = prompt_positive + style_positive
pos_l = prompt_positive + style_positive
pos_r = prompt_positive + style_positive
neg_g = prompt_negative + style_negative
neg_l = prompt_negative + style_negative
neg_r = prompt_negative + style_negative
elif preset == "preset 5":
pos_g = prompt_positive
pos_l = prompt_positive
pos_r = style_positive
neg_g = prompt_negative
neg_l = prompt_negative
neg_r = style_negative
return (pos_g, pos_l, pos_r, neg_g, neg_l, neg_r, )
#---------------------------------------------------------------------------------------------------------------------------------------------------#
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/Essential/Legacy")
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
'''
NODE_CLASS_MAPPINGS = {
"CR Image Size": CR_ImageSize,
"CR Aspect Ratio SDXL": CR_AspectRatio_SDXL,
"CR SDXL Prompt Mixer": CR_PromptMixer,
"CR Seed to Int": CR_SeedToInt,
}
'''