|
import gradio as gr |
|
|
|
import requests |
|
|
|
|
|
|
|
import os |
|
|
|
|
|
|
|
def generate_text_descriptions(concept): |
|
api_key = os.environ.get("api_key") |
|
|
|
concept = concept |
|
user_id = "user_123" |
|
body = {"action": {"type": "text", "payload": concept}} |
|
|
|
|
|
response = requests.post( |
|
f"https://general-runtime.voiceflow.com/state/user/{user_id}/interact", |
|
json=body, |
|
headers={"Authorization": api_key}, |
|
) |
|
|
|
|
|
return response.json()[0]['payload']['message'].strip("\n") |
|
|
|
|
|
|
|
def generate_shots(prompt): |
|
persona = "You are an award winning cinematographer" |
|
prompt_shot = f"{persona} create an interesting shot using different camera angles for the concept enclosed in three backticks ```{prompt}```." |
|
prompt_lighting = f"{persona} create Lighting Design for the concept enclosed in three backticks ```{prompt}``` and provide description for your choice." |
|
prompt_color_grading = f"{persona} Create Color Grading for the concept enclosed in three backticks ```{prompt}``` and provide description for your choice." |
|
|
|
shot_description = generate_text_descriptions(prompt_shot) |
|
lighting_description = generate_text_descriptions(prompt_lighting) |
|
color_grading_description = generate_text_descriptions(prompt_color_grading) |
|
|
|
|
|
return shot_description, lighting_description, color_grading_description |
|
|
|
def generate_output(prompt): |
|
shots, lighting, color_grading = generate_shots(prompt) |
|
|
|
return shots, lighting, color_grading |
|
|
|
|
|
input_text = gr.inputs.Textbox(lines=5, label="Please provide the concept of your film to generate shot compositions, lighting designs, and color grading styles.") |
|
|
|
iface = gr.Interface(fn=generate_output, inputs=input_text, outputs=["text", "text", "text"], label = ["shot angles", "lighting design", "color grading"], |
|
layout="vertical", title="CinemAI", description="Your AI assistant that generates shot compositions, lighting designs, and color grading styles.") |
|
|
|
iface.launch() |
|
|