diff --git a/api/onnx_web/diffusers/pipelines/panorama.py b/api/onnx_web/diffusers/pipelines/panorama.py index ab509be3..99e283a1 100644 --- a/api/onnx_web/diffusers/pipelines/panorama.py +++ b/api/onnx_web/diffusers/pipelines/panorama.py @@ -350,9 +350,17 @@ class OnnxStableDiffusionPanoramaPipeline(DiffusionPipeline): # Here, we define the mappings F_i (see Eq. 7 in the MultiDiffusion paper https://arxiv.org/abs/2302.08113) panorama_height /= 8 panorama_width /= 8 - num_blocks_height = (panorama_height - window_size) // stride + 1 - num_blocks_width = (panorama_width - window_size) // stride + 1 + + num_blocks_height = abs((panorama_height - window_size) // stride) + 1 + num_blocks_width = abs((panorama_width - window_size) // stride) + 1 total_num_blocks = int(num_blocks_height * num_blocks_width) + logger.debug( + "panorama generated %s views, %s by %s blocks", + total_num_blocks, + num_blocks_height, + num_blocks_width, + ) + views = [] for i in range(total_num_blocks): h_start = int((i // num_blocks_width) * stride) @@ -361,12 +369,6 @@ class OnnxStableDiffusionPanoramaPipeline(DiffusionPipeline): w_end = w_start + window_size views.append((h_start, h_end, w_start, w_end)) - logger.debug( - "panorama generated %s views, %s by %s blocks", - total_num_blocks, - num_blocks_height, - num_blocks_width, - ) return views @torch.no_grad()