Spaces:
Running
Running
bucket_options = { | |
640: [ | |
(416, 960), | |
(448, 864), | |
(480, 832), | |
(512, 768), | |
(544, 704), | |
(576, 672), | |
(608, 640), | |
(640, 608), | |
(672, 576), | |
(704, 544), | |
(768, 512), | |
(832, 480), | |
(864, 448), | |
(960, 416), | |
], | |
672: [ | |
(480, 864), | |
(512, 832), | |
(544, 768), | |
(576, 704), | |
(608, 672), | |
(640, 640), | |
(672, 608), | |
(704, 576), | |
(768, 544), | |
(832, 512), | |
(864, 480), | |
], | |
704: [ | |
(480, 960), | |
(512, 864), | |
(544, 832), | |
(576, 768), | |
(608, 704), | |
(640, 672), | |
(672, 640), | |
(704, 608), | |
(768, 576), | |
(832, 544), | |
(864, 512), | |
(960, 480), | |
], | |
768: [ | |
(512, 960), | |
(544, 864), | |
(576, 832), | |
(608, 768), | |
(640, 704), | |
(672, 672), | |
(704, 640), | |
(768, 608), | |
(832, 576), | |
(864, 544), | |
(960, 512), | |
], | |
832: [ | |
(544, 960), | |
(576, 864), | |
(608, 832), | |
(640, 768), | |
(672, 704), | |
(704, 672), | |
(768, 640), | |
(832, 608), | |
(864, 576), | |
(960, 544), | |
], | |
864: [ | |
(576, 960), | |
(608, 864), | |
(640, 832), | |
(672, 768), | |
(704, 704), | |
(768, 672), | |
(832, 640), | |
(864, 608), | |
(960, 576), | |
], | |
960: [ | |
(608, 960), | |
(640, 864), | |
(672, 832), | |
(704, 768), | |
(768, 704), | |
(832, 672), | |
(864, 640), | |
(960, 608), | |
], | |
} | |
def find_nearest_bucket(h, w, resolution=640): | |
min_metric = float('inf') | |
best_bucket = None | |
for (bucket_h, bucket_w) in bucket_options[resolution]: | |
metric = abs(h * bucket_w - w * bucket_h) | |
if metric <= min_metric: | |
min_metric = metric | |
best_bucket = (bucket_h, bucket_w) | |
print("The resolution of the generated video will be " + str(best_bucket)) | |
return best_bucket | |