fix: filter by ratio step, mask merge invert

This commit is contained in:
Bingsu
2023-05-18 21:53:39 +09:00
parent c7d2bfe078
commit d9d89f32b7
4 changed files with 56 additions and 13 deletions

View File

@@ -23,7 +23,7 @@ from adetailer import (
)
from adetailer.args import ALL_ARGS, BBOX_SORTBY, ADetailerArgs, EnableChecker
from adetailer.common import PredictOutput
from adetailer.mask import mask_preprocess, sort_bboxes
from adetailer.mask import filter_by_ratio, mask_preprocess, sort_bboxes
from adetailer.ui import adui, ordinal, suffix
from controlnet_ext import ControlNetExt, controlnet_exists
from sd_webui import images, safe, script_callbacks, scripts, shared
@@ -384,6 +384,19 @@ class AfterDetailerScript(scripts.Script):
pred = sort_bboxes(pred, sortby_idx)
return pred
def pred_preprocessing(self, pred: PredictOutput, args: ADetailerArgs):
pred = filter_by_ratio(
pred, low=args.ad_mask_min_ratio, high=args.ad_mask_max_ratio
)
pred = self.sort_bboxes(pred)
return mask_preprocess(
pred.masks,
kernel=args.ad_dilate_erode,
x_offset=args.ad_x_offset,
y_offset=args.ad_y_offset,
merge_invert=args.ad_mask_merge_invert,
)
def i2i_prompts_replace(
self, i2i, prompts: list[str], negative_prompts: list[str], j: int
):
@@ -431,13 +444,7 @@ class AfterDetailerScript(scripts.Script):
with ChangeTorchLoad():
pred = predictor(ad_model, pp.image, args.ad_conf, **kwargs)
pred = self.sort_bboxes(pred)
masks = mask_preprocess(
pred.masks,
kernel=args.ad_dilate_erode,
x_offset=args.ad_x_offset,
y_offset=args.ad_y_offset,
)
masks = self.pred_preprocessing(pred, args)
if not masks:
print(