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}")