Spaces:
Running
Running
import streamlit as st | |
import os | |
from PIL import Image | |
import google.generativeai as genai | |
# Konfigurasi API Gemini | |
secret_key = os.getenv("SECRET_KEY") | |
genai.configure(api_key=secret_key) | |
# Fungsi untuk menghasilkan prompt dari gambar | |
def get_gemini_response(image): | |
model = genai.GenerativeModel('gemini-2.0-flash') | |
input = '''You are a prompt generator. You will get an image. | |
Your work is to write a prompt such that an image generator model would create most identical picture | |
as the image given to you''' | |
response = model.generate_content([input, image]) | |
return response.text | |
# Konfigurasi halaman | |
st.set_page_config(page_title="Prompt Generation from Image", layout="wide") | |
st.title("🖼️ Prompt Generator from Image") | |
# Dua kolom layout | |
col1, col2 = st.columns(2) | |
with col1: | |
st.markdown("### 📤 Upload Your Image") | |
uploaded_file = st.file_uploader( | |
"Drag and drop or click to upload an image...", | |
type=["jpg", "jpeg", "png", "webp"], | |
label_visibility="collapsed" | |
) | |
if uploaded_file is not None: | |
image = Image.open(uploaded_file) | |
st.image(image, caption="Uploaded Image", use_column_width=True) | |
else: | |
image = None | |
with col2: | |
st.markdown("### 🎯 Generated Prompt") | |
if uploaded_file is not None: | |
if st.button("✨ Generate Prompt"): | |
with st.spinner("Generating prompt..."): | |
prompt = get_gemini_response(image) | |
st.code(prompt, language="markdown") | |
st.success("Prompt generated. Use the copy button on the top-right of the code box.") | |
else: | |
st.info("Please upload an image to generate a prompt.") | |