Skip to content

Commit 38d0493

Browse files
Fix case where upscale model wouldn't be moved to cpu. (Comfy-Org#11633)
1 parent acbf08c commit 38d0493

1 file changed

Lines changed: 14 additions & 12 deletions

File tree

comfy_extras/nodes_upscale_model.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -78,18 +78,20 @@ def execute(cls, upscale_model, image) -> io.NodeOutput:
7878
overlap = 32
7979

8080
oom = True
81-
while oom:
82-
try:
83-
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)
84-
pbar = comfy.utils.ProgressBar(steps)
85-
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)
86-
oom = False
87-
except model_management.OOM_EXCEPTION as e:
88-
tile //= 2
89-
if tile < 128:
90-
raise e
91-
92-
upscale_model.to("cpu")
81+
try:
82+
while oom:
83+
try:
84+
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)
85+
pbar = comfy.utils.ProgressBar(steps)
86+
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)
87+
oom = False
88+
except model_management.OOM_EXCEPTION as e:
89+
tile //= 2
90+
if tile < 128:
91+
raise e
92+
finally:
93+
upscale_model.to("cpu")
94+
9395
s = torch.clamp(s.movedim(-3,-1), min=0, max=1.0)
9496
return io.NodeOutput(s)
9597

0 commit comments

Comments
 (0)