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__)) |