Spaces:
Sleeping
Sleeping
import gradio as gr | |
import os | |
from crewai import Crew, Process | |
# from agents import * | |
from agents import get_agents_and_tasks | |
def generate_video(topic, stability_ai_api_key):#, openai_api_key): | |
# os.environ['GROQ_API_KEY'] = grow_api_key | |
os.environ['STABILITY_AI_API_KEY'] = stability_ai_api_key | |
# os.environ['OPENAI_API_KEY'] = openai_api_key | |
grow_api_key = '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' | |
agents, tasks = get_agents_and_tasks(grow_api_key) | |
crew = Crew( | |
# agents=[script_agent, image_descriptive_agent, img_speech_generating_agent, editor], | |
# tasks=[content_generation_task, story_writing_task, img_text_task, img_generation_task,speech_generation_task,make_video_task], | |
agents = agents, | |
tasks = tasks, | |
process = Process.sequential, | |
# cache = True, | |
# memory=True, | |
verbose=2 | |
) | |
result = crew.kickoff(inputs={'topic': topic}) | |
return result | |
# app = gr.Interface( | |
# fn=generate_video, | |
# inputs=['text', 'text'], | |
# # outputs=gr.Video(value=os.path.join('outputs/final_video/video.mp4'),label="Generated Video", width=720/2, height=1280/2), | |
# outputs = gr.Video(format='mp4',label="Generated Video", width=720/2, height=1280/2), | |
# title="ShortsIn", | |
# description="Shorts generator" | |
# ) | |
intro = """ | |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Shorts Generator Page</title> | |
<style> | |
.heading { | |
font-size: 24px; | |
font-weight: bold; | |
text-align: center; | |
} | |
.subheading { | |
font-size: 18px; | |
font-weight: bold; | |
text-align: center; | |
margin-top: 10px; | |
} | |
.additional-text { | |
font-size: 16px; | |
text-align: center; | |
margin-top: 20px; | |
white-space: pre-line; /* Preserve line breaks */ | |
} | |
</style> | |
</head> | |
<body> | |
<div class="heading"> | |
ShortsIn | |
</div> | |
<div class="subheading"> | |
YouTube shorts generator | |
</div> | |
<div class="additional-text"> | |
Note: One API key can generate two videos. Stability ai provides free credits. Visit <a href="https://platform.stability.ai/account/keys" target="_blank">Stability AI</a> for your API key. | |
</div> | |
</body> | |
</html> | |
""" | |
with gr.Blocks(title='ShortsIn') as app: | |
gr.HTML(intro) | |
with gr.Row(): | |
with gr.Column(): | |
inp = gr.Textbox(label='Enter title here') | |
api = gr.Textbox(label='Enter Stibility ai API key here') | |
# api1 = gr.Textbox(label='Enter your openai API key here') | |
btn = gr.Button('Generate', size='lg') | |
text = gr.Textbox(label = 'Stability ai API Keys for judges', | |
value = """ | |
1. sk-YZD8hJKTDfBgb7ny3QtbYnjgZTNtMDuxDqUDrgAn5gCqrtC6 | |
2. sk-9zFQSOC3ZiKxRqufH9ZTZM1foCiwOeiPVrYvgUfQBMuW96UL | |
3. sk-TbVHSb5v1QVFwUyR4OA8yu7yvhSGXjkcrZcBDdJh60MhqB3n | |
Incase of error, use different API key | |
""") | |
with gr.Column(): | |
out = gr.Video(label='', height=720, width=405) | |
btn.click(fn=generate_video, inputs=[inp, api], outputs=out) | |
app.launch() | |
#os.path.dirname(os.path.abspath(__file__)) |