Fix case where upscale model wouldn't be moved to cpu. (#11633)

This commit is contained in:
comfyanonymous
2026-01-04 16:13:50 -08:00
committed by GitHub
parent acbf08cd60
commit 38d0493825

View File

@@ -78,18 +78,20 @@ class ImageUpscaleWithModel(io.ComfyNode):
overlap = 32 overlap = 32
oom = True oom = True
while oom: try:
try: while oom:
steps = in_img.shape[0] * comfy.utils.get_tiled_scale_steps(in_img.shape[3], in_img.shape[2], tile_x=tile, tile_y=tile, overlap=overlap) try:
pbar = comfy.utils.ProgressBar(steps) steps = in_img.shape[0] * comfy.utils.get_tiled_scale_steps(in_img.shape[3], in_img.shape[2], tile_x=tile, tile_y=tile, overlap=overlap)
s = comfy.utils.tiled_scale(in_img, lambda a: upscale_model(a), tile_x=tile, tile_y=tile, overlap=overlap, upscale_amount=upscale_model.scale, pbar=pbar) pbar = comfy.utils.ProgressBar(steps)
oom = False s = comfy.utils.tiled_scale(in_img, lambda a: upscale_model(a), tile_x=tile, tile_y=tile, overlap=overlap, upscale_amount=upscale_model.scale, pbar=pbar)
except model_management.OOM_EXCEPTION as e: oom = False
tile //= 2 except model_management.OOM_EXCEPTION as e:
if tile < 128: tile //= 2
raise e if tile < 128:
raise e
finally:
upscale_model.to("cpu")
upscale_model.to("cpu")
s = torch.clamp(s.movedim(-3,-1), min=0, max=1.0) s = torch.clamp(s.movedim(-3,-1), min=0, max=1.0)
return io.NodeOutput(s) return io.NodeOutput(s)