From 7d559ba23eacd9550840aa6547f3b33bd88a8a1b Mon Sep 17 00:00:00 2001 From: dchatel Date: Sat, 4 Oct 2025 08:22:11 +0200 Subject: [PATCH] Update nodes_qwen.py Fixed a bug in TextEncodeQwenImageEditPlus where the rescaling would not preserve the original image ratio. --- comfy_extras/nodes_qwen.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/comfy_extras/nodes_qwen.py b/comfy_extras/nodes_qwen.py index 525239ae5..7ed1331d6 100644 --- a/comfy_extras/nodes_qwen.py +++ b/comfy_extras/nodes_qwen.py @@ -87,10 +87,15 @@ class TextEncodeQwenImageEditPlus(io.ComfyNode): s = comfy.utils.common_upscale(samples, width, height, "area", "disabled") images_vl.append(s.movedim(1, -1)) if vae is not None: + # compute optimal scale factor to get as close to 1024x1024 as possible while keeping dimensions multiples of 8 total = int(1024 * 1024) - scale_by = math.sqrt(total / (samples.shape[3] * samples.shape[2])) - width = round(samples.shape[3] * scale_by / 8.0) * 8 - height = round(samples.shape[2] * scale_by / 8.0) * 8 + s_ideal = math.sqrt(total / (samples.shape[3] * samples.shape[2])) + common_divisor = math.gcd(samples.shape[3], samples.shape[2]) + p = samples.shape[3] // common_divisor + lcm = abs(p * 8) // math.gcd(p, 8) + s_optimal = (round(s_ideal * samples.shape[3] / lcm) * lcm) / samples.shape[3] + width = int(s_optimal * samples.shape[3]) + height = int(s_optimal * samples.shape[2]) s = comfy.utils.common_upscale(samples, width, height, "area", "disabled") ref_latents.append(vae.encode(s.movedim(1, -1)[:, :, :, :3]))