Spaces:
Running
Running
import folder_paths | |
import impact.wildcards | |
from impact.utils import any_typ | |
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 AnyPipeToBasic: | |
def INPUT_TYPES(s): | |
return { | |
"required": {"any_pipe": (any_typ,)}, | |
} | |
RETURN_TYPES = ("BASIC_PIPE", ) | |
RETURN_NAMES = ("basic_pipe", ) | |
FUNCTION = "doit" | |
CATEGORY = "ImpactPack/Pipe" | |
def doit(self, any_pipe): | |
return (any_pipe[:5], ) | |
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",), | |
}, | |
} | |