diff --git a/extensions-builtin/sd_forge_controlnet/scripts/controlnet.py b/extensions-builtin/sd_forge_controlnet/scripts/controlnet.py index be4c8bf9..c37d3d63 100644 --- a/extensions-builtin/sd_forge_controlnet/scripts/controlnet.py +++ b/extensions-builtin/sd_forge_controlnet/scripts/controlnet.py @@ -352,6 +352,9 @@ class ControlNetForForgeOfficial(scripts.Script): params.model.negative_advanced_weighting = soft_weighting.copy() cond, mask = params.preprocessor.process_before_every_sampling(p, cond, mask, *args, **kwargs) + + params.model.advanced_mask_weighting = mask + params.model.process_before_every_sampling(p, cond, mask, *args, **kwargs) logger.info(f"ControlNet Method {params.preprocessor.name} patched.") diff --git a/modules_forge/supported_controlnet.py b/modules_forge/supported_controlnet.py index 17e39040..1490259e 100644 --- a/modules_forge/supported_controlnet.py +++ b/modules_forge/supported_controlnet.py @@ -22,6 +22,7 @@ class ControlModelPatcher: self.negative_advanced_weighting = None self.advanced_frame_weighting = None self.advanced_sigma_weighting = None + self.advanced_mask_weighting = None def process_after_running_preprocessors(self, process, params, *args, **kwargs): return @@ -155,7 +156,9 @@ class ControlNetPatcher(ControlModelPatcher): positive_advanced_weighting=self.positive_advanced_weighting, negative_advanced_weighting=self.negative_advanced_weighting, advanced_frame_weighting=self.advanced_frame_weighting, - advanced_sigma_weighting=self.advanced_sigma_weighting) + advanced_sigma_weighting=self.advanced_sigma_weighting, + advanced_mask_weighting=self.advanced_mask_weighting + ) process.sd_model.forge_objects.unet = unet return