Spaces:
Paused
Paused
| import folder_paths | |
| import impact.wildcards | |
| class ToDetailerPipe: | |
| def INPUT_TYPES(s): | |
| return {"required": { | |
| "model": ("MODEL",), | |
| "clip": ("CLIP",), | |
| "vae": ("VAE",), | |
| "positive": ("CONDITIONING",), | |
| "negative": ("CONDITIONING",), | |
| "bbox_detector": ("BBOX_DETECTOR", ), | |
| "wildcard": ("STRING", {"multiline": True, "dynamicPrompts": False}), | |
| "Select to add LoRA": (["Select the LoRA to add to the text"] + folder_paths.get_filename_list("loras"),), | |
| "Select to add Wildcard": (["Select the Wildcard to add to the text"], ), | |
| }, | |
| "optional": { | |
| "sam_model_opt": ("SAM_MODEL",), | |
| "segm_detector_opt": ("SEGM_DETECTOR",), | |
| "detailer_hook": ("DETAILER_HOOK",), | |
| }} | |
| RETURN_TYPES = ("DETAILER_PIPE", ) | |
| RETURN_NAMES = ("detailer_pipe", ) | |
| FUNCTION = "doit" | |
| CATEGORY = "ImpactPack/Pipe" | |
| def doit(self, *args, **kwargs): | |
| pipe = (kwargs['model'], kwargs['clip'], kwargs['vae'], kwargs['positive'], kwargs['negative'], kwargs['wildcard'], kwargs['bbox_detector'], | |
| kwargs.get('segm_detector_opt', None), kwargs.get('sam_model_opt', None), kwargs.get('detailer_hook', None), | |
| kwargs.get('refiner_model', None), kwargs.get('refiner_clip', None), | |
| kwargs.get('refiner_positive', None), kwargs.get('refiner_negative', None)) | |
| return (pipe, ) | |
| class ToDetailerPipeSDXL(ToDetailerPipe): | |
| def INPUT_TYPES(s): | |
| return {"required": { | |
| "model": ("MODEL",), | |
| "clip": ("CLIP",), | |
| "vae": ("VAE",), | |
| "positive": ("CONDITIONING",), | |
| "negative": ("CONDITIONING",), | |
| "refiner_model": ("MODEL",), | |
| "refiner_clip": ("CLIP",), | |
| "refiner_positive": ("CONDITIONING",), | |
| "refiner_negative": ("CONDITIONING",), | |
| "bbox_detector": ("BBOX_DETECTOR", ), | |
| "wildcard": ("STRING", {"multiline": True, "dynamicPrompts": False}), | |
| "Select to add LoRA": (["Select the LoRA to add to the text"] + folder_paths.get_filename_list("loras"),), | |
| "Select to add Wildcard": (["Select the Wildcard to add to the text"],), | |
| }, | |
| "optional": { | |
| "sam_model_opt": ("SAM_MODEL",), | |
| "segm_detector_opt": ("SEGM_DETECTOR",), | |
| "detailer_hook": ("DETAILER_HOOK",), | |
| }} | |
| class FromDetailerPipe: | |
| def INPUT_TYPES(s): | |
| return {"required": {"detailer_pipe": ("DETAILER_PIPE",), }, } | |
| RETURN_TYPES = ("MODEL", "CLIP", "VAE", "CONDITIONING", "CONDITIONING", "BBOX_DETECTOR", "SAM_MODEL", "SEGM_DETECTOR", "DETAILER_HOOK") | |
| RETURN_NAMES = ("model", "clip", "vae", "positive", "negative", "bbox_detector", "sam_model_opt", "segm_detector_opt", "detailer_hook") | |
| FUNCTION = "doit" | |
| CATEGORY = "ImpactPack/Pipe" | |
| def doit(self, detailer_pipe): | |
| model, clip, vae, positive, negative, wildcard, bbox_detector, segm_detector_opt, sam_model_opt, detailer_hook, _, _, _, _ = detailer_pipe | |
| return model, clip, vae, positive, negative, bbox_detector, sam_model_opt, segm_detector_opt, detailer_hook | |
| class FromDetailerPipe_v2: | |
| def INPUT_TYPES(s): | |
| return {"required": {"detailer_pipe": ("DETAILER_PIPE",), }, } | |
| RETURN_TYPES = ("DETAILER_PIPE", "MODEL", "CLIP", "VAE", "CONDITIONING", "CONDITIONING", "BBOX_DETECTOR", "SAM_MODEL", "SEGM_DETECTOR", "DETAILER_HOOK") | |
| RETURN_NAMES = ("detailer_pipe", "model", "clip", "vae", "positive", "negative", "bbox_detector", "sam_model_opt", "segm_detector_opt", "detailer_hook") | |
| FUNCTION = "doit" | |
| CATEGORY = "ImpactPack/Pipe" | |
| def doit(self, detailer_pipe): | |
| model, clip, vae, positive, negative, wildcard, bbox_detector, segm_detector_opt, sam_model_opt, detailer_hook, _, _, _, _ = detailer_pipe | |
| return detailer_pipe, model, clip, vae, positive, negative, bbox_detector, sam_model_opt, segm_detector_opt, detailer_hook | |
| class FromDetailerPipe_SDXL: | |
| def INPUT_TYPES(s): | |
| return {"required": {"detailer_pipe": ("DETAILER_PIPE",), }, } | |
| RETURN_TYPES = ("DETAILER_PIPE", "MODEL", "CLIP", "VAE", "CONDITIONING", "CONDITIONING", "BBOX_DETECTOR", "SAM_MODEL", "SEGM_DETECTOR", "DETAILER_HOOK", "MODEL", "CLIP", "CONDITIONING", "CONDITIONING") | |
| RETURN_NAMES = ("detailer_pipe", "model", "clip", "vae", "positive", "negative", "bbox_detector", "sam_model_opt", "segm_detector_opt", "detailer_hook", "refiner_model", "refiner_clip", "refiner_positive", "refiner_negative") | |
| FUNCTION = "doit" | |
| CATEGORY = "ImpactPack/Pipe" | |
| def doit(self, detailer_pipe): | |
| model, clip, vae, positive, negative, wildcard, bbox_detector, segm_detector_opt, sam_model_opt, detailer_hook, refiner_model, refiner_clip, refiner_positive, refiner_negative = detailer_pipe | |
| return detailer_pipe, model, clip, vae, positive, negative, bbox_detector, sam_model_opt, segm_detector_opt, detailer_hook, refiner_model, refiner_clip, refiner_positive, refiner_negative | |
| class ToBasicPipe: | |
| def INPUT_TYPES(s): | |
| return {"required": { | |
| "model": ("MODEL",), | |
| "clip": ("CLIP",), | |
| "vae": ("VAE",), | |
| "positive": ("CONDITIONING",), | |
| "negative": ("CONDITIONING",), | |
| }, | |
| } | |
| RETURN_TYPES = ("BASIC_PIPE", ) | |
| RETURN_NAMES = ("basic_pipe", ) | |
| FUNCTION = "doit" | |
| CATEGORY = "ImpactPack/Pipe" | |
| def doit(self, model, clip, vae, positive, negative): | |
| pipe = (model, clip, vae, positive, negative) | |
| return (pipe, ) | |
| class FromBasicPipe: | |
| def INPUT_TYPES(s): | |
| return {"required": {"basic_pipe": ("BASIC_PIPE",), }, } | |
| RETURN_TYPES = ("MODEL", "CLIP", "VAE", "CONDITIONING", "CONDITIONING") | |
| RETURN_NAMES = ("model", "clip", "vae", "positive", "negative") | |
| FUNCTION = "doit" | |
| CATEGORY = "ImpactPack/Pipe" | |
| def doit(self, basic_pipe): | |
| model, clip, vae, positive, negative = basic_pipe | |
| return model, clip, vae, positive, negative | |
| class FromBasicPipe_v2: | |
| def INPUT_TYPES(s): | |
| return {"required": {"basic_pipe": ("BASIC_PIPE",), }, } | |
| RETURN_TYPES = ("BASIC_PIPE", "MODEL", "CLIP", "VAE", "CONDITIONING", "CONDITIONING") | |
| RETURN_NAMES = ("basic_pipe", "model", "clip", "vae", "positive", "negative") | |
| FUNCTION = "doit" | |
| CATEGORY = "ImpactPack/Pipe" | |
| def doit(self, basic_pipe): | |
| model, clip, vae, positive, negative = basic_pipe | |
| return basic_pipe, model, clip, vae, positive, negative | |
| class BasicPipeToDetailerPipe: | |
| def INPUT_TYPES(s): | |
| return {"required": {"basic_pipe": ("BASIC_PIPE",), | |
| "bbox_detector": ("BBOX_DETECTOR", ), | |
| "wildcard": ("STRING", {"multiline": True, "dynamicPrompts": False}), | |
| "Select to add LoRA": (["Select the LoRA to add to the text"] + folder_paths.get_filename_list("loras"),), | |
| "Select to add Wildcard": (["Select the Wildcard to add to the text"],), | |
| }, | |
| "optional": { | |
| "sam_model_opt": ("SAM_MODEL", ), | |
| "segm_detector_opt": ("SEGM_DETECTOR",), | |
| "detailer_hook": ("DETAILER_HOOK",), | |
| }, | |
| } | |
| RETURN_TYPES = ("DETAILER_PIPE", ) | |
| RETURN_NAMES = ("detailer_pipe", ) | |
| FUNCTION = "doit" | |
| CATEGORY = "ImpactPack/Pipe" | |
| def doit(self, *args, **kwargs): | |
| basic_pipe = kwargs['basic_pipe'] | |
| bbox_detector = kwargs['bbox_detector'] | |
| wildcard = kwargs['wildcard'] | |
| sam_model_opt = kwargs.get('sam_model_opt', None) | |
| segm_detector_opt = kwargs.get('segm_detector_opt', None) | |
| detailer_hook = kwargs.get('detailer_hook', None) | |
| model, clip, vae, positive, negative = basic_pipe | |
| pipe = model, clip, vae, positive, negative, wildcard, bbox_detector, segm_detector_opt, sam_model_opt, detailer_hook, None, None, None, None | |
| return (pipe, ) | |
| class BasicPipeToDetailerPipeSDXL: | |
| def INPUT_TYPES(s): | |
| return {"required": {"base_basic_pipe": ("BASIC_PIPE",), | |
| "refiner_basic_pipe": ("BASIC_PIPE",), | |
| "bbox_detector": ("BBOX_DETECTOR", ), | |
| "wildcard": ("STRING", {"multiline": True, "dynamicPrompts": False}), | |
| "Select to add LoRA": (["Select the LoRA to add to the text"] + folder_paths.get_filename_list("loras"),), | |
| "Select to add Wildcard": (["Select the Wildcard to add to the text"],), | |
| }, | |
| "optional": { | |
| "sam_model_opt": ("SAM_MODEL", ), | |
| "segm_detector_opt": ("SEGM_DETECTOR",), | |
| "detailer_hook": ("DETAILER_HOOK",), | |
| }, | |
| } | |
| RETURN_TYPES = ("DETAILER_PIPE", ) | |
| RETURN_NAMES = ("detailer_pipe", ) | |
| FUNCTION = "doit" | |
| CATEGORY = "ImpactPack/Pipe" | |
| def doit(self, *args, **kwargs): | |
| base_basic_pipe = kwargs['base_basic_pipe'] | |
| refiner_basic_pipe = kwargs['refiner_basic_pipe'] | |
| bbox_detector = kwargs['bbox_detector'] | |
| wildcard = kwargs['wildcard'] | |
| sam_model_opt = kwargs.get('sam_model_opt', None) | |
| segm_detector_opt = kwargs.get('segm_detector_opt', None) | |
| detailer_hook = kwargs.get('detailer_hook', None) | |
| model, clip, vae, positive, negative = base_basic_pipe | |
| refiner_model, refiner_clip, refiner_vae, refiner_positive, refiner_negative = refiner_basic_pipe | |
| pipe = model, clip, vae, positive, negative, wildcard, bbox_detector, segm_detector_opt, sam_model_opt, detailer_hook, refiner_model, refiner_clip, refiner_positive, refiner_negative | |
| return (pipe, ) | |
| class DetailerPipeToBasicPipe: | |
| def INPUT_TYPES(s): | |
| return {"required": {"detailer_pipe": ("DETAILER_PIPE",), }} | |
| RETURN_TYPES = ("BASIC_PIPE", "BASIC_PIPE") | |
| RETURN_NAMES = ("base_basic_pipe", "refiner_basic_pipe") | |
| FUNCTION = "doit" | |
| CATEGORY = "ImpactPack/Pipe" | |
| def doit(self, detailer_pipe): | |
| model, clip, vae, positive, negative, _, _, _, _, _, refiner_model, refiner_clip, refiner_positive, refiner_negative = detailer_pipe | |
| pipe = model, clip, vae, positive, negative | |
| refiner_pipe = refiner_model, refiner_clip, vae, refiner_positive, refiner_negative | |
| return (pipe, refiner_pipe) | |
| class EditBasicPipe: | |
| def INPUT_TYPES(s): | |
| return { | |
| "required": {"basic_pipe": ("BASIC_PIPE",), }, | |
| "optional": { | |
| "model": ("MODEL",), | |
| "clip": ("CLIP",), | |
| "vae": ("VAE",), | |
| "positive": ("CONDITIONING",), | |
| "negative": ("CONDITIONING",), | |
| }, | |
| } | |
| RETURN_TYPES = ("BASIC_PIPE", ) | |
| RETURN_NAMES = ("basic_pipe", ) | |
| FUNCTION = "doit" | |
| CATEGORY = "ImpactPack/Pipe" | |
| def doit(self, basic_pipe, model=None, clip=None, vae=None, positive=None, negative=None): | |
| res_model, res_clip, res_vae, res_positive, res_negative = basic_pipe | |
| if model is not None: | |
| res_model = model | |
| if clip is not None: | |
| res_clip = clip | |
| if vae is not None: | |
| res_vae = vae | |
| if positive is not None: | |
| res_positive = positive | |
| if negative is not None: | |
| res_negative = negative | |
| pipe = res_model, res_clip, res_vae, res_positive, res_negative | |
| return (pipe, ) | |
| class EditDetailerPipe: | |
| def INPUT_TYPES(s): | |
| return { | |
| "required": { | |
| "detailer_pipe": ("DETAILER_PIPE",), | |
| "wildcard": ("STRING", {"multiline": True, "dynamicPrompts": False}), | |
| "Select to add LoRA": (["Select the LoRA to add to the text"] + folder_paths.get_filename_list("loras"),), | |
| "Select to add Wildcard": (["Select the Wildcard to add to the text"],), | |
| }, | |
| "optional": { | |
| "model": ("MODEL",), | |
| "clip": ("CLIP",), | |
| "vae": ("VAE",), | |
| "positive": ("CONDITIONING",), | |
| "negative": ("CONDITIONING",), | |
| "bbox_detector": ("BBOX_DETECTOR",), | |
| "sam_model": ("SAM_MODEL",), | |
| "segm_detector": ("SEGM_DETECTOR",), | |
| "detailer_hook": ("DETAILER_HOOK",), | |
| }, | |
| } | |
| RETURN_TYPES = ("DETAILER_PIPE",) | |
| RETURN_NAMES = ("detailer_pipe",) | |
| FUNCTION = "doit" | |
| CATEGORY = "ImpactPack/Pipe" | |
| def doit(self, *args, **kwargs): | |
| detailer_pipe = kwargs['detailer_pipe'] | |
| wildcard = kwargs['wildcard'] | |
| model = kwargs.get('model', None) | |
| clip = kwargs.get('clip', None) | |
| vae = kwargs.get('vae', None) | |
| positive = kwargs.get('positive', None) | |
| negative = kwargs.get('negative', None) | |
| bbox_detector = kwargs.get('bbox_detector', None) | |
| sam_model = kwargs.get('sam_model', None) | |
| segm_detector = kwargs.get('segm_detector', None) | |
| detailer_hook = kwargs.get('detailer_hook', None) | |
| refiner_model = kwargs.get('refiner_model', None) | |
| refiner_clip = kwargs.get('refiner_clip', None) | |
| refiner_positive = kwargs.get('refiner_positive', None) | |
| refiner_negative = kwargs.get('refiner_negative', None) | |
| res_model, res_clip, res_vae, res_positive, res_negative, res_wildcard, res_bbox_detector, res_segm_detector, res_sam_model, res_detailer_hook, res_refiner_model, res_refiner_clip, res_refiner_positive, res_refiner_negative = detailer_pipe | |
| if model is not None: | |
| res_model = model | |
| if clip is not None: | |
| res_clip = clip | |
| if vae is not None: | |
| res_vae = vae | |
| if positive is not None: | |
| res_positive = positive | |
| if negative is not None: | |
| res_negative = negative | |
| if bbox_detector is not None: | |
| res_bbox_detector = bbox_detector | |
| if segm_detector is not None: | |
| res_segm_detector = segm_detector | |
| if wildcard != "": | |
| res_wildcard = wildcard | |
| if sam_model is not None: | |
| res_sam_model = sam_model | |
| if detailer_hook is not None: | |
| res_detailer_hook = detailer_hook | |
| if refiner_model is not None: | |
| res_refiner_model = refiner_model | |
| if refiner_clip is not None: | |
| res_refiner_clip = refiner_clip | |
| if refiner_positive is not None: | |
| res_refiner_positive = refiner_positive | |
| if refiner_negative is not None: | |
| res_refiner_negative = refiner_negative | |
| pipe = (res_model, res_clip, res_vae, res_positive, res_negative, res_wildcard, | |
| res_bbox_detector, res_segm_detector, res_sam_model, res_detailer_hook, | |
| res_refiner_model, res_refiner_clip, res_refiner_positive, res_refiner_negative) | |
| return (pipe, ) | |
| class EditDetailerPipeSDXL(EditDetailerPipe): | |
| def INPUT_TYPES(s): | |
| return { | |
| "required": { | |
| "detailer_pipe": ("DETAILER_PIPE",), | |
| "wildcard": ("STRING", {"multiline": True, "dynamicPrompts": False}), | |
| "Select to add LoRA": (["Select the LoRA to add to the text"] + folder_paths.get_filename_list("loras"),), | |
| "Select to add Wildcard": (["Select the Wildcard to add to the text"],), | |
| }, | |
| "optional": { | |
| "model": ("MODEL",), | |
| "clip": ("CLIP",), | |
| "vae": ("VAE",), | |
| "positive": ("CONDITIONING",), | |
| "negative": ("CONDITIONING",), | |
| "refiner_model": ("MODEL",), | |
| "refiner_clip": ("CLIP",), | |
| "refiner_positive": ("CONDITIONING",), | |
| "refiner_negative": ("CONDITIONING",), | |
| "bbox_detector": ("BBOX_DETECTOR",), | |
| "sam_model": ("SAM_MODEL",), | |
| "segm_detector": ("SEGM_DETECTOR",), | |
| "detailer_hook": ("DETAILER_HOOK",), | |
| }, | |
| } | |