File size: 2,418 Bytes
bf70abc 0a480c8 a3215c8 c1fbddd a3215c8 bf70abc c3fad62 f23c1ac c3fad62 3cd9850 175d43a c3fad62 3cd9850 175d43a a3215c8 a0464cb a3215c8 c3fad62 a3215c8 c3fad62 a3215c8 |
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 44 45 46 47 48 49 50 51 52 53 54 55 |
import streamlit as st
import openai
import requests
from PIL import Image
from io import BytesIO
# Set up the OpenAI API key from Hugging Face Spaces secrets
openai.api_key = st.secrets["OPENAI_API_KEY"]
st.title("Holiday Video Backdrop Image Generator")
# User inputs for image generation
image_theme = st.text_input("Image Theme", placeholder="Enter a theme for your holiday video backdrop (e.g., festive living room, snowy landscape)")
color_scheme = st.text_input("Color Scheme", placeholder="Preferred color scheme (e.g., red and green, white and blue)")
additional_elements = st.text_input("Additional Elements", placeholder="Any specific elements to include in the image (e.g., Christmas tree, snowflakes)")
# Dropdown for selecting image dimensions
video_format = st.selectbox("Video Format", ["16:9 (Standard HD - 1920x1080)", "16:9 (4K - 3840x2160)", "1:1 (Square - 1080x1080)", "4:5 (Portrait - 1080x1350)", "9:16 (Tall - 1080x1920)"])
# Mapping formats to DALL-E API size parameters
format_size_mapping = {
"16:9 (Standard HD - 1920x1080)": "1024x576", # Closest available size in DALL-E for 1080p
"16:9 (4K - 3840x2160)": "1792x1024", # Closest available size in DALL-E for 4K
"1:1 (Square - 1080x1080)": "1024x1024",
"4:5 (Portrait - 1080x1350)": "1024x1792", # Closest available vertical size
"9:16 (Tall - 1080x1920)": "1024x1792" # Closest available vertical size
}
if st.button('Generate Image'):
# Construct the prompt
prompt = f"A holiday-themed backdrop image depicting: '{image_theme}', color scheme: '{color_scheme}', including elements: '{additional_elements}'."
# Call the DALL-E API
try:
response = openai.Image.create(
model="dall-e-3", # Specify DALL-E 3 model
prompt=prompt,
n=1,
size=format_size_mapping[video_format], # Set image dimensions based on selected video format
quality="hd" # Set image quality to high definition
)
# Assuming the response contains a URL to the image
image_url = response['data'][0]['url']
# Fetch the image from the URL
image_response = requests.get(image_url)
image = Image.open(BytesIO(image_response.content))
# Display the image
st.image(image, caption='Generated Holiday Backdrop Image')
except Exception as e:
st.error(f"An error occurred: {e}")
|