from .conf import CURRENT_CATEGORY, CURRENT_FUNCTION from yors_pano_zero_field import ZeroField # from yors_pano_ansi_color import log_msg import numpy as n from .util import create_shatter_effect # from ...base_util import dict_read_with_stro # required,optional class ShatterEffectAdvNode: @classmethod def INPUT_TYPES(s): # names='input_image,output_dir,frame_count,shard_size,speed,rotation,fade_start' return { "required": { "input_image_path": ZeroField.any(),#STRING,MASK,IMAGE "output_folder": ("STRING", {"multiline": False, "default": "output_frames"}), }, "optional": { "frame_count": ("STRING", {"multiline": False, "default": "30"}), "shard_size": ("STRING", {"multiline": False, "default": "40"}), "speed": ("STRING", {"multiline": False, "default": "10"}), "rotation": ("STRING", {"multiline": False, "default": "5"}), "fade_start": ("STRING", {"multiline": False, "default": "0"}), "name_prefix": ("STRING", {"multiline": False, "default": "frame_"}), "name_id_length": ("STRING", {"multiline": False, "default": "3"}), "frame_start_index": ("STRING", {"multiline": False, "default": "1"}), "shard_shape": ("STRING", {"multiline": False, "default": "square"}), "shard_mask_image": ZeroField.any(), "shards_area_mask": ZeroField.any(), "show_image": ("STRING", {"multiline": False, "default": "False"}), "save_image": ("STRING", {"multiline": False, "default": "True"}), } } RETURN_TYPES = ("STRING","STRING","IMAGE","MASK",) RETURN_NAMES = ("output_folder","filepaths","images","masks",) FUNCTION = CURRENT_FUNCTION CATEGORY = CURRENT_CATEGORY NODE_DESC = "effect shatter (1.0)" OUTPUT_NODE = True def exec(self, **kwargs): files,images,masks,has_non_empty_mask = create_shatter_effect(kwargs) # last_tensor = get_last_frame(input_image,files) output_folder = kwargs.get('output_folder') return (output_folder,'\n'.join(files),images,masks)