def post_image_edit()

in genai-for-marketing/backend_apis/app/main.py [0:0]


def post_image_edit(data: ImageEditRequest
                    ) -> ImageGenerateResponse:
    """Image editing with Imagen
    Parameters:
        prompt: str
        base_image_base64: str
        mask_base64: str | None = None
        number_of_images: int = 1
    Returns:
        List of images with:
            id: imageid
            images_base64_string (str): Image as base64 string
            image_size (int, int): Size of the image
            images_parameters (dict): Parameters used with the model
    """
    if not data.mask_base64:
        mask = None
    else:
        mask = Image(image_bytes=base64.b64decode(data.mask_base64))

    try:
        imagen_responses = imagen.edit_image(
            prompt=data.prompt,
            base_image=Image(image_bytes=base64.b64decode(data.base_image_base64)),
            mask=mask,
            number_of_images=data.number_of_images,
            negative_prompt=data.negative_prompt)
    except Exception as e:
        raise HTTPException(status_code=400, detail=str(e))
    else:
        generated_images = []
        i = 0
        for image in imagen_responses:
            generated_images.append(
                {   
                    "id" : i,
                    "images_base64_string": image._as_base64_string(),
                    "image_size": image._size,
                    "images_parameters": image.generation_parameters
                }
            )
            i=i+1

    return ImageGenerateResponse(
        generated_images=generated_images
    )