def get_image()

in Functions/getImages.py [0:0]


def get_image(request):
    http_origin = request.environ.get('HTTP_ORIGIN', 'no origin')
    if request.method == "OPTIONS":
        # Allows GET requests from any origin with the Content-Type
        # header and caches preflight response for an 3600s
        headers = {
            "Access-Control-Allow-Origin": "*",
            "Access-Control-Allow-Methods": "GET, POST",
            "Access-Control-Allow-Headers": "Content-Type",
            "Access-Control-Max-Age": "3600",
        }
        return ("", 204, headers)
    
    request_json = request.get_json(silent=True)
    request_args = request.args

    default_image_prompt = 'a picture of a cute cat jumping'
    default_description_prompt = 'decribe the image'
    default_image_count = 1
    image_prompt = (request_json or request_args).get('image_prompt', default_image_prompt)
    input_prompt = (request_json or request_args).get('desc_prompt', default_description_prompt)
    text_prompt =  f"""Do this for each image separately: "{html.escape(input_prompt)}". We will call the result of it as the information about an image. Give each image a title. Return the result as a list of objects in json format; each object will correspond one image and the fields for the object will be "title" for the title and "info" for the information."""
    image_count = int((request_json or request_args).get('image_count', default_image_count))

    if image_count > MAX_IMAGE_COUNT:
        return ("Invalid image_count. Maximum image count is 5.", 406)

    images = get_images_with_count(image_prompt, image_count)
    image_strings = []
    caption_input = []
    for img in images:
        temp_bytes = img._image_bytes
        image_strings.append(base64.b64encode(temp_bytes).decode("ascii"))
        temp_image=Part.from_data(
                mime_type="image/png",
                data=temp_bytes)
        caption_input.append(temp_image)
    captions = caption_model.generate_content(
        caption_input + [text_prompt],
        generation_config=caption_generation_config,
        safety_settings=safety_settings,
    )
    captions_list = make_captions(captions)
    
    resp_images_dict = []
    for img, cap in zip(image_strings, captions_list):
        resp_images_dict.append({"image": img, "caption": cap["description"], "title": cap["title"]})
    resp = flask.jsonify(resp_images_dict)
    resp.headers.set("Access-Control-Allow-Origin", "*")
    return resp