diff --git a/modules/impact/config.py b/modules/impact/config.py index 0c201a5..e925d21 100644 --- a/modules/impact/config.py +++ b/modules/impact/config.py @@ -2,7 +2,7 @@ import configparser import os -version_code = [4, 85] +version_code = [4, 85, 1] version = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '') dependency_version = 20 diff --git a/modules/impact/core.py b/modules/impact/core.py index d63d850..2ab4172 100644 --- a/modules/impact/core.py +++ b/modules/impact/core.py @@ -1505,7 +1505,7 @@ class PixelKSampleUpscaler: class IPAdapterWrapper: - def __init__(self, ipadapter_pipe, weight, noise, weight_type, start_at, end_at, unfold_batch, faceid_v2, weight_v2, reference_image, prev_control_net=None, combine_embeds='concat'): + def __init__(self, ipadapter_pipe, weight, noise, weight_type, start_at, end_at, unfold_batch, weight_v2, reference_image, neg_image=None, prev_control_net=None, combine_embeds='concat'): self.reference_image = reference_image self.ipadapter_pipe = ipadapter_pipe self.weight = weight @@ -1515,9 +1515,9 @@ class IPAdapterWrapper: self.end_at = end_at self.unfold_batch = unfold_batch self.prev_control_net = prev_control_net - self.faceid_v2 = faceid_v2 self.weight_v2 = weight_v2 self.image = reference_image + self.neg_image = neg_image self.combine_embeds = combine_embeds # name 'apply_ipadapter' isn't allowed @@ -1543,7 +1543,7 @@ class IPAdapterWrapper: model = obj().apply_ipadapter(model=model, ipadapter=ipadapter, weight=self.weight, weight_type=self.weight_type, start_at=self.start_at, end_at=self.end_at, combine_embeds=self.combine_embeds, - clip_vision=clip_vision, image=self.image, attn_mask=None, + clip_vision=clip_vision, image=self.image, image_negative=self.neg_image, attn_mask=None, insightface=insightface, weight_faceidv2=self.weight_v2)[0] cnet_image_list.extend(prev_cnet_images) diff --git a/modules/impact/segs_nodes.py b/modules/impact/segs_nodes.py index aaff853..97ee37d 100644 --- a/modules/impact/segs_nodes.py +++ b/modules/impact/segs_nodes.py @@ -1185,6 +1185,7 @@ class IPAdapterApplySEGS: }, "optional": { "combine_embeds": (["concat", "add", "subtract", "average", "norm average"],), + "neg_image": ("IMAGE",), }, } @@ -1193,7 +1194,7 @@ class IPAdapterApplySEGS: CATEGORY = "ImpactPack/Util" - def doit(self, segs, ipadapter_pipe, weight, noise, weight_type, start_at, end_at, unfold_batch, faceid_v2, weight_v2, context_crop_factor, reference_image, combine_embeds="concat"): + def doit(self, segs, ipadapter_pipe, weight, noise, weight_type, start_at, end_at, unfold_batch, faceid_v2, weight_v2, context_crop_factor, reference_image, combine_embeds="concat", neg_image=None): if len(ipadapter_pipe) == 4: print(f"[Impact Pack] IPAdapterApplySEGS: Installed Inspire Pack is outdated.") @@ -1211,7 +1212,7 @@ class IPAdapterApplySEGS: context_crop_region = make_crop_region(w, h, seg.crop_region, context_crop_factor) cropped_image = crop_image(reference_image, context_crop_region) - control_net_wrapper = core.IPAdapterWrapper(ipadapter_pipe, weight, noise, weight_type, start_at, end_at, unfold_batch, faceid_v2, weight_v2, cropped_image, prev_control_net=seg.control_net_wrapper, combine_embeds=combine_embeds) + control_net_wrapper = core.IPAdapterWrapper(ipadapter_pipe, weight, noise, weight_type, start_at, end_at, unfold_batch, weight_v2, cropped_image, neg_image=neg_image, prev_control_net=seg.control_net_wrapper, combine_embeds=combine_embeds) new_seg = SEG(seg.cropped_image, seg.cropped_mask, seg.confidence, seg.crop_region, seg.bbox, seg.label, control_net_wrapper) new_segs.append(new_seg)