File size: 1,278 Bytes
2d13703
 
 
 
 
 
6974b92
2d13703
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import streamlit as st
import google.generativeai as genai
import numpy as np
import PIL.Image

# Configure the Generative AI API
genai.configure(api_key="Api_key")

# Define the function that handles the model's response
def ImageChat(image, prompt):
    # Load model
    model = genai.GenerativeModel("gemini-1.5-flash")

    # Check if the image is a numpy array and convert to PIL format if necessary
    if isinstance(image, np.ndarray):
        img = PIL.Image.fromarray(image)
    else:
        img = PIL.Image.open(image)

    # Generate a response from the model
    response = model.generate_content([prompt, img])

    return response.text

# Set up the Streamlit interface
st.title("Image Chat")
st.write("Upload an image and enter a prompt to get a response.")

# File uploader for image input
uploaded_image = st.file_uploader("Upload an Image", type=["jpg", "jpeg", "png"])

# Text input for prompt
prompt = st.text_input("Enter your prompt:")

# When both an image and a prompt are provided, generate a response
if uploaded_image and prompt:
    # Convert the uploaded image to a numpy array
    image = np.array(PIL.Image.open(uploaded_image))

    # Generate and display the response
    response = ImageChat(image, prompt)
    st.write("Response:", response)