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
)