From 83ab5a79bd768c8a343b97f6308eaaef76a8fc3a Mon Sep 17 00:00:00 2001 From: Anthony Pesch Date: Wed, 1 Apr 2026 13:28:07 +0200 Subject: [PATCH] gracfully handle empty masks in MaskBoundingBox --- mask.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/mask.py b/mask.py index dcc85a2..e1ea52b 100644 --- a/mask.py +++ b/mask.py @@ -181,10 +181,15 @@ def execute(self, mask, padding, blur, image_optional=None): mask = T.functional.gaussian_blur(mask.unsqueeze(1), blur).squeeze(1) _, y, x = torch.where(mask) - x1 = max(0, x.min().item() - padding) - x2 = min(mask.shape[2], x.max().item() + 1 + padding) - y1 = max(0, y.min().item() - padding) - y2 = min(mask.shape[1], y.max().item() + 1 + padding) + + # handle empty mask gracefully + minx, maxx = (x.min().item(), x.max().item()) if x.numel() else (0, 0) + miny, maxy = (y.min().item(), y.max().item()) if y.numel() else (0, 0) + + x1 = max(0, minx - padding) + x2 = min(mask.shape[2], maxx + 1 + padding) + y1 = max(0, miny - padding) + y2 = min(mask.shape[1], maxy + 1 + padding) # crop the mask mask = mask[:, y1:y2, x1:x2]