replacebg / app.py
Munaf1987's picture
Update app.py
f2b348b verified
raw
history blame
1.45 kB
import gradio as gr
from scene_planner import plan_scenes
from generate_image import generate_scene_image
from tts import generate_audio
from animate import animate_scene
from compose import compose_video
import os
import shutil
import spaces
LANGUAGES = ["Gujarati", "Hindi", "English"]
@spaces.GPU
def full_pipeline(script, language):
scenes = plan_scenes(script)
if os.path.exists("assets"):
shutil.rmtree("assets")
os.makedirs("assets/images")
os.makedirs("assets/audio")
os.makedirs("assets/video")
video_segments = []
for idx, scene in enumerate(scenes):
prompt = scene['prompt']
line = scene['dialogue']
image_path = generate_scene_image(prompt, idx)
audio_path = generate_audio(line, idx, language)
video_path = animate_scene(image_path, audio_path, idx)
video_segments.append(video_path)
final_path = compose_video(video_segments)
return final_path
with gr.Blocks() as demo:
gr.Markdown("# Script to Cartoon Video Generator (Gujarati | Hindi | English)")
with gr.Row():
script_input = gr.Textbox(label="Enter Story or Script", lines=10)
lang_input = gr.Dropdown(choices=LANGUAGES, label="Select Narration Language")
gen_btn = gr.Button("Generate Cartoon Video")
output_video = gr.Video(label="Final Video")
gen_btn.click(full_pipeline, inputs=[script_input, lang_input], outputs=output_video)
demo.launch()