File size: 1,342 Bytes
c3fb8f3
455e799
 
c3fb8f3
455e799
c3fb8f3
455e799
c3fb8f3
455e799
 
 
 
 
 
c3fb8f3
455e799
 
 
c3fb8f3
455e799
 
 
 
 
 
 
 
 
 
 
 
c3fb8f3
455e799
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import gradio as gr
from train_and_serve import generate_video_with_audio
import threading

MAX_CPU = 16  # assume availability

chat_history = []

def chatbot_response(user_msg):
    # simple echo + context
    chat_history.append(("User", user_msg))
    resp = f"I heard: '{user_msg}'. Ask me about video generation!"
    chat_history.append(("Bot", resp))
    return resp

def handle_prompt(prompt, song_text):
    vpath, apath = generate_video_with_audio(prompt, song_text=song_text)
    return vpath, apath

with gr.Blocks() as demo:
    gr.Markdown("# 🎬 FineToon Video Chat & Generator")
    with gr.Row():
        with gr.Column(scale=2):
            prompt = gr.Textbox(label="Video Prompt Text")
            song = gr.Textbox(label="Optional Song Lyrics / Voice Text")
            gen_btn = gr.Button("Generate Video")
            video_out = gr.Video(label="Generated Video")
            audio_out = gr.Audio(label="Generated Audio (Song / TTS)")
        with gr.Column(scale=1):
            chat_in = gr.Textbox(label="Chat with Assistant")
            chat_out = gr.Chatbot(label="Conversation")

    gen_btn.click(handle_prompt, inputs=[prompt, song], outputs=[video_out, audio_out])
    chat_in.submit(lambda m: chatbot_response(m), inputs=chat_in, outputs=chat_out)

    demo.queue(concurrency_count=1, max_size=4).launch()