From 2f8ab8ac6bb2d000cc25b20f7e5c6a16b4187025 Mon Sep 17 00:00:00 2001 From: Rick Staa Date: Mon, 6 May 2024 10:54:51 +0200 Subject: [PATCH] fix(pipelines): fix image truncation bug when seed is set (#77) This commit ensure that all images are returned when a seed is set in the old code only the fist image of the badge was returned. --- runner/app/routes/image_to_image.py | 14 +++++++------- runner/app/routes/image_to_video.py | 4 ++-- runner/app/routes/text_to_image.py | 16 +++++++--------- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/runner/app/routes/image_to_image.py b/runner/app/routes/image_to_image.py index 1029b09..8a7b005 100644 --- a/runner/app/routes/image_to_image.py +++ b/runner/app/routes/image_to_image.py @@ -21,8 +21,8 @@ responses = {400: {"model": HTTPError}, 500: {"model": HTTPError}} -# TODO: Make model_id optional once Go codegen tool supports OAPI 3.1 -# https://github.com/deepmap/oapi-codegen/issues/373 +# TODO: Make model_id and other properties optional once Go codegen tool supports +# OAPI 3.1 https://github.com/deepmap/oapi-codegen/issues/373 @router.post("/image-to-image", response_model=ImageResponse, responses=responses) @router.post( "/image-to-image/", @@ -61,11 +61,11 @@ async def image_to_image( ) if seed is None: - init_seed = random.randint(0, 2**32 - 1) - if num_images_per_prompt > 1: - seed = [i for i in range(init_seed, init_seed + num_images_per_prompt)] - else: - seed = init_seed + seed = random.randint(0, 2**32 - 1) + if num_images_per_prompt > 1: + seed = [ + i for i in range(seed, seed + num_images_per_prompt) + ] img = Image.open(image.file).convert("RGB") # If a list of seeds/generators is passed, diffusers wants a list of images diff --git a/runner/app/routes/image_to_video.py b/runner/app/routes/image_to_video.py index d53ed8e..c12e35c 100644 --- a/runner/app/routes/image_to_video.py +++ b/runner/app/routes/image_to_video.py @@ -21,8 +21,8 @@ responses = {400: {"model": HTTPError}, 500: {"model": HTTPError}} -# TODO: Make model_id optional once Go codegen tool supports OAPI 3.1 -# https://github.com/deepmap/oapi-codegen/issues/373 +# TODO: Make model_id and other properties optional once Go codegen tool supports +# OAPI 3.1 https://github.com/deepmap/oapi-codegen/issues/373 @router.post("/image-to-video", response_model=VideoResponse, responses=responses) @router.post( "/image-to-video/", diff --git a/runner/app/routes/text_to_image.py b/runner/app/routes/text_to_image.py index f8fc367..9e7542a 100644 --- a/runner/app/routes/text_to_image.py +++ b/runner/app/routes/text_to_image.py @@ -15,8 +15,8 @@ class TextToImageParams(BaseModel): - # TODO: Make model_id optional once Go codegen tool supports OAPI 3.1 - # https://github.com/deepmap/oapi-codegen/issues/373 + # TODO: Make model_id and other properties optional once Go codegen tool supports + # OAPI 3.1 https://github.com/deepmap/oapi-codegen/issues/373 model_id: str = "" prompt: str height: int = None @@ -56,13 +56,11 @@ async def text_to_image( ) if params.seed is None: - init_seed = random.randint(0, 2**32 - 1) - if params.num_images_per_prompt > 1: - params.seed = [ - i for i in range(init_seed, init_seed + params.num_images_per_prompt) - ] - else: - params.seed = init_seed + params.seed = random.randint(0, 2**32 - 1) + if params.num_images_per_prompt > 1: + params.seed = [ + i for i in range(params.seed, params.seed + params.num_images_per_prompt) + ] try: images = pipeline(**params.model_dump())