Spaces:
Runtime error
Runtime error
from openai import OpenAI | |
from dotenv import load_dotenv | |
# Env variable | |
load_dotenv() | |
# Initialize OpenAI client | |
client = OpenAI() | |
def generate_video_prompt_with_template(role: str, setting: str, emotion: str, shot: str, duration: str) -> str: | |
system_prompt = ( | |
"You are a video director who converts structured metadata into detailed, natural language video prompts.\n" | |
"Here are examples:\n\n" | |
"Example 1:\n" | |
"- Role: Product demo\n" | |
"- Setting: Urban bar\n" | |
"- Emotion: Energetic\n" | |
"- Shot: Front-facing, 5s loop\n" | |
"Output: \"Create a short 5-second video of a product demo in an energetic tone. " | |
"The scene takes place in an urban bar setting, using a front-facing camera to capture the vibrant atmosphere.\"\n\n" | |
"Example 2:\n" | |
"- Role: Storytelling\n" | |
"- Setting: Forest, misty\n" | |
"- Emotion: Mysterious\n" | |
"- Shot: Wide shot\n" | |
"Output: \"Create a video showing a mysterious scene in a misty forest. Use a wide shot to capture the atmosphere and suspense.\"\n\n" | |
"Now, create a natural language video prompt for the following:\n" | |
) | |
user_prompt = ( | |
f"- Role: {role}\n" | |
f"- Setting: {setting}\n" | |
f"- Emotion: {emotion}\n" | |
f"- Shot: {shot}, {duration}\n" | |
) | |
response = client.chat.completions.create( | |
model="gpt-4o", | |
messages=[ | |
{"role": "system", "content": system_prompt}, | |
{"role": "user", "content": user_prompt} | |
], | |
temperature=0.3 | |
) | |
final_prompt = response.choices[0].message.content.strip() | |
return final_prompt | |