|
|
|
|
|
|
|
|
|
|
|
from ..categories import icons |
|
|
|
|
|
class CR_JobList: |
|
|
|
@classmethod |
|
def INPUT_TYPES(s): |
|
job_types = ["Input", "Batch Process", "Output"] |
|
return {"required":{ |
|
"job_desc1": ("STRING", {"default": "job description", "multiline": True}), |
|
"job_type1": (job_types,), |
|
"job_alias1": ("STRING", {"default": "", "multiline": False}), |
|
"job_desc2": ("STRING", {"default": "job description", "multiline": True}), |
|
"job_type2": (job_types,), |
|
"job_alias2": ("STRING", {"default": "", "multiline": False}), |
|
"job_desc3": ("STRING", {"default": "job description", "multiline": True}), |
|
"job_type3": (job_types,), |
|
"job_alias3": ("STRING", {"default": "", "multiline": False}), |
|
}, |
|
"optional": {"job": ("JOB",), |
|
} |
|
} |
|
|
|
RETURN_TYPES = ("JOB", ) |
|
RETURN_NAMES = ("JOB", ) |
|
FUNCTION = "increment" |
|
CATEGORY = icons.get("Comfyroll/Workflow") |
|
|
|
def increment(self, job_desc1, job_type1, job_alias1, job_desc2, job_type2, job_alias2, job_desc3, job_type3, job_alias3, job=None): |
|
job = list() |
|
return (job, ) |
|
|
|
|
|
class CR_JobScheduler: |
|
|
|
@classmethod |
|
def INPUT_TYPES(s): |
|
|
|
status = ["Asleep", "Awake"] |
|
|
|
return {"required":{ |
|
"schedule": ("SCHEDULE", ), |
|
"index": ("INT", {"default": 1, "min": -10000, "max": 10000}), |
|
"schedule_alias": ("STRING", {"default": "", "multiline": False}), |
|
"status": (status,), |
|
} |
|
} |
|
|
|
RETURN_TYPES = ("JOB", "STRING", ) |
|
RETURN_NAMES = ("JOB", "log", ) |
|
FUNCTION = "listen" |
|
CATEGORY = icons.get("Comfyroll/Workflow") |
|
|
|
def listen(listen, index, schedule, schedule_alias, status): |
|
log = "" |
|
return (log, ) |
|
|
|
class CR_JobCurrentFrame: |
|
|
|
@classmethod |
|
def INPUT_TYPES(s): |
|
|
|
return {"required":{ |
|
"index": ("INT", {"default": 1, "min": -10000, "max": 10000}), |
|
"max_frames": ("INT", {"default": 1, "min": 0, "max": 10000}), |
|
"print_to_console": ([ |
|
"Yes", |
|
"No"],), |
|
} |
|
} |
|
|
|
RETURN_TYPES = ("INT", "INT",) |
|
RETURN_NAMES = ("current_frame", "max_frames",) |
|
FUNCTION = "to_console" |
|
CATEGORY = icons.get("Comfyroll/Workflow") |
|
|
|
def to_console(self, index, max_frames, print_to_console): |
|
if print_to_console == "Yes": |
|
print(f"[Info] CR Current Frame:{index}") |
|
current_frame = index |
|
|
|
return (current_frame, max_frames, ) |
|
|
|
|
|
class CR_CheckJobComplete: |
|
|
|
@classmethod |
|
def INPUT_TYPES(s): |
|
return {"required":{ |
|
"current_frame": ("INT", {"default": 1, "min": 0, "max": 10000}), |
|
"max_frames": ("INT", {"default": 1, "min": 0, "max": 10000}), |
|
} |
|
} |
|
|
|
RETURN_TYPES = ("BOOL", ) |
|
RETURN_NAMES = ("BOOL", ) |
|
FUNCTION = "reset" |
|
CATEGORY = icons.get("Comfyroll/Workflow") |
|
|
|
def reset(self, current_frame, max_frames): |
|
|
|
return (BOOL) |
|
|
|
|
|
class CR_SpawnWorkflowInstance: |
|
|
|
@classmethod |
|
def INPUT_TYPES(s): |
|
|
|
|
|
|
|
return {"required":{ |
|
|
|
"job": ("JOB", ), |
|
|
|
"workflow_path": ("STRING", {"multiline": False, "default": ""}), |
|
"workflow_name": ("STRING", {"multiline": False, "default": ""}), |
|
} |
|
} |
|
|
|
RETURN_TYPES = () |
|
RETURN_NAMES = () |
|
OUTPUT_NODE = True |
|
FUNCTION = "spawn" |
|
CATEGORY = icons.get("Comfyroll/Workflow") |
|
|
|
def spawn(self, job, workflow_path, workflow_name): |
|
|
|
return () |
|
|
|
|
|
class CR_LoadWorkflow: |
|
|
|
@classmethod |
|
def INPUT_TYPES(s): |
|
|
|
return {"required":{ |
|
"workflow_path": ("STRING", {"multiline": False, "default": ""}), |
|
"workflow_name": ("STRING", {"multiline": False, "default": ""}), |
|
} |
|
} |
|
|
|
RETURN_TYPES = ("WORKFLOW", ) |
|
RETURN_NAMES = ("WORKFLOW", ) |
|
FUNCTION = "workflow" |
|
CATEGORY = icons.get("Comfyroll/Workflow") |
|
|
|
def spawn(self, mode, job, schedule, workflow): |
|
workflow = "" |
|
return (workflow, ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
''' |
|
NODE_CLASS_MAPPINGS = { |
|
# Jobs |
|
"CR Job List": CR_JobList, |
|
"CR Job Scheduler": CR_JobScheduler, |
|
"CR Job Current Frame": CR_JobCurrentFrame, |
|
"CR Check Job Complete": CR_CheckJobComplete, |
|
"CR Spawn Workflow Instance": CR_SpawnWorkflowInstance, |
|
"CR Load Workflow": CR_LoadWorkflow, |
|
} |
|
''' |
|
|
|
|