From 46e6d07cfd3b558aeaad748e5c8966c08125ea29 Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Tue, 27 Jan 2026 19:03:43 +0000 Subject: [PATCH 1/2] Fix shorter/longer edge resize for square images --- comfy_extras/nodes_dataset.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/comfy_extras/nodes_dataset.py b/comfy_extras/nodes_dataset.py index fb9409ac3..023d5dd17 100644 --- a/comfy_extras/nodes_dataset.py +++ b/comfy_extras/nodes_dataset.py @@ -644,9 +644,13 @@ class ResizeImagesByShorterEdgeNode(ImageProcessingNode): if w < h: new_w = shorter_edge new_h = int(h * (shorter_edge / w)) - else: + elif h < w: new_h = shorter_edge new_w = int(w * (shorter_edge / h)) + else: + # Square image: set both dimensions directly to avoid precision loss from float operations + new_w = shorter_edge + new_h = shorter_edge img = img.resize((new_w, new_h), Image.Resampling.LANCZOS) return pil_to_tensor(img) @@ -674,9 +678,13 @@ class ResizeImagesByLongerEdgeNode(ImageProcessingNode): if w > h: new_w = longer_edge new_h = int(h * (longer_edge / w)) - else: + elif h > w: new_h = longer_edge new_w = int(w * (longer_edge / h)) + else: + # Square image: set both dimensions directly to avoid precision loss from float operations + new_w = longer_edge + new_h = longer_edge img = img.resize((new_w, new_h), Image.Resampling.LANCZOS) resized_images.append(pil_to_tensor(img)) return torch.cat(resized_images, dim=0) From aadccd28cade254b6fe664ce3a81a9225070b39c Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Tue, 27 Jan 2026 19:44:45 +0000 Subject: [PATCH 2/2] fix ResizeAndPadImage as well --- comfy_extras/nodes_images.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/comfy_extras/nodes_images.py b/comfy_extras/nodes_images.py index cb4fb24a1..f1ac2971a 100644 --- a/comfy_extras/nodes_images.py +++ b/comfy_extras/nodes_images.py @@ -395,10 +395,15 @@ class ResizeAndPadImage(IO.ComfyNode): scale_w = target_width / orig_width scale_h = target_height / orig_height - scale = min(scale_w, scale_h) - new_width = int(orig_width * scale) - new_height = int(orig_height * scale) + # When aspect ratios match, scale directly to target to avoid precision loss from float multiplication + if scale_w == scale_h: + new_width = target_width + new_height = target_height + else: + scale = min(scale_w, scale_h) + new_width = int(orig_width * scale) + new_height = int(orig_height * scale) image_permuted = image.permute(0, 3, 1, 2)