improve: IPAdapterWrapper - support neg_image
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user