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") | |
| # Menambahkan link ke tool sejenis | |
| st.markdown("> Please try my same tool at : https://imgkey.lovable.app") | |
| st.markdown("> Visit my blog : https://www.marwanto606.com") | |
| # 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.") |